介绍
DNS(域名系统)将与域名相关的信息存储为分布式数据库。客户端-服务器服务将域名转换为 IP 地址,反之亦然。
大多数其他网络服务,例如 Web、电子邮件和文件传输,都使用 DNS。错误配置的 DNS 服务器可能会导致严重的连接问题。值得庆幸的是,对 DNS 问题进行故障排除是一个至关重要且相对简单的过程。
如何解决DNS问题?按照本教程学习解决 DNS 问题的实用步骤,包含多个DNS问题解决办法。
先决条件
- 稳定的互联网连接。
- 访问命令行/终端。
- 具有管理员/sudo 权限的用户帐户。
注意:按照我们的教程在 Ubuntu 上设置 DNS 名称服务器。
DNS问题故障排除
DNS 故障排除遵循从基本网络故障排除到更深入分析的逻辑步骤。网络服务通常会出于不需要深入 DNS 故障排除的原因报告 DNS 问题。
DNS问题解决办法:如果你遇到 DNS 问题,请先执行以下步骤,然后再进行深入的故障排除:
- 检查电缆
如果使用有线连接,请确保一切都正确连接。在无线网络上,检查 WiFi 是否已打开并已连接。检查路由器是否所有电缆都正常工作。尝试切换以太网电缆的端口并测试连接。
- 重启路由器
关闭路由器并等待至少两分钟,然后再重新打开。等待路由器完全启动后再重新检查连接。
- 扫描恶意软件
病毒有时会阻止互联网连接。运行扫描以查看是否出现任何可疑内容并进行相应处理。
- 检查网站
如果在连接到特定网站或网站的一部分时出现问题,请检查连接问题是否与网站本身有关。一种方法是使用ping 命令。
命令输出有助于确定连接问题的原因:
1. 如果ping
没有显示响应,则问题很可能出在服务器端。
2. 响应错误的常见原因是 DNS 服务器或防火墙限制配置不当。了解如何解决“名称解析暂时失败”错误。
3. 如果输出显示响应,则问题很可能出在 DNS 上。
下面的综合列表提供了解决 DNS 问题的宝贵技巧。
检查 TCP/IP 设置
如何解决DNS问题?错误配置的 DNS 服务器地址是一个常见问题。重置设置并检查通信是否恢复正常。根据你使用的操作系统,步骤不同。
对于 Windows:
1.在开始菜单中搜索网络状态并打开该工具。
2.在网络连接详细信息下选择属性。
3. 单击编辑按钮更改 IP 设置。
4. 如果IP 分配是Manual,请仔细检查IP、Preferred和Alternate DNS地址。更改IP分配选择自动(DHCP)从下拉菜单中重置回正常。
5. 完成后保存设置。
对于 Linux:
1. 点击右上角的连接图标。
2. 打开菜单并选择有线设置。
3. 单击连接窗格中的齿轮图标以打开设置。
4. 导航到设置菜单中的IPv4选项卡。
5. 如果手动分配,请仔细检查地址和DNS IP 地址列表。选择自动 (DHCP)选项并将 DNS 开关更改为自动以重置恢复正常。
完成后应用设置并关闭窗口。最后,检查连接以确保一切正常。
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 服务器
如何解决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
- 该
status
节目是否查询成功。 - 该
ANSWER SECTION
节目到的请求的响应的发送QUESTION SECTION
。 - 该
SERVER
显示的地址为公的DNS服务器。
DNS问题解决办法:默认情况下,dig 查找域的A 记录并显示域在解析名称时指向的 IP 地址。
dig 工具为全面搜索提供了许多高级选项。例如,添加+trace
标签以查看目标的完整路径:
dig phoenixnap.com +trace
该+trace
选项有助于查明到达目的地的路线中的流量下降。
要检查委派的名称服务器,请使用以下ns
选项:
dig phoenixnap.com ns
使用该ns
选项可帮助识别和解决委派问题。
使用 nslookup
如何解决DNS问题?该nslookup
命令提供了检查不同 DNS 记录和服务器的功能。该工具默认在 macOS、Linux 和 Windows 操作系统上可用,它是第一个查询 DNS 的工具。
要获取域的 nslookup 信息,请在命令行/终端中使用以下命令:
nslookup <domain name or IP>
例如,运行nslookup
于phoenixnap.com
:
nslookup phoenixnap.com
输出打印 DNS 服务器的地址和 A 记录响应。由于该nslookup
命令的可用性,该命令更适用于 Windows。
使用host
host实用程序是一个用于执行 DNS 查找的简单程序。该命令适用于 macOS 和 Linux 系统。
host的基本语法是:
host <domain name or IP>
例如:
host phoenixnap.com
DNS问题故障排除:该host
命令非常适合快速检查域名是否存在并解析为地址。一个典型的用例host
是在 bash 脚本中。
使用附加选项显示更多信息。例如,添加-a
标记以查看与dig
命令类似的输出:
host -a phoenixnap.com
输出显示了答案部分中的附加信息,例如 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>
有关traceroute
/tracert
命令以及如何读取输出的更多信息,请查看我们关于如何在 Linux、Windows 和 macOS 上运行 Traceroute 的综合教程。
联系你的 ISP
DNS问题解决办法:如果计算机使用 ISP 的 DNS,你将无法解决你的问题。联系 ISP 有助于确定问题并查明他们最终的困难。
结论
在本DNS问题故障排除指南的末尾,你应该有几个工具和技巧来帮助你解决 DNS 问题。如果你想在家中设置 DNS 服务器以加快连接速度,请尝试遵循我们的 Raspberry Pi 教程,了解如何将 Raspberry Pi 设置为 DNS 服务器。