![我的 ubuntu 14.04 出现 DNS 问题](https://linux22.com/image/975780/%E6%88%91%E7%9A%84%20ubuntu%2014.04%20%E5%87%BA%E7%8E%B0%20DNS%20%E9%97%AE%E9%A2%98.png)
我刚刚使用双启动模式从 Windows 7 切换到 Ubuntu 14.0.4。我使用无线 wlan0 连接到办公室网络。尝试使用 ssh 访问多个 Linux 主机时遇到问题。主机名未解析为 IP。我检查了 /etc/resolv.conf 和 /etc/network/interfaces。没有定义静态 DNS。我通过 DHCP 获取 IP。我基本上没有遇到 Windows 7 的问题。
为了解决这个问题,我必须在 /etc/network/interfaces 文件中手动插入 DNS 和搜索域。此后,我能够通过 ssh 连接到 Linux,因为主机名现在转换为 IP。使用 nslookup 确认。
但是当我回到家时,问题就出现了。我注意到在将笔记本电脑启动到 Ubuntu 时,Firefox 需要一段时间才能转换 URL,而且速度明显变慢。但是一旦网站加载完成,速度就会加快。我做了一些网站基准测试,没有速度问题。我高度怀疑是 DNS 设置的问题。当我关闭 DNS 服务器(这是我办公室的 DNS 服务器)时,一切恢复正常。我的 ISP 表示不需要指定 DNS,因为我们是通过 DHCP 分配 IP 的。
目前,我正在手动注释/取消注释 DNS 条目以拨动开关:P 不确定是否有更好的方法来解决这个问题。
干杯。
答案1
谢谢你的帮助。我设法解决了我的问题。我的错。打我的手腕。
nmcli dev list iface eth0
返回正确的 DNS 信息。我办公室的 DNS 给出了正确的 DNS 和 IP。发生的事情是 DNS 服务器返回了域 A(本地办公室)。但是我试图连接到另一个站点(域 B)。因此,没有提供域 B 的 nslookup 和 ssh 将返回错误。
例如:
ssh hostname (Does not work)
ssh hostname.domainB.com (works)
这是因为,即使我已成功连接到网络,但我使用的是域 A。我发现我需要附加我的 DNS 后缀来/etc/resolvconf/tail
解决这个问题,否则每次我都需要指定域 B。
再补充一个重要的观察结果。我花了一段时间才排除故障,因为 nslookup 和 /etc/resolv.conf 总是指向 127.0.1.1。这让我很困惑,为什么它会转到本地 DNS 而不是我的 DNS 服务器。我发现这是 Ubuntu Desktop 使用 resolvconf 和本地 DNS 的方式,它在 中指定/etc/NetworkManager/NetworkManager.conf (entry dns=dnsmasq)
。
答案2
我的 ISP 表示不需要指定 DNS,因为我们通过 DHCP 分配 IP
您的 ISP 很可能想说,您已通过 DHCP 分配了 DNS,以及您的 IP(也可能是默认网关)。
nmcli dev list iface eth0 | grep IP4
使用终端中的命令检查这一点,然后查看您的系统是否通过 DHCP 获取其 DNS。
您还可以使用手动检查租约文件less /var/lib/dhcp3/dhclient.leases
并查找“dns”。请注意,有时路径和文件名会更改为/var/lib/dhclient/dhclient-ethX.leases
。
如果 DHCP 服务器未分配 DNS,请咨询您的 ISP 和办公室的系统管理员。