DNS问题故障排除(使用nslookup、dig和host等命令)

介绍DNS(域名系统)将与域名相关的信息存储为分布式数据库。客户端-服务器服务将域名转换为 IP 地址,反之亦然。
大多数其他网络服务,例如 Web、电子邮件和文件传输,都使用 DNS。错误配置的 DNS 服务器可能会导致严重的连接问题。值得庆幸的是,对 DNS 问题进行故障排除是一个至关重要且相对简单的过程。
如何解决DNS问题?按照本教程学习解决 DNS 问题的实用步骤,包含多个DNS问题解决办法。
先决条件

  • 稳定的互联网连接。
  • 访问命令行/终端。
  • 具有管理员/sudo 权限的用户帐户。
注意:按照我们的教程在 Ubuntu 上设置 DNS 名称服务器。
DNS问题故障排除DNS 故障排除遵循从基本网络故障排除到更深入分析的逻辑步骤。网络服务通常会出于不需要深入 DNS 故障排除的原因报告 DNS 问题。
DNS问题解决办法:如果你遇到 DNS 问题,请先执行以下步骤,然后再进行深入的故障排除:
  • 检查电缆
如果使用有线连接,请确保一切都正确连接。在无线网络上,检查 WiFi 是否已打开并已连接。检查路由器是否所有电缆都正常工作。尝试切换以太网电缆的端口并测试连接。
  • 重启路由器
关闭路由器并等待至少两分钟,然后再重新打开。等待路由器完全启动后再重新检查连接。
  • 扫描恶意软件
病毒有时会阻止互联网连接。运行扫描以查看是否出现任何可疑内容并进行相应处理。
  • 检查网站
如果在连接到特定网站或网站的一部分时出现问题,请检查连接问题是否与网站本身有关。一种方法是使用ping 命令。
DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
命令输出有助于确定连接问题的原因:
1. 如果ping没有显示响应,则问题很可能出在服务器端。
2. 响应错误的常见原因是 DNS 服务器或防火墙限制配置不当。了解如何解决“名称解析暂时失败”错误。
3. 如果输出显示响应,则问题很可能出在 DNS 上。
下面的综合列表提供了解决 DNS 问题的宝贵技巧。
检查 TCP/IP 设置
如何解决DNS问题?错误配置的 DNS 服务器地址是一个常见问题。重置设置并检查通信是否恢复正常。根据你使用的操作系统,步骤不同。
对于 Windows:
1.在开始菜单中搜索网络状态并打开该工具。
DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
2.在网络连接详细信息下选择属性。
DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
3. 单击编辑按钮更改 IP 设置。
DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
4. 如果IP 分配是Manual,请仔细检查IP、Preferred和Alternate DNS地址。更改IP分配选择自动(DHCP)从下拉菜单中重置回正常。
DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
5. 完成后保存设置。
对于 Linux:
1. 点击右上角的连接图标。
DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
2. 打开菜单并选择有线设置。
DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
3. 单击连接窗格中的齿轮图标以打开设置。
DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
4. 导航到设置菜单中的IPv4选项卡。
5. 如果手动分配,请仔细检查地址DNS IP 地址列表。选择自动 (DHCP)选项并将 DNS 开关更改为自动以重置恢复正常。
DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
完成后应用设置并关闭窗口。最后,检查连接以确保一切正常。
DNS问题故障排除:刷新 DNS 缓存
到流行网站的 IP 映射通常是恶意攻击的目标。DNS 缓存信息以提高加载速度,它可能缓存了错误的地址。清除 DNS 缓存会删除所有查找信息并更新后续请求。
通常,刷新 DNS 缓存是一种很好的安全措施。按照我们的教程获取详细和特定于操作系统的说明:如何在 macOS、Windows 和 Linux 中刷新 DNS 缓存。
释放和更新 DHCP 服务器 IP
DNS问题解决办法:释放和更新 IP 地址有助于通过刷新缓存信息来解决 IP 冲突和旧 DNS 信息。完成发布和更新的最简单方法是通过命令提示符/终端。
警告:重置 IP 会断开计算机与 Internet 的连接。
在 Windows 上使用命令提示符更新 IP:
1. 执行以下命令释放当前IP并更新信息:
IPCONFIG /RELEASE IPCONFIG /RENEW

2. 检查新信息:
IPCONFIG /ALL

通过终端在 Linux 上强制更新 IP:
1、打开终端,使用以下命令释放当前IP:
sudo dhclient -r

终端输出确认信息,连接关闭。
2.dhclient不带任何选项运行以更新 IP:
sudo dhclient

DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
更改为公共 DNS 服务器
如何解决DNS问题?将 DNS 服务器更改为公共域地址。一些标准选项是:
  • Google 的8.8.8.8地址作为主要地址和8.8.4.4次要地址。
  • Cloudflare 的1.1.1.1地址为主要地址和1.0.0.1次要地址。
公共域地址通常是可靠的,并且是免费提供的。但是,这仅用作临时解决方案。
另一方面,一些公共域 DNS 服务器会阻止来自恶意网站的流量。公共 DNS 可能会将标记的网站检测为可疑网站,而你使用的公共 DNS 可能会阻止访问。
DNS问题故障排除:使用dig
该dig命令(域信息搜索)提供的DNS信息和诊断问题有所帮助。该实用程序的原始输出使其成为解决 DNS 问题的首选方法。
默认情况下,该程序可在 macOS 和 Linux 上使用,并可在 Windows 上免费安装。
要获取域的 dig 信息,请在终端中运行以下命令:
dig < domain name or IP>

注意:使用 IP 地址执行反向 DNS 查找。
例如,要显示 的信息phoenixnap.com,请运行:
dig phoenixnap.com

DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
  • status节目是否查询成功。
  • ANSWER SECTION节目到的请求的响应的发送QUESTION SECTION
  • SERVER显示的地址为公的DNS服务器。
DNS问题解决办法:默认情况下,dig 查找域的A 记录并显示域在解析名称时指向的 IP 地址。
dig 工具为全面搜索提供了许多高级选项。例如,添加+trace标签以查看目标的完整路径:
dig phoenixnap.com +trace

DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
+trace选项有助于查明到达目的地的路线中的流量下降。
要检查委派的名称服务器,请使用以下ns选项:
dig phoenixnap.com ns

DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
使用该ns选项可帮助识别和解决委派问题。
使用 nslookup
如何解决DNS问题?该nslookup命令提供了检查不同 DNS 记录和服务器的功能。该工具默认在 macOS、Linux 和 Windows 操作系统上可用,它是第一个查询 DNS 的工具。
要获取域的 nslookup 信息,请在命令行/终端中使用以下命令:
nslookup < domain name or IP>

例如,运行nslookupphoenixnap.com
nslookup phoenixnap.com

DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
输出打印 DNS 服务器的地址和 A 记录响应。由于该nslookup命令的可用性,该命令更适用于 Windows。
使用host
host实用程序是一个用于执行 DNS 查找的简单程序。该命令适用于 macOS 和 Linux 系统。
host的基本语法是:
host < domain name or IP>

例如:
host phoenixnap.com

DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
【DNS问题故障排除(使用nslookup、dig和host等命令)】DNS问题故障排除:该host命令非常适合快速检查域名是否存在并解析为地址。一个典型的用例host是在 bash 脚本中。
使用附加选项显示更多信息。例如,添加-a标记以查看与dig命令类似的输出:
host -a phoenixnap.com

DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
输出显示了答案部分中的附加信息,例如 NS、SOA、MX 和其他可用记录。
使用 traceroute 或 tracert
如何解决DNS问题?traceroute 和 tracert 工具帮助跟踪从源到目标的路由。在对 DNS 问题进行故障排除时,这些命令有助于确定数据包在网络上的停止位置。该traceroute命令在 macOS 和 Linux 上可用,而 Windows 上的等效命令是tracert.
注意:使用apt 包管理器安装 traceroute 工具:
sudo apt install traceroute

作为一种现成且更简单的替代方法,请使用tracepath。
要映射网络,请在终端中运行以下命令:
traceroute < domain name or IP>

如果使用 Windows 机器,请运行:
tracert < domain name or IP>

DNS问题故障排除(使用nslookup、dig和host等命令)

文章图片
有关traceroute/tracert命令以及如何读取输出的更多信息,请查看我们关于如何在 Linux、Windows 和 macOS 上运行 Traceroute 的综合教程。
联系你的 ISP
DNS问题解决办法:如果计算机使用 ISP 的 DNS,你将无法解决你的问题。联系 ISP 有助于确定问题并查明他们最终的困难。
结论在本DNS问题故障排除指南的末尾,你应该有几个工具和技巧来帮助你解决 DNS 问题。如果你想在家中设置 DNS 服务器以加快连接速度,请尝试遵循我们的 Raspberry Pi 教程,了解如何将 Raspberry Pi 设置为 DNS 服务器。

    推荐阅读