怎么查看linux的dns
怎么查看linux的dns详细介绍
在 Linux 系统中查看 DNS 配置和解析状态有多种方法,涵盖配置文件、命令行工具及服务管理等。以下是详细的操作指南和注意事项:
一、查看 DNS 服务器配置
1.
直接读取配置文件
/etc/resolv.conf:存储当前 DNS 服务器地址,通常由 DHCP 或网络管理工具动态生成。bash/etc/resolv.confnameserver .83.19
nameserver .82.98
options timeout:1 rotate
- 注意:若文件内容包含
# Generated by NetworkManager等注释,说明由网络管理工具(如 NetworkManager)控制,直接修改可能被覆盖。 - 持久化修改:需通过网络管理工具或修改
/etc/systemd/resolved.conf(systemd 环境)实现。
- 注意:若文件内容包含
2.
使用网络管理工具(如 NetworkManager)
nmcli:查看特定连接的 DNS 配置。bashnmcli con show 连接名称 dnsnmcli con show dns
- 图形化工具:在 GNOME 或 KDE 桌面环境中,通过网络设置界面查看 DNS 服务器。
3.
systemd-resolved 服务(systemd 环境)
- 查看状态:bash
systemd-resolveresolvectl status
- 输出示例:plaintext
GlobalDNS Servers: 183.60.83.19 183.60.82.98
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
...
Link 2 (enp0s3)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNS Servers: 183.60.83.19 183.60.82.98
DNS Domain: ~.
- 关键信息:
DNS Servers列出当前使用的 DNS 服务器,Current Scopes显示生效的网络接口。
- 输出示例:plaintext
二、测试 DNS 解析功能
1.
dig(推荐)
- 查询域名解析:bash
example.com@183.60.83.19 example.com
- 输出说明:plaintext
;; ANSWER SECTION:example.com. 300 IN A 93.184.216.34 # IP 地址
;; Query time: 25 msec
;; SERVER: 183.60.83.19#53(183.60.83.19) # 使用的 DNS 服务器
- 高级功能:支持查询 MX、TXT 等记录(如
dig mx example.com)。
- 输出说明:plaintext
2.
host
- 简单查询:bash
example.comexample.com has address .216.34
3.
nslookup(不推荐,已弃用)
- 基本用法:bash
example.com- 注意:该工具功能有限且已被
dig和host替代,仅在兼容性场景中使用。
- 注意:该工具功能有限且已被
三、查看 DNS 缓存和统计信息
1.
systemd-resolved 缓存
- 查看缓存内容:bash
resolvectl query example.com - 清理缓存:bash
systemd-resolve --flush-caches
2.
nscd 缓存(非 systemd 环境)
- 查看状态:bash
systemctl status nscd - 清理缓存:bash
systemctl restart nscd
四、故障排查与进阶操作
1.
检查网络接口配置
ip addr:确认网络接口是否启用并分配 IP。bashaddr show dev enp0s3ip route:查看路由表是否包含默认网关。bashroute
2.
动态 DNS 配置(DHCP)
- 查看 DHCP 分配的 DNS:bash
/var/lib/dhcp/dhclient.enp0s3.leases - 重新获取 DHCP 租约:bash
dhclient enp0s3dhclient enp0s3
3.
配置文件冲突处理
- systemd-resolved 与 resolvconf:
- 若
/etc/resolv.conf是软链接(如指向/run/systemd/resolve/stub-resolv.conf),需通过 systemd-resolved 管理 DNS。 - 禁用 systemd-resolved:bash
systemctl disable systemd-resolved - 改用 resolvconf:bash
resolvconf
- 若
五、典型场景示例
1.
验证 DNS 服务器是否可达
bash
.83.19
2.
排查域名解析失败
bash
example.com +trace
3.
临时修改 DNS 服务器
bash
/etc/resolv.conf
六、总结与建议
- 优先使用工具:
dig和host功能全面,推荐用于日常查询。 - 服务管理:systemd-resolved 是现代 Linux 发行版的默认选择,建议通过
resolvectl或修改/etc/systemd/resolved.conf进行配置。 - 动态配置:若 DNS 由 DHCP 分配,避免直接修改
/etc/resolv.conf,应通过 DHCP 服务器或网络管理工具调整。 - 权限问题:部分配置文件(如
/etc/resolv.conf)需 root 权限访问,使用sudo执行相关命令。
通过以上方法,您可以全面了解 Linux 系统的 DNS 配置、解析状态及故障排查,满足从基础查看至高级调试的需求。