关于VPN串联共享的可行性及L2TP组网后无网络的故障排查咨询
So I have several PCs,
I bought a vpn software(client) and it works great .
now I want to share this vpn connection among all other PCs ,
this is what I've tried:
1, I installed windows server on PC A (this software only supports windows),
2, I setup a l2tp vpn server on A
3, I installed the vpn software(client) aforementioned on pc A,
4,I connected the software ,and it works on pc A
5,I created a l2tp client on pc B ,and connected it to pc A(the l2tp server )
6, I thought B should now be able to access the vpn connection on A now, but no, pc B just can't access any thing on the internet like it's being blocked .
Is this by design ,or should I change something in the route table, to make it work as intended ?
兄弟,你的思路完全没问题,这种把一台Windows Server做成「中转网关」共享第三方VPN的方案是可行的,根本不是什么“设计如此”,问题出在IP转发、NAT规则和路由配置没到位,我给你一步步讲清楚怎么解决:
核心问题分析
当PC B通过L2TP连到PC A后,PC A并没有自动把来自L2TP客户端的流量转发到第三方VPN的接口上,而且Windows默认是关闭IP转发功能的,同时也没有NAT规则让L2TP网段的流量“伪装”成PC A的VPN出口流量,所以PC B的数据包根本出不去。
具体解决步骤
1. 开启Windows Server的IP转发功能
这是流量能在PC A的不同接口之间转发的基础:
- 按下
Win+R输入regedit打开注册表编辑器 - 定位到路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters - 找到
IPEnableRouter这个DWORD值,把它改成1(如果没有就新建一个) - 重启PC A,或者在命令提示符(管理员权限)里执行
net stop remoteaccess && net start remoteaccess重启远程访问服务
2. 配置NAT规则,让L2TP流量走第三方VPN出口
这一步是让PC B的流量能通过PC A的VPN接口上网:
- 打开
路由和远程访问控制台(直接搜rras.msc就能找到) - 展开左侧的
IPv4->NAT,右键点击NAT选择「新建接口」- 首先选择已经连接好的第三方VPN客户端接口,在属性窗口里勾选「公用接口连接到Internet」,再勾选「在此接口上启用NAT」,确定保存
- 再新建一个接口,选择L2TP服务器使用的内网接口(或者虚拟的L2TP专用接口),设置为「专用接口连接到专用网络」
3. 检查并调整路由表
确保PC A的路由规则会把L2TP客户端的流量导向第三方VPN:
- 打开管理员命令提示符,输入
route print查看当前路由表 - 找到第三方VPN添加的默认路由(一般是
0.0.0.0/0指向VPN的网关),确认它的优先级(metric值)比本地网卡的默认路由更低(数值越小优先级越高) - 如果L2TP客户端的网段(比如默认是
192.168.100.0/24)没有对应的路由,手动添加一条:
(把网段和网关换成你实际的参数)route add 192.168.100.0 mask 255.255.255.0 <VPN接口的网关IP> metric 10
4. 检查防火墙设置
别让防火墙把流量拦了:
- 确保Windows防火墙允许L2TP相关的流量(UDP 500、4500端口,以及ESP协议)
- 检查第三方VPN客户端的防火墙设置,不要把L2TP客户端的网段加入拦截列表
额外注意事项
- 如果你重启PC A后第三方VPN需要手动连接,可以设置它开机自动启动并自动连接
- 有些第三方VPN客户端会做「路由锁定」,只允许本机流量走VPN,这种情况可能需要找客户端的设置里有没有允许转发的选项,或者用一些工具绕过,但大部分普通VPN客户端不会限制这个
备注:内容来源于stack exchange,提问作者iouvxz

