我有一台笔记本电脑,我通过 OpenConnect 在家庭局域网、工作局域网和工作 VPN 上使用这台笔记本电脑。此外,我有时还会使用 TorGuard,这是一种 OpenVPN 连接。所有这些都是通过 nm-applet 中的 NetworkManager 进行配置的。
如果在我的办公局域网或办公 VPN 上,我必须拥有私有 DNS 服务器和搜索域,因为有许多服务器仅解析我网络内的主机名,并且具有标准化的 DNS 后缀。这是在我的办公 VPN 的 nm-applet 设置中设置的,并且我为办公局域网设置了单独的以太网连接配置文件。
我处于这样一种情况:无论我当前在哪个网络上,我都会发现看似随机的,但很多时候我无法解析主机名,并且如果我在工作 VPN/LAN 上,我会丢失我的搜索域后缀。
为了修复该问题,并且此修复每次都有效,我必须手动执行sudo service dnsmasq restart
。这会将我的 DNS 服务器和搜索域重置为它们应有的状态,并且一切又可以正常工作,只需几分钟。
我必须不断重新启动 dnsmasq 服务来解决域解析问题。
在 Dell Latitude E6540 中使用 Ubuntu 14.04 LTS。以太网控制器是 Intel Corporation Ethernet Connection I217-LM (rev 04),无线网卡是 Intel® Centrino® Advanced-N 6235。
我被要求提供我的网络设备。我非常怀疑硬件是这里的问题,但我还是顺便说一下。有一张网卡和一张 wifi 卡。除了必须反复重启 dnsmasq 服务才能使 DNS 解析正常工作外,两者均运行正常。
我有时会使用 wifi,蓝牙也可以用,但我不会用它来联网。我通常使用以太网。
答案1
您可以在这里检查您的 Dnsmasq 配置:
$ sudo nano /etc/dnsmasq.conf
我认为你可以在这里找到最好的答案:特殊情况和 UFW
也许最好的是:
$ sudo ufw allow bootps
另请阅读上面非常重要的部分本地 DNS 缓存。
答案2
您可以尝试打开/etc/NetworkManager/NetworkManager.conf
并注释掉行dns=dnsmasq
。保存并sudo service network-manager restart
重新启动。
这基本上是一行告诉网络管理器使用 dnsmasq 插件;注释掉可防止网络管理器使用它。参考这来自 Unix Stackexchange 的帖子和这个从 askubuntu 中,您会得到提示,dnsmasq 并不总是能做得很好。
现在没有了那行代码,问题能解决吗?当然。我已将其注释掉,并使用 OpenDNS (如我家庭网络配置中设置的那样)和学校的 Google 公共 DNS。
您还可以参考我的帖子在这里了解更多信息