5154

Good Luck To You!

lunix环境怎么查看dns地址

nux查看DNS地址可用命令:cat /etc/resolv.confsystemdresolve statusnmcli dev show | grep DNS

直接查看配置文件

方法:cat /etc/resolv.conf

这是最基础且常用的方式,通过读取系统级的DNS客户端配置文件获取信息,该文件通常包含以下关键字段:

  • nameserver:后接DNS服务器的IP地址(可多行配置多个备选服务器);
  • search:定义域名搜索路径;
  • domain:设置默认域名后缀。

操作步骤

  1. 打开终端,输入命令:cat /etc/resolv.conf
  2. 输出结果示例如下:
    nameserver 8.8.8.8      # Google公共DNS
    nameserver 8.8.4.4       # 备用DNS
    search localdomain       # 搜索域优先级
  3. 每行以nameserver开头的条目即代表当前生效的DNS服务器地址,若有多个条目,则按顺序尝试连接。

注意:某些发行版(如Ubuntu)可能因网络管理器动态更新此文件,导致手动修改被覆盖,此时需结合其他工具验证实际使用的DNS。


使用命令行工具交互查询

nslookup——简单快速的诊断工具

此命令不仅可查看默认DNS服务器,还能测试特定域名的解析过程。

  • 基本用法:仅输入nslookup进入交互模式,再键入server查看当前使用的DNS IP;
  • 高级用法:指定目标DNS进行测试,例如nslookup www.example.com 8.8.8.8会向指定服务器发起请求。

示例输出片段

Server:     8.8.8.8         # 显示正在使用的DNS服务器
Address:    8.8.8.8#53      # 端口号为53(标准DNS服务端口)

⚠️提示:若输出中出现超时错误,可能是防火墙阻止了UDP/TCP端口或DNS未响应。

dig——专业化的DNS分析利器

相比nslookupdig提供更详细的报文结构和调试信息,适合排查复杂问题,常用参数包括:

  • +short:精简输出格式;
  • @<ip>:强制向某个DNS服务器发包。

典型命令及解读

dig +short @8.8.8.8 www.baidu.com
;; ANSWER SECTION:
www.baidu.com.    300 IN A   39.156.66.14   # 返回的A记录(IPv4地址)

直接运行dig不加参数会显示系统全局配置的DNS服务器列表:

;; SERVER: 10.72.17.5#53(10.72.17.5)    # 从本地守护进程获取的真实上游服务器

通过网络管理组件获取信息

NetworkManager CLI (nmcli)

适用于桌面版Linux(如GNOME/KDE),其底层服务会自动同步到/etc/resolv.conf,执行以下命令过滤关键数据:

nmcli device show | grep IP4.DNS     # 列出所有接口的DNS设置

输出可能类似:

IP4.DNS[1]:                             8.8.8.8           # 主DNS
IP4.DNS[2]:                             8.8.4.4           # 次选DNS

优势:无需重启网络即可实时查看最新配置,尤其适用于图形界面调整后的状态同步。

systemdresolve状态监控

现代init系统中,systemdresolved作为缓存加速服务运行,通过它可查看完整解析链:

systemdresolve status | grep "DNS Servers"

典型结果:

DNS Servers:         8.8.8.8:53,8.8.4.4:53      # 同时展示端口号便于排错
DNSSEC policy mode:  none                     # 安全策略标识

💡技巧:若怀疑缓存导致解析异常,可用systemctl restart systemdresolved刷新缓存。


不同方法对比表

工具/文件 适用场景 优点 局限性
/etc/resolv.conf 静态配置检查 直观、全局生效 可能被动态服务覆盖
nslookup 快速验证单个域名解析 交互友好 信息简略
dig 深度分析DNS响应结构 支持多种记录类型查询 命令复杂性较高
nmcli 网络管理器集成环境 实时反映GUI设置变更 仅部分发行版支持
systemdresolve 系统级缓存与负载均衡策略诊断 显示完整解析链路 依赖systemd生态

常见问题与解答

Q1: 为什么/etc/resolv.conf里的DNS和实际使用的不一致?

答:多数现代Linux发行版采用NetworkManager或Netplan动态管理网络参数,当通过图形界面修改DNS时,这些工具会生成临时配置文件(如/run/systemd/resolve/...),并覆盖静态的/etc/resolv.conf,建议优先使用nmclisystemdresolve查看最终生效的值。

Q2: 如何永久更改系统的DNS设置?

答:推荐两种方式:一是编辑/etc/netplan/*.yaml(针对Ubuntu Server等Netplan驱动的系统),添加类似如下片段:

dns:
  addresses: [8.8.8.8,8.8.4.4]      # 显式指定DNS列表
```二是通过GUI的网络连接设置保存配置,确保改动持久化至启动脚本中,修改后记得用`sudo netplan apply`重新加载配置。

### **六、*
Linux提供了灵活多样的DNS诊断方案,从基础的文件读取到专业的工具链,能够满足从日常检查到故障排除的全场景需求,实际工作中建议组合使用多种方法交叉验证,例如先用`cat /etc/resolv.conf`确认理论配置,再用`dig`或`systemdresolve`验证实际效果,对于生产环境,尤其需要注意动态网络管理器

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年8月    »
123
45678910
11121314151617
18192021222324
25262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.