由于我的大学正在使用这个可怕的 Cisco AnyConnect VPN,我试图找到绕过他们的客户端软件的方法并发现openconnect
。到目前为止,它运行良好,并且感谢不同的问题在 StackExchange 上,我设法让它默认停止通过 VPN 路由所有流量,而只通过 VPN 发送与大学相关的流量。
然而,openconnect
仍然将我所有的 DNS 查询发送到学院的名称服务器,正如我在/etc/resolv.conf
.现在,因为我更愿意使用自己的 DNS 解析器,所以我想停止openconnect
更改 DNS 设置。我可以设置INTERNAL_IP4_DNS
可以通过为路由创建的包装脚本动态设置的变量,但这并不能完全解决我的问题,因为它仍然修改文件并添加我大学的搜索域。
有没有办法openconnect
在不操作 vpnc 脚本的情况下停止这样做?
答案1
作为答案而不是评论发布,以使其具有一定的可见性。我不确定是否有更好的方法来引用其他网站的答案。但https://serverfault.com/a/900825是对几乎相同问题的实际有效答案。
openconnect
调用脚本/usr/share/vpnc-scripts/vpnc-script
来更改网络设置(请参阅/usr/share/doc/openconnect/html/vpnc-script.html)。但您可以更改使用该选项调用的脚本-s
。如果你传入一个像这样的脚本
#!/bin/bash
export INTERNAL_IP4_DNS=
. /usr/share/vpnc-scripts/vpnc-script
resolv.conf
原始脚本中要更改的函数根本没有被调用。
鉴于上面的脚本被调用noresolvconf
,你会openconnect
这样调用
sudo openconnect -s path/to/noresolvconf ...
不要忘记使脚本可执行
chmod +x path/to/noresolvconf