![计算机无法解析域名或 ping IP,手动添加 DNS 服务器解决了这个问题,为什么?](https://linux22.com/image/1325052/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8D%E6%88%96%20ping%20IP%EF%BC%8C%E6%89%8B%E5%8A%A8%E6%B7%BB%E5%8A%A0%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%A7%A3%E5%86%B3%E4%BA%86%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F.png)
一位朋友的计算机出现以下症状:
该命令
ping cnn.com
(或任何其他域)发出了消息Ping: cannot resolve cnn.com: Unknown host
该命令
ping 8.8.8.8
(或任何其他 IP)发出消息Ping: sendto: Host is down
我们都在同一个网络上(牛津大学的“OWL”,您必须使用 VPN 才能访问非牛津网站,并避免被重定向到要求您登录的牛津页面。因此,我在 Mac 上查看了 [系统偏好设置 > 网络 > 高级按钮 > DNS],并复制了连接到 OWL 时显示的“DNS 服务器”和“搜索域”(它们似乎是自动检测到的)。然后,我将它们添加到我朋友的计算机上的同一位置,该计算机有其他 DNS 服务器,但没有搜索域。这样就解决了问题。
这是为什么?一般来说,我该如何诊断上述 1 和 2 之类的问题。
答案1
听起来您朋友的 DNS 设置在“OWL”网络环境中不正确,无法从该网络内访问,尤其是当您的搜索域设置为无法从该网络访问的域时。检查 DNS 服务器 IP 和搜索域(如您所做的)是确定此问题的最佳方法。
答案2
要确定是否是 DNS 问题,您可以使用 NSLOOKUP 命令。这是一个明确的指令,以主机名或主机 IP 作为输入,向 DNS 服务器查询目标系统的详细信息。
如果您的 DNS 正确但主机无法访问,您可以使用 traceroute 命令获取产生问题的确切跳数。
以下链接提供了一些解释
http://guide.netfronts.com/Advanced/Ping_and_Nslookup_with_Mac_OS_X.htm
答案3
DNS 服务器和搜索域由您本地网络上的 DHCP 服务器提供。
使用 tcpdump 或 wireshark 并查看 DHCP/BOOTP 回复。
使用 Windows,您可以转到网络属性并删除“自动 DNS” http://windows.microsoft.com/is-is/windows/change-tcp-ip-settings#1TC=windows-7
使用 Linux,您可以更改客户端配置(取决于您使用的配置)或添加脚本来检查 /etc/resolv.conf 中的 DNS 地址