ip route
查看网关,用 nmcli dev show
或 `cat /etc/resolv.Linux系统中,查看网关、DNS等信息对于网络配置和故障排查至关重要,以下是详细的操作方法:
查看网关信息
-
使用
ip route
命令- 命令格式:
ip route
- 示例输出:
default via 192.168.1.1 dev wlp3s0 proto dhcp metric 600
default via
后面的IP地址即为默认网关地址,dev
后面是网络接口名称。
- 命令格式:
-
使用
route n
命令- 命令格式:
route n
- 示例输出:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 600 0 0 wlp3s0
同样,
Destination
为0.0.0
对应的Gateway
列即为默认网关。
- 命令格式:
-
使用
netstat rn
命令- 命令格式:
netstat rn
- 示例输出:
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlp3s0
该命令的输出与
route n
类似,可用于查看默认网关。
- 命令格式:
-
通过
ip addr show
命令结合网络接口信息推断(不直接显示网关)- 命令格式:
ip addr show
- 示例输出(部分关键信息):
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic wlp3s0 valid_lft 86399sec preferred_lft 86399sec
此命令主要显示网络接口的IP地址等详细信息,虽不直接显示网关,但结合
ip route
等命令可确定网络连接情况。
- 命令格式:
查看DNS信息
-
查看
/etc/resolv.conf
文件- 命令格式:
cat /etc/resolv.conf
- 示例输出:
nameserver 8.8.8.8 nameserver 8.8.4.4
文件中
nameserver
后面跟着的IP地址即为系统配置的DNS服务器地址。
- 命令格式:
-
使用
nmcli
命令(适用于使用NetworkManager管理网络连接的系统)- 查看所有网络设备的DNS配置:
- 命令格式:
nmcli device show | grep DNS
- 示例输出:
DNS4_CONNECTION: wired connection to the Internet DNS4_CONFIGURATION: auto DNS4_DOMAIN: example.com DNS4_IGNORE_AUTO_CNI: false DNS4_ROUTES: [{ "destination": "0.0.0.0/0", "nexthop": "192.168.1.1" }, ...] DNS4_SERVERS: ["8.8.8.8", "8.8.4.4"]
DNS4_SERVERS
字段显示了当前网络接口配置的DNS服务器地址。
- 命令格式:
- 查看特定网络接口的DNS配置:
- 命令格式:
nmcli connection show [interface_name] | grep DNS
(将[interface_name]
替换为实际的网络接口名称,如eth0
) - 示例输出(假设接口名为
eth0
):connection.id: eth0 connection.type: 8023ethernet connection.autoconnect: yes connection.interfacename: eth0 ... ipv4.dns: [8.8.8.8, 8.8.4.4]
这里
ipv4.dns
字段即为该接口的DNS服务器地址。
- 命令格式:
- 查看所有网络设备的DNS配置:
-
使用
systemdresolve status
命令(适用于使用systemdresolved的系统)- 命令格式:
systemdresolve status
- 示例输出(部分关键信息):
Global DNS Servers: 8.8.8.8 DNS Servers: 8.8.4.4 DNS Over TLS: true ...
该命令会显示包括DNS服务器地址、搜索域等在内的详细解析配置信息。
- 命令格式:
-
使用
dig
命令查询DNS记录并间接获取DNS配置信息- 命令格式:
dig [domain] @[dns_server]
(可省略@[dns_server]
,默认使用系统配置的DNS服务器) - 示例输出(查询
www.example.com
):; <<>> DiG 9.16.1Ubuntu <<>> www.example.com ;; global options: +cmd ;; Got answer: ;; >>HEADER<<opcode: QUERY, status: NOERROR, id: 61737 ;; 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. 30 IN A 93.184.216.34 ;; Query time: 57 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Fri Apr 12 14:30:25 CST 2025 ;; MSG SIZE rcvd: 56
在输出的开头部分,
;; SERVER
后面显示了实际使用的DNS服务器地址。
- 命令格式:
同时查看网关和DNS信息的综合命令(部分命令)
命令 | 说明 |
---|---|
ip route && cat /etc/resolv.conf |
先使用ip route 查看网关信息,再通过cat /etc/resolv.conf 查看DNS信息 |
route n && nmcli device show | grep DNS |
先使用route n 查看网关,然后通过nmcli device show | grep DNS 查看DNS(适用于使用NetworkManager的系统) |
相关问题与解答
-
问题:修改了
/etc/resolv.conf
文件中的DNS服务器地址后,为什么没有生效?- 解答:在某些Linux系统中,
/etc/resolv.conf
文件可能会被NetworkManager或其他网络管理工具动态修改,如果直接编辑该文件,可能不会永久生效,解决方法是使用相应的网络管理工具(如nmcli
或systemdresolve
)来修改DNS设置,或者确保重启网络服务或系统使更改生效。
- 解答:在某些Linux系统中,
-
问题:如何查看特定网络接口的详细信息,包括IP地址、网关和DNS?
- 解答:可以使用
ip addr show [interface_name]
查看特定网络接口的IP地址等详细信息,对于网关,可结合ip route
命令查看默认路由对应的网关地址,至于DNS,若系统使用NetworkManager管理网络连接,可使用nmcli connection show [interface_name] | grep DNS
查看该接口的DNS服务器地址;若使用systemdresolved,
- 解答:可以使用