如何阻止 openconnect 更改 DNS 设置

如何阻止 openconnect 更改 DNS 设置

由于我的大学正在使用这个可怕的 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

相关内容