在 Ubuntu 14.10 上,我使用 OpenConnect(通过软件包或 Cisco AnyConnect 客户端)连接到相同的 VPN 服务network-manager-openconnect(-gnome)
。使用 AnyConnect 客户端时,我没有遇到任何问题,而 OpenConnect 却给我带来了奇怪的连接问题(但仅限于某些程序)。
我怀疑这些问题是由于 VPN 提供商不支持 IPv6 造成的。连接到http://whatismyipv6.com使用 AnyConnect 客户端时,会显示 IPv4 地址,而使用 OpenConnect 时,会显示我的(非 VPN!)IPv6 地址。AnyConnect 客户端似乎强制所有连接都通过 VPN,即使 IPv6 不可用。以下是 AnyConnect 客户端中“统计信息 -> 详细信息”页面的屏幕截图:
我如何使用 OpenConnect 实现相同的功能?在网络管理器中,在“编辑连接”下,有一个“IPv6 设置”选项卡,但唯一相关的设置似乎是“方法”,其中包含“忽略”、“自动(VPN)”和“仅自动(VPN)地址”选项 - 我不知道它们之间有什么区别,但它们似乎都不能满足我的要求。--disable-ipv6
可以赋予openconnect
相关的标志吗?如何在网络管理器中使用它?
注:我已见过关于使用 OpenVPN 禁用 IPv6 的问题,但那里给出的答案并不令人满意——我不想每次连接或断开 VPN 时都手动全局启用/禁用 IPv6。
答案1
默认路由
您需要更改您的默认设置route
。
如果您route
在终端中输入,您将根据数据包的目标地址看到数据包将被发送到哪里。默认情况下,您的 VPN 将仅设置路由以通过 VPN 路由特定子网上的流量。如果您愿意,可以将此网关设置为您的默认网关:
sudo route add default gw 192.168.1.254 eth0
一定要改变192.168.1.254无论您的 VPN 网关的 IP 是什么。
OpenConnect 路由
OpenConnect 默认强制您设置自己的路由。您可以通过安装vpnc vpnc 脚本并将以下内容添加到您的openconnect
命令中:
--script=/etc/vpnc/vpnc-script
笔记:
我更喜欢使用 OpenConnect 而不是 AnyConnect。