```bash,$ cat /etc/resolv.conf | gre
Linux查看自身网段DNS的详细指南
通过系统配置文件直接查看
检查/etc/resolv.conf
文件
作用:该文件存储了当前系统使用的DNS服务器列表(顺序为优先级)。
命令:
cat /etc/resolv.conf
输出示例:
# Generated by NetworkManager
nameserver 192.168.1.1
nameserver 8.8.8.8
说明:
- 第一行为注释,实际配置从第二行开始。
- 若文件为空或未生成,可能是系统使用
systemdresolved
服务动态管理DNS。
验证systemdresolved
服务的DNS配置
适用场景:现代Linux发行版(如Ubuntu)可能用systemdresolved
替代传统/etc/resolv.conf
。
命令:
systemdresolve status
输出示例:
Global
DNS Servers: 192.168.1.1
DNS Domain: ~.
Link 2 (ens33)
DNS Servers: 192.168.1.1
DNS Domain: example.com
关键点:
- "Global"为全局DNS配置,"Link"为特定网卡的配置。
- 若显示
DNS Servers: none
,需检查网络连接或手动配置。
通过命令行工具查询DNS信息
使用nmcli
查看网络接口DNS配置
命令:
nmcli device show | grep DNS
输出示例:
IP4.DNS[1]: 192.168.1.1
IP4.DNS[2]: 8.8.8.8
说明:
- 括号内的数字表示DNS服务器的优先级。
- 若需查看指定接口(如
eth0
),可替换命令中的设备名。
通过ip
命令分析路由表关联DNS
命令:
ip route show
输出示例:
default via 192.168.1.254 dev ens33
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.100
关联分析:
- 默认网关(
168.1.254
)通常是路由器,其IP可能也是DNS服务器。 - 可通过
ping 192.168.1.254
测试网关是否响应,进一步用nslookup
验证其是否提供DNS服务。
进阶工具:域名解析测试与验证
使用nslookup
查询DNS解析效果
命令:
nslookup www.baidu.com
输出示例:
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: www.a.shifen.com
Address: 123.56.78.90
作用:
- 验证当前DNS是否能正确解析域名。
- 若解析失败,可能是DNS配置错误或网络问题。
替代netstat
的现代命令
注意:netstat
已过时,建议使用ss
或ip
。
命令:
ss tupln | grep :53
输出示例:
LISTEN 0 128 *:53 *:* udp
说明:
- 检查本地是否运行DNS服务(如
:53
端口)。 - 若存在,可能影响外部DNS请求。
常见问题与解决方法
问题 | 解决方案 |
---|---|
/etc/resolv.conf 为空 |
重启systemdresolved 服务:sudo systemctl restart systemdresolved |
无法解析域名 | 检查网络连接 更换DNS为公共服务器(如8.8.8.8) |
多网卡DNS冲突 | 使用nmcli 为指定网卡单独配置DNS |
相关问题与解答
Q1:如何永久修改DNS配置?
A1:
- 编辑
/etc/resolv.conf
(非systemdresolved
系统)或通过nmtui
图形界面修改。 - 若使用
NetworkManager
,需在连接配置中调整DNS参数。
Q2:如何清除DNS缓存?
A2:
- 对于
systemdresolved
:sudo systemdresolve flushcaches
- 对于
nscd
服务:`sudo systemctl restart