如何防止 Juniper Network Connect 破坏 DNS 解析

psy*_*246 5 vpn networking resolv.conf dnsmasq

Juniper Network Connect 在 64 位 Linux 上一直是一个问题。我找到了 Java 问题的 2 个解决方案(任何人都可以提供获取 juniper netconnect 和 citrix 的分步说明吗?以及 在 64 位 Ubuntu 中使用 sun-jre 运行 32 位 Firefox),但现在我正在努力解决一个新问题。

Network Connect 直接对文件进行更改/etc/resolv.conf。这会导致 Ubuntu 进行 DNS 解析的新方法出现问题,即将 DNS 指向本地解析器/缓存器:dnsmasq。一旦 NC 断开连接并且您更改网络(例如从办公室到家里),DNS 将停止正常工作。

发生的情况是 NC 删除了/etc/resolv.conf实际符号链接到/run/resolvconf/resolv.conf. 更糟糕的是 NC 实际上删除的是原始文件而不是链接。因此,当您尝试使用以下命令恢复文件时:

sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

它失败了,/run/resolvconf/resolv.conf现在已经消失了。重新安装resolvconf并不能修复它,运行也不能修复它resolvconf

所以到目前为止我发现的最好方法是首先备份/run/resolvconf/resolv.conf到另一个位置。断开 NC 的连接后,我运行一个脚本来删除/etc/resolv.conf、替换已删除的内容 /run/resolvconf/resolv.conf,然后再次将其链接回/etc

有谁知道避免这种情况的方法,或者我已经最好地“修复”到位了吗?有什么办法可以从一开始就防止 NC 破坏它吗?

小智 1

我希望您不需要重新安装该软件包。只需重新启动 resolvconf 即可解决问题:

sudo service resolvconf restart
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,您还可以尝试重新启动网络服务,该服务将尝试将一组新值写入 /etc/resolv.conf

sudo service network restart
Run Code Online (Sandbox Code Playgroud)


jdt*_*ood 1

网络连接停止后,只需执行以下操作即可。

sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u  # Regenerate /run/resolvconf/resolv.conf
Run Code Online (Sandbox Code Playgroud)

您不需要事先备份/run/resolvconf/resolv.conf。