我正在使用开放连接来创建拆分 VPN 连接。效果很好...第一次。如果 openconnect 进程终止,后续尝试似乎会成功,但让我无法实际访问 VPN 后面的任何内容。暂时重新启动可以让 openconnect 再次工作,但我希望能够打开和关闭 VPN,而不必每次都重新启动。
我认为问题与 VPN 连接的关闭/清理不当有关,但这超出了我的深度,我不知道我在做什么。发生了什么以及如何修复它或设置一个允许我多次启动和停止 VPN 连接而无需重新启动的系统。当 VPN 工作和不工作时,route 都会产生相同的输出。
这是我用来连接的脚本:
sudo openvpn --mktun --dev tun1 && \
sudo ifconfig tun1 up && \
sudo /usr/sbin/openconnect -s $VPNSCRIPT $VPNURL --user=$VPNUSER --authgroup=$VPNGRP --interface=tun1
sudo ifconfig tun1 down
openvpn --rmtun --dev tun1
其中$VPNSCRIPT
是默认 vpnc 脚本的包装器,用于设置分割 VPN 的环境:
#!/bin/sh # 将一个IP添加到分割隧道列表中 添加 IP () { 导出 CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_ADDR=$1 导出 CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASK=255.255.255.255 导出 CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASKLEN=32 导出 CISCO_SPLIT_INC=$(($CISCO_SPLIT_INC + 1)) } # 初始化空分割隧道列表 导出 CISCO_SPLIT_INC=0 # 删除VPN服务器提供的DNS信息以使用互联网DNS # 注释以下行以在 VPN 隧道之外使用 DNS 取消设置 INTERNAL_IP4_DNS # VPN 隧道之外的 IP 列表 add_ip --已编辑-- # 执行默认脚本 。 /usr/share/vpnc-scripts/vpnc-script # 脚本结束
这一切都发生在 Ubuntu 14.04 VPS 上
结果route -n
没有连接尝试:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0
已连接并正在工作
Destination Gateway Genmask Flags Metric Ref Use Iface
<HostA> 0.0.0.0 255.255.255.255 UH 0 0 0 tun1
<VPN> 0.0.0.0 255.255.255.255 UH 0 0 0 venet0
<HostB> 0.0.0.0 255.255.255.255 UH 0 0 0 tun1
<VPN DHCP> 0.0.0.0 255.255.254.0 U 0 0 0 tun1
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0
据说已连接,但无法正常工作
Destination Gateway Genmask Flags Metric Ref Use Iface
<HostA> 0.0.0.0 255.255.255.255 UH 0 0 0 tun1
<VPN> 0.0.0.0 255.255.255.255 UH 0 0 0 venet0
<HostB> 0.0.0.0 255.255.255.255 UH 0 0 0 tun1
<VPN DHCP> 0.0.0.0 255.255.254.0 U 0 0 0 tun1
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0
其中Host*
是分割 VPN 配置中的条目。