菜鸟科技网

如何重新DNS命令?

DNS(域名系统)是互联网的“电话簿”,负责将人类易于记忆的域名(如 www.google.com)解析为机器能够识别的 IP 地址(如 250.191.78),当您遇到网站打不开、解析缓慢等问题时,使用这些命令可以帮助您诊断和排查问题。

如何重新DNS命令?-图1
(图片来源网络,侵删)

以下是几个最核心和常用的 DNS 命令,从最基础到更高级。


nslookup (Name Look Up)

这是最基础、最经典的 DNS 查询工具,用于查询域名对应的 IP 地址或反向查询 IP 对应的域名。

基本用法:

在命令行(Windows 的 cmd 或 PowerShell,macOS/Linux 的 Terminal)中输入 nslookup,然后按回车。

如何重新DNS命令?-图2
(图片来源网络,侵删)

示例 1:查询 A 记录(域名到 IP 的映射)

nslookup www.baidu.com

输出示例:

Server:  192.168.1.1  # 通常是你路由器或本地 DNS 服务器的地址
Address: 192.168.1.1#53
Non-authoritative answer:
www.baidu.com  canonical name = www.a.shifen.com.
Name:  www.a.shifen.com
Address: 182.61.200.7
Name:  www.a.shifen.com
Address: 182.61.200.6
  • 解释nslookup 首先告诉你它使用了哪个 DNS 服务器(Server),然后返回了 www.baidu.com 的解析结果,并显示其规范名是 www.a.shifen.com,最后给出了对应的两个 IP 地址(用于负载均衡)。

示例 2:查询指定 DNS 服务器的结果

如果你想使用公共 DNS 服务器(如 Google DNS 8.8.8)来查询,可以这样:

如何重新DNS命令?-图3
(图片来源网络,侵删)
nslookup www.github.com 8.8.8.8

示例 3:反向查询(IP 到域名)

nslookup 8.8.8.8

输出示例: `` Server: your.local.dns.server Address: your.local.dns.server#53

Non-authoritative answer: 8.8.8.8.in-addr.arpa name = dns.google. Authoritative answers can be found from:


---
### 2. `dig` (Domain Information Groper)
`dig` 是一个功能更强大、更灵活的 DNS 查询工具,在 macOS 和 Linux 系统中默认安装,但在 Windows 中需要手动安装(例如通过 BIND 安装包或 Windows Subsystem for Linux)。
`dig` 提供了比 `nslookup` 更详细、更结构化的输出,非常适合网络管理员进行深度诊断。
**基本用法:**
```bash
dig www.example.com

输出示例(简化):

; <<>> DiG 9.16.1-Ubuntu <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;www.example.com.            IN      A
;; ANSWER SECTION:
www.example.com.     300     IN      A      93.184.216.34
;; Query time: 15 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Oct 24 10:30:00 CST 2025
;; MSG SIZE  rcvd: 56
  • 解释
    • QUESTION SECTION:显示了你的查询请求。
    • ANSWER SECTION:显示了 DNS 服务器返回的最终答案。
    • Query time:查询耗时,对判断延迟很有用。
    • SERVER:本次查询使用的 DNS 服务器。

常用选项:

  • @<服务器>:指定 DNS 服务器,如 dig @8.8.8.8 www.example.com
  • +short:只返回答案,简化输出,非常适合脚本使用。
    dig +short www.example.com
    # 输出: 93.184.216.34
  • +trace:追踪 DNS 查询的完整路径,从根域名服务器开始,一步步查到最终结果,是排查 DNS 解析链路问题的利器。
    dig +trace www.example.com

ping

ping 命令通过 ICMP 协议测试与另一台主机的网络连接,但它首先会进行一次 DNS 解析。ping 一个域名失败,第一步就应该检查 DNS 是否能解析成功。

基本用法:

ping www.google.com

输出示例(开头部分): `` Pinging www.google.com [142.250.191.78] with 32 bytes of data: Reply from 142.250.191.78: bytes=32 time=15ms TTL=118 ...

*   **解释**:从输出中可以看到,`ping` 成功地将 `www.google.com` 解析为 `142.250.191.78`,然后开始与该 IP 地址进行通信,如果这里显示 "Ping request could not find host www.google.com",则说明 DNS 解析失败。
---
### 4. `ipconfig` (仅限 Windows)
`ipconfig` 是 Windows 系统下查看和管理网络配置的命令,其中与 DNS 相关的功能非常重要。
**常用子命令:**
*   `ipconfig /displaydns`:显示本地 DNS 解析器缓存的内容,这个缓存包含了最近查询过的 DNS 记录,可以用来确认你的电脑是否已经成功解析过某个域名。
    ```bash
    ipconfig /displaydns
  • ipconfig /flushdns刷新 DNS 解析缓存,这是解决 DNS 问题的“万能钥匙”,当本地缓存中的记录已过期或损坏时,刷新缓存可以让系统重新从 DNS 服务器获取最新的记录。
    ipconfig /flushdns

    执行后通常会显示“已成功刷新 DNS 解析缓存”。


cat /etc/resolv.conf (仅限 Linux/macOS)

这个文件列出了当前系统正在使用的 DNS 服务器地址,在 Linux 和 macOS 上,系统会按照这个文件中的顺序来查询 DNS。

查看方法:

cat /etc/resolv.conf

输出示例:

# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub listener of systemd-resolved(8). This file lists all
# configured search domains.
#
# Run "systemd-resolve --status" to see detailed information about this
# resolved configuration.
#
# Third-party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage resolv.conf(5), change this symlink
# via systemd-links(8).
#
nameserver 127.0.0.53
  • 解释nameserver 行后面的 IP 地址就是系统当前使用的 DNS 服务器。0.0.53 通常表示系统正在使用 systemd-resolvedmDNSResponder 本地服务。

systemd-resolve --status (现代 Linux 系统)

对于使用 systemd-resolved 服务的新版 Linux(如 Ubuntu 18.04+),这个命令可以提供非常详细的 DNS 信息,包括使用的 DNS 服务器、搜索域、DNS 缓存状态等。

systemd-resolve --status

总结与故障排查流程

命令 主要用途 适用系统
nslookup 基础 DNS 查询,正向/反向解析 所有系统
dig 高级、详细 DNS 查询,支持追踪 macOS, Linux, WSL
ping 测试网络连通性(隐含 DNS 解析) 所有系统
ipconfig /flushdns 刷新本地 DNS 缓存 Windows
cat /etc/resolv.conf 查看系统配置的 DNS 服务器 Linux, macOS
systemd-resolve --status 查看 DNS 服务的详细状态 Linux (systemd)

简单故障排查流程:

  1. 确认问题:尝试访问一个网站,打不开。
  2. 检查 DNS 解析
    • 使用 ping www.example.com
    • 如果提示 "could not find host",则确认是 DNS 问题。
  3. 尝试公共 DNS
    • 使用 nslookup www.example.com 8.8.8.8dig @8.8.8.8 www.example.com
    • 如果能解析:说明是你的本地网络或 ISP 的 DNS 服务器有问题。
    • 如果仍然不能解析:可能是网站本身的问题或网络连接问题。
  4. 刷新本地缓存
    • Windows: ipconfig /flushdns
    • macOS/Linux: sudo killall -HUP mDNSResponder (macOS) 或重启 systemd-resolved 服务。
  5. 检查 DNS 服务器配置
    • Windows: ipconfig /all 查看“DNS 服务器”地址。
    • Linux/macOS: cat /etc/resolv.conf
    • 如果配置错误或指向不可用的服务器,可以手动修改(Windows 在网络适配器设置中,Linux/macOS 可修改 /etc/resolv.conf 或网络管理器配置)。

希望这份详细的指南能帮助你更好地理解和使用 DNS 命令!

分享:
扫描分享到社交APP
上一篇
下一篇