首先,这个问题已经存在了将近两年。在 serverfault 诞生之前,我几乎放弃了解决这个问题 - 但现在,希望又重生了!
我已经将 Windows 2003 服务器设置为远程办公室的域控制器和 VPN 服务器。我能够从我尝试过的每个 Windows 客户端(包括 XP、Vista 和 Windows 7)连接到 VPN 并通过 VPN 工作,至少有五个不同的网络(公司和家庭、域和非网络)。它在所有这些网络上都运行良好。
但是,每当我从客户端连接我的家庭网络,连接会在 3 分钟或更短的时间内(悄无声息地)断开。 片刻之后,它最终会告诉我连接已断开并尝试重拨/重新连接(如果我已这样配置客户端)。 如果我重新连接,连接将重新建立并似乎正常工作,但再次会悄无声息地断开,这次是在看似更短的时间段之后。
这些都不是间歇性掉线。每次都是这样,而且方式完全相同。唯一的变量是连接持续多长时间。
我发送什么类型的流量并不重要。我可以闲置,发送连续 ping、RDP、传输文件,所有这些操作同时进行 - 没有任何区别。结果总是一样的。连接几分钟,然后静静地死去。
由于我怀疑是否有人经历过这种确切的情况,我可以采取哪些步骤来解决我的 evanescing VPN 问题?
其他背景
在这两年的时间里,我更换了 ISP(两端都更换了)、添加了新的域控制器(我的网络)并更换了路由器(两个网络)。但这些都没有影响。
该问题可在具有不同操作系统的多台 PC 上重现,但仅限于我的网络。
我通过在非 Windows 设备上进行测试,验证了该行为与客户端无关。我在 iPhone 上配置了 VPN,并通过 wifi 连接到我的网络。使用一款名为 Scany 的应用程序,我不断 ping 服务器,直到大约 2 分钟后连接断开 - 这与我在 Windows 客户端上看到的行为相同。之后,我禁用了 wifi 并通过 AT&Ts 3G 连接 VPN,并连续 ping 了 11 分钟,没有丢失任何请求。此测试充分将问题隔离到我的网络。
两年间唯一不变的组件是我的域控制器,它处理 WINS,还充当入站连接的 VPN 服务器。但是,出站流量不应该通过我的 DC,而是直接进入防火墙/路由器,后者直接连接到我的电缆调制解调器。
更多说明
有人要求我验证 VPN 连接建立时路由是否正常。我查看了一下,没有发现任何明显错误,但我对路由配置的经验非常有限,所以我发布了数据。
我的 LAN 的 C 类范围是 192.168.1.255,远程 LAN 的 C 类范围是 192.168.10.255。我还屏蔽了 VPN 服务器的公共 IP(74.93.XXX.XXX)。
>route print (VPN Disconnected)
===========================================================================
Interface List
17...00 ff 10 80 57 0c ......Juniper Network Connect Virtual Adapter
11...00 23 ae e6 bb 49 ......Realtek RTL8168C(P)/8111C(P) Family PCI-E Gigabit
Ethernet NIC (NDIS 6.20)
1...........................Software Loopback Interface 1
12...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
13...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
16...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
===========================================================================
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.24 10
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.1.0 255.255.255.0 On-link 192.168.1.24 266
192.168.1.24 255.255.255.255 On-link 192.168.1.24 266
192.168.1.255 255.255.255.255 On-link 192.168.1.24 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.1.24 266
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.1.24 266
===========================================================================
Persistent Routes:
None
>route print (VPN Connected)
===========================================================================
Interface List
25...........................VPN Test
17...00 ff 10 80 57 0c ......Juniper Network Connect Virtual Adapter
11...00 23 ae e6 bb 49 ......Realtek RTL8168C(P)/8111C(P) Family PCI-E Gigabit
Ethernet NIC (NDIS 6.20)
1...........................Software Loopback Interface 1
12...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
13...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
16...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
===========================================================================
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.24 10
74.93.XXX.XXX 255.255.255.255 192.168.1.1 192.168.1.24 11
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.1.0 255.255.255.0 On-link 192.168.1.24 266
192.168.1.24 255.255.255.255 On-link 192.168.1.24 266
192.168.1.255 255.255.255.255 On-link 192.168.1.24 266
192.168.10.0 255.255.255.0 192.168.10.134 192.168.10.134 11
192.168.10.134 255.255.255.255 On-link 192.168.10.134 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.1.24 266
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.1.24 266
255.255.255.255 255.255.255.255 On-link 192.168.10.134 266
===========================================================================
Persistent Routes:
None
答案1
非常感谢@Warner 和@William 的建议。最终是 William 的回答让我得出了最终的解决方案。对于任何前来寻找的人,以下是解决方案。
在费尽心机试图找出问题后,我终于按照 William 的建议做了,并调出了我的防火墙日志。我原本不指望能找到什么有趣的东西,但当我看到这一行时,我感到很惊讶:
PPTP ALG 拒绝从 xxxx 到 xxxx:1723 的数据包
知道此 VPN 的配置方式是 PPTP 后,我针对错误进行了一些搜索。结果发现,其他人有已经看见以及。具体来说,人们使用我的路由器,D-Link DIR-655。
事实证明,解决方案很简单。
在路由器的 Web 管理界面中,访问“高级”选项卡,然后单击左侧菜单上的“防火墙设置”。在标有“应用程序级网关 (ALG) 配置”的部分中,取消选中 PPTP 复选框(如果您的 VPN 使用该协议,也可以取消选中 IPsec)。单击“保存设置”并告诉路由器重新启动。好了!
不幸的是,禁用这些 ALG 选项意味着某些高级路由功能将无法工作。例如,PPTP 支持旨在允许多个 NAT 客户端同时通过隧道连接到同一 VPN 服务器。如果清除该框,则可能无法正常工作。但是,如果像我一样,当框被清除时,您的 VPN 根本无法工作是检查过了,你可能不介意。
我仍然不清楚为什么我似乎记得以前使用完全不同的路由器时也遇到过这个问题,但我很高兴它仍然可以正常工作。
答案2
我猜想,VPN 流量中有一个部分是必需的,但被阻止(例如在防火墙处)或丢失,导致掉线。检查防火墙日志(如果有)以查找丢失的数据包。仔细检查规则以确保启用了所有必要的端口和协议。您可能还想在您的终端上进行一些连续的路由监控,以查看 VPN 隧道启动后流量是否被错误定向。“route print”命令在 Windows 上显示此信息。
答案3
我在使用 openwrt 和 luci 时遇到了同样的问题,我通过 vpn 连接到路由器上的 openvpn 服务器。连接建立后,它会不断重启我的 3g 调制解调器并丢失连接,答案是防火墙(感谢您指出方向)并编辑 :1194 连接。在这里,您可以选择 vpn 连接的来源,默认情况下是设备,其他两个选项是 lan 和 wan,因此对于我的情况是 wan,快速更改并重新启动,效果很好。
答案4
基本故障排除。排除设备故障。互联网直接连接到 PC。如果可重现,则更换另一台 PC。更换调制解调器,尝试不同的 ISP(蜂窝调制解调器)。继续检查线路,直到隔离,然后对隔离的设备进行故障排除。