VPNC 不知为何在一段时间后总是断开连接。我尝试计时以查看需要多长时间,结果似乎每次都是 24 分钟后。
断开连接后,我无法连接互联网,因为我的 /etc/resolv.conf 仍然与连接到 vpnc 时相同。如果我尝试 vpnc-disconnect,它只会显示“未发现正在运行的 vpnc”。我必须关闭并启动 eth0,然后手动编辑 /etc/resolv.conf 以获得正确的网络连接。
我的设置如下:
IPSec gateway xx.xx.xx.xx
IPSec ID anonymized
IPSec secret anonymized
#IKE Authmode hybrid
Xauth username myUsername
DPD idle timeout (our side) 0
我也尝试过让 ping 持续运行。我也持续播放流媒体和音乐,但它仍然会断开连接。
在 Windows 上无需断开连接即可正常工作。
编辑。更多信息:我从 /var/log/syslog 中添加了断开连接时发生的情况的日志:
我先连接:
Jul 24 14:03:09 cad-unix NetworkManager[1086]: SCPlugin-Ifupdown: devices added
path: /sys/devices/virtual/net/tun0, iface: tun0)
Jul 24 14:03:09 cad-unix NetworkManager[1086]: SCPlugin-Ifupdown: device added
(path: /sys/devices/virtual/net/tun0, iface: tun0): no ifupdown configuration found.
然后我在 24 分钟后断开了连接:
Jul 24 14:27:29 cad-unix avahi-daemon[1089]: Withdrawing workstation service for tun0.
Jul 24 14:27:29 cad-unix NetworkManager[1086]: SCPlugin-Ifupdown: devices removed
(path: /sys/devices/virtual/net/tun0, iface: tun0)
编辑:稍微调整了一下问题,以便于阅读。现在还指定问题每次发生在 24 分钟。
编辑:我正在运行的版本:vpnc 版本 0.5.3
编辑:编译 0.5.1 版本后,我现在在日志文件中收到另一个条目:vpnc[16364]: connection ceased by peer
我猜是最后一次编辑:我很绝望。欢迎提出任何建议。如果问题出在 Ubuntu 上,那么更换另一个 Linux 发行版也是一个选择。
答案1
有一个错误报告解决了这个问题,从 2010-10-28 开始,但不幸的是仍未解决。断开连接的时间似乎有些个别,尽管报告的时间仍然超过 24 分钟。
这篇文章指出了一个解决办法描述在这里,这需要重新编译vpnc。
如果你的问题与重新密钥有关,那么文章0.5.3 的密钥更新问题声称该错误是 0.5.3 版本中出现的新错误,在 0.5.1 版本中并不存在。
[编辑}
看来回到 0.5.1 对你不起作用。而且似乎 vpnc 断开连接在许多 Linux 发行版中都很常见。
我已经发现修复 0.5.x 以上版本 vpnc 断开连接问题,这表明也许需要回到 0.4.x。无论如何,本文建议的修复方法可能与您的情况无关,但您可以尝试:
毕竟,我们还必须在客户端(vpnc)关闭 DPD,我们可以通过两种方式实现:
- 调用“vpnc”时添加“--dpd-idle 0”命令行开关
- 更好的方法是将这一行添加到配置文件中:“DPD 空闲超时(我们这边)0”
更多信息:man vpnc
RedHat 支持也有类似的信息:Bug 484114 - VPN 每 5 分钟断开一次。
您可以尝试使用 vpnc 0.4.x,但我开始怀疑问题出在您这边还是出在 vpn 服务器的某些设置上:24 分钟太精确了。
答案2
尝试将 NAT 遍历模式更改为 cisco-udp,这解决了我的问题
NAT Traversal Mode cisco-udp
我的完整配置如下
IPSec gateway VPNHOSTIP
IPSec ID SAMPLESHAREDUSER
IPSec secret SAMPLESHAREDKEY
Xauth username SAMPLEUSER
Xauth password SAMPLEUSERPASS
IKE Authmode psk
#IKE DH Group dh2 # this is the default
DNSUpdate no
DPD idle timeout (our side) 0
NAT Traversal Mode cisco-udp
到目前为止,20 小时后我的 VPN 连接仍在运行。
答案3
VPNC 项目主页没有提到这是一个已知问题,但我认为“phase2-rekeying”仍然不太稳定(基于已报告的错误)。另请注意
- 第一阶段重新密钥丢失
0.5.3 补丁版本(最新SVN原始项目)发布 VPNC 于github包括:
- 添加使用外部脚本回答 XAuth 问题的功能
- 添加在意外断开连接时运行的清理例程
- 为集中器将 Xauth 问题作为密码请求询问的场景添加了解决方法。
- 添加 Mihai Maties 的 Dead Peer Detection 补丁(http://lists.unix-ag.uni-kl.de/pipermail/vpnc-devel/2010-December/003492.html)
我还建议使用手表保护器作为重新连接的最终解决方案https://github.com/dcantrell/vpncwatch/network如果非常需要自动模式并且远程端仍然会导致(与软件无关的)断开连接。
附言
由于 VPNC 是商业实现的逆向工程版本,因此远端新出现的版本变化导致的断开连接可能会重新出现,直到再次被发现和修复。
最后,还有一个使用本机客户端的选项(任何连接) 适用于 Linux。其中一个缺点是客户端配置能力(如 DNS 记录更新和无默认路由)受到极大限制。另一个缺点是,断开连接仍会发生,但这种情况很少见。
答案4
你可以看看这个--nat-keepalive
选项,或者尝试一下--nat-keepalive 1200
有一次,这是一个已知错误,不确定是否已经修复。