5154

Good Luck To You!

linux查看dns和网关地址

Linux中,查看DNS可用cat /etc/resolv.conf,查看网关可用route nip route命令

Linux查看DNS和网关地址详解

在Linux系统中,了解网络配置信息(尤其是DNS服务器与默认网关)对于日常运维、故障排查以及网络优化至关重要,本文将系统介绍如何通过多种方法查看这些关键参数,并解析其背后的原理与应用场景。


查看DNS服务器地址的方法

方法1:使用nmcli命令(推荐用于现代发行版)

适用于基于NetworkManager管理的系统(如Ubuntu/CentOS 8+):

nmcli device show | grep 'IPv4.DNS'

输出示例:

IPv4.DNS[1]:                             8.8.8.8
IPv4.DNS[2]:                             114.114.114.114

💡提示:该工具支持交互式修改配置,适合图形化界面缺失的环境。

方法2:解析配置文件直接读取

(1) /etc/resolv.conf(传统方式)

这是最经典的DNS解析文件,内容如下表所示: | 字段 | 说明 | 示例值 | |||| | nameserver | 主/辅DNS服务器IP | 8.8.8.8, 223.5.5.5 | | domain | 本地域名后缀 | example.com | | search | 多级搜索路径 | localdomain | | options | 特殊选项(如超时控制) | ndots:1 |

linux查看dns和网关地址

(2) 动态分配场景下的溯源

当使用DHCP获取IP时,实际配置存储在别处:

cat /var/lib/dhcp/dhclient.leases # OpenWrt类路由器常见路径
grep 'dnsserver' /var/lib/NetworkManager/*/metadata.json # Fedora系特有机制

方法3:通过系统服务状态查询

对于Systemd管理系统:

systemctl status systemdresolved

会显示正在运行的DNS转发服务详情,包括监听端口和使用的策略。


查看默认网关的方法

🔧 核心原理

网关本质是跨子网通信的第一跳路由器地址,可通过以下途径获取:

linux查看dns和网关地址

(1) ip route命令(最准确)

ip route show default

典型输出:

default via 192.168.1.1 dev wlp3s0 onlink

⚠️注意:via后面的即为网关IP,dev对应物理接口名。

(2) route n兼容旧版内核

route n | grep ^0.0.0.0      # BSD风格语法

等效于上面的ip命令结果。

(3) netstat扩展用法

netstat rn | head 1         # 仅显示首行路由表项即默认网关

综合验证与交叉校验技巧

为确保数据可靠性,建议执行以下组合操作: | 步骤 | 命令 | 目的 | |||| | 1 | hostname I | 确认本机所有绑定IP | | 2 | ifconfig/ip a | 检查网卡激活状态 | | 3 | ping <网关IP> | 测试连通性 | | 4 | dig @<DNS IP> example.com | 验证DNS解析有效性 | | 5 | traceroute n <外部域名> | 追踪完整路径验证路由正确性|

linux查看dns和网关地址

ℹ️案例:若发现能Ping通网关但无法上网,通常是因为DNS配置错误或防火墙阻断了53端口。


常见问题与解决方案速查表

现象 可能原因 解决思路
DNS解析失败 /etc/resolv.conf为空 手动添加nameserver条目
能上QQ不能开网页 HTTP代理干扰 检查环境变量http_proxy是否误设
网关不可达知 MTU不匹配 tcpdump抓包分析ICMP超时原因
IP冲突导致断流 ARP欺骗攻击 arpwatch监控+静态ARP绑定

📌 相关问题与解答栏目

Q1: 为什么修改了/etc/resolv.conf后仍未生效?

答: 可能原因包括:① NetworkManager覆盖了手动更改(需在图形界面同步设置);② systemdresolved服务启用导致缓存未刷新;③ SELinux限制了文件写入权限,解决方法依次尝试:重启网络服务(systemctl restart NetworkManager),清空缓存(systemdresolve flushcaches),检查安全策略上下文。

Q2: 静态设置网关后出现“RTNETLINK answers: File exists”错误怎么办?

答: 这是由于重复添加相同路由导致的,先用ip route del default删除现有默认路由,再重新添加,建议优先使用图形化工具避免人为失误,或者通过编辑/etc/network/interfaces(Debian系)实现

发表评论:

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

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.