Juniper Network Connect 在 64 位 Linux 上存在问题已有一段时间了。我找到了 2 个 Java 问题解决方案 (有人可以提供获取 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/resolvconf/resolv.conf
现在已经消失了。重新安装resolvconf
无法修复它,运行也无法修复它resolvconf
。
因此,到目前为止我发现的最佳方法是先备份/run/resolvconf/resolv.conf
到另一个位置。断开 NC 后,我会运行一个脚本,删除/etc/resolv.conf
、替换已删除的内容 /run/resolvconf/resolv.conf
,然后将其/etc
重新链接回去。
有人知道避免这种情况的方法吗?或者我是否已经找到了最好的“解决方法”?有什么方法可以防止 NC 破坏它?
答案1
第一的:点击登出按钮网络连接窗口(连接时显示 VPN IP 的窗口)和
然后点击登出按钮登录网页避免了这个问题。
请在评论中指出这是否有效。
谢谢
答案2
修复/etc/resolv.conf
符号链接的最佳方法是运行
sudo dpkg-reconfigure resolvconf
并回答 YES 来准备 resolv.conf 进行动态更新。
答案3
我希望您不需要重新安装该软件包。只需重新启动 resolvconf 即可解决问题:
sudo service resolvconf restart
如果这不起作用,您还可以尝试重新启动网络服务,它将尝试将一组新值写入 /etc/resolv.conf
sudo service network restart
答案4
网络连接停止后,只需执行以下操作即可。
sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u # Regenerate /run/resolvconf/resolv.conf
您不需要事先备份 /run/resolvconf/resolv.conf。