`cat /etc/resolv.
Linux 系统中,有多种命令可以用于查看 DNS 配置和相关信息,以下是一些常用的方法和命令:
cat /etc/resolv.conf
这是最直接的方法之一,用于查看当前系统的 DNS 配置信息,该文件通常包含系统使用的 DNS 服务器地址。
%ignore_pre_1%示例输出:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
在这个例子中,系统使用了 Google 的公共 DNS 服务器(8.8.8.8 和 8.8.4.4)。
systemd-resolve --status
如果你使用的是 systemd-resolved 服务,可以使用这个命令来查看详细的 DNS 配置信息,包括 DNS 服务器、域搜索列表等。
systemd-resolve --status
示例输出:
Global
DNS Servers: 8.8.8.8
8.8.4.4
DNSSEC NTA: 1024
DefaultDomain: ~.
..
Link 2 (enp0s3)
Current Scope: host
..
这个命令提供了比 /etc/resolv.conf
更详细的信息,尤其是在使用 systemd-resolved 时。
nmcli dev show | grep IP4.DNS
如果你使用的是 NetworkManager,可以使用 nmcli
命令来查看网络设备的 DNS 配置。
nmcli dev show | grep IP4.DNS
示例输出:
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 8.8.4.4
这个命令会列出当前网络接口的 DNS 服务器地址。
dig
命令
dig
是一个强大的 DNS 查询工具,可以用来测试 DNS 解析是否正常工作,你可以查询一个域名的 A 记录:
dig www.example.com
示例输出:
; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<opcode: QUERY, status: NOERROR, id: 57175
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.example.com. IN A
;; ANSWER SECTION:
www.example.com. 0 IN A 93.184.216.34
;; Query time: 50 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Oct 27 12:34:56 UTC 2023
;; MSG SIZE rcvd: 56
这个命令不仅显示了 DNS 解析的结果,还提供了查询的详细信息,如响应时间、使用的 DNS 服务器等。
host
命令
host
是另一个简单的 DNS 查询工具,可以用来查询域名的 IP 地址或其他记录。
host www.example.com
示例输出:
www.example.com has address 93.184.216.34
这个命令比 dig
更简洁,适合快速查询。
nslookup
命令
nslookup
是另一个常用的 DNS 查询工具,可以用来查询域名的 IP 地址或进行更复杂的 DNS 查询。
nslookup www.example.com
示例输出:
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
www.example.com canonical name = example.com.
Name: example.com
Address: 93.184.216.34
这个命令提供了与 dig
类似的功能,但输出格式略有不同。
resolv-file-utils
工具包
如果你需要更高级的工具来管理或查看 DNS 配置,可以考虑安装 resolv-file-utils
工具包,这个工具包包含了多个实用程序,如 resolvconf
,可以用来管理 /etc/resolv.conf
文件。
sudo apt-get install resolvconf resolvconf -a
这个命令会重新生成 /etc/resolv.conf
文件,并显示当前的 DNS 配置。
ifconfig
和 ip
命令
虽然这些命令主要用于查看网络接口的配置,但它们也可以间接提供 DNS 相关的信息,使用 ifconfig
命令可以查看网络接口的详细信息,包括 DNS 配置。
ifconfig
示例输出:
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fea4:6f7b prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:0a:6f:7b txqueuelen 1000 (Ethernet)
RX packets 123456 bytes 12345678 (12.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 123456 bytes 12345678 (12.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
虽然 ifconfig
本身不直接显示 DNS 信息,但结合其他命令(如 cat /etc/resolv.conf
)可以获取完整的网络配置信息。
network-manager
图形界面
如果你使用的是桌面环境,并且安装了 NetworkManager,可以通过图形界面查看和修改 DNS 配置,打开 NetworkManager 设置,选择你的网络连接,然后在“IPv4 Settings”或“IPv6 Settings”选项卡中找到 DNS 配置部分。
journalctl
命令
如果你怀疑 DNS 配置有问题,可以查看系统日志以获取更多信息。journalctl
命令可以用来查看系统日志,包括与网络和 DNS 相关的日志。
journalctl -u systemd-resolved
这个命令会显示与 systemd-resolved 服务相关的日志,帮助你诊断 DNS 问题。
在 Linux 系统中,查看 DNS 配置的方法多种多样,从简单的文件查看到复杂的网络查询工具都可以使用,根据你的需求选择合适的命令,可以快速获取所需的 DNS 信息,以下是一些常用命令的小编总结:
命令 | 描述 |
---|---|
cat /etc/resolv.conf |
查看当前系统的 DNS 配置 |
systemd-resolve --status |
查看 systemd-resolved 的详细状态 |
nmcli dev show \| grep IP4.DNS |
查看 NetworkManager 管理的 DNS 配置 |
dig www.example.com |
使用 dig 查询域名的 DNS 记录 |
host www.example.com |
使用 host 查询域名的 IP 地址 |
nslookup www.example.com |
使用 nslookup 查询域名的 IP 地址 |
resolvconf -a |
重新生成 /etc/resolv.conf 文件 |
ifconfig |
查看网络接口的详细信息 |
journalctl -u systemd-resolved |
查看 systemd-resolved 的日志 |
FAQs
Q1: 如何更改 Linux 系统的 DNS 配置?
A1: 你可以通过编辑 /etc/resolv.conf
文件来手动更改 DNS 配置,添加或修改 nameserver
行,指定你想要使用的 DNS 服务器地址。
sudo nano /etc/resolv.conf
然后添加或修改以下内容:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存并退出文件后,新的 DNS 配置将立即生效。
Q2: 为什么我的 dig
命令无法解析某些域名?
A2: 可能有几个原因导致 dig
命令无法解析某些域名:
- DNS 服务器问题:你的系统可能配置了无效的 DNS 服务器地址,或者这些服务器暂时不可用,你可以尝试更换 DNS 服务器,例如使用 Google 的公共 DNS(8.8.8.8 和 8.8.4.4)。
- 网络连接问题:你的网络连接可能存在问题,导致无法访问外部 DNS 服务器,你可以使用
ping
命令检查网络连接。 - 域名拼写错误:确保你输入的域名是正确的,没有拼写错误。
- 防火墙或安全软件阻止:某些防火墙或安全软件可能会阻止 DNS 查询,你可以暂时禁用这些软件,看看问题是否解决。
- DNSSEC 问题:如果启用了 DNSSEC,可能会导致某些域名无法解析。
以上就是关于“linux命令如何查看dns”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/12075.html