如何查看Linux的默认网关?
参考回答
在 Linux 中,可以使用以下命令查看默认网关:
1. 使用 ip route(推荐方式)
ip route show default
或者更简洁:
ip route | grep default
示例输出:
default via 192.168.1.1 dev eth0 proto dhcp metric 100
其中:
– default via 192.168.1.1 表示默认网关是 192.168.1.1。
– dev eth0 表示该网关对应的网卡是 eth0。
2. 使用 route 命令(传统方式)
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 100 0 0 eth0
其中:
– 0.0.0.0 代表默认路由。
– Gateway 列显示 192.168.1.1,即默认网关。
3. 使用 netstat(已废弃但仍可能可用)
netstat -rn
这个命令的输出格式与 route -n 类似,显示路由表信息。
详细讲解与拓展
1. ip route show default 解析
ip route 是 ip 命令的子命令,用于管理路由表,它比 route 更现代,适用于所有较新的 Linux 发行版。
它的输出:
default via 192.168.1.1 dev eth0 proto dhcp metric 100
各字段解释:
– default:表示默认路由,即所有未明确指定去向的流量都经过这个网关。
– via 192.168.1.1:表示数据包通过 192.168.1.1 这个网关转发。
– dev eth0:表示该网关绑定的网络接口是 eth0。
– proto dhcp:表示该路由是由 DHCP 分配的。
– metric 100:表示该路由的优先级,数值越小优先级越高。
2. route -n 解析
route -n 直接显示 IP 地址,不进行 DNS 解析,输出类似:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
关键字段:
– Destination:目的地址,0.0.0.0 代表默认路由。
– Gateway:网关地址,192.168.1.1。
– Iface:网络接口,eth0。
– Flags:U 表示路由可用,G 表示它是一个网关。
3. netstat -rn(已过时,不推荐)
netstat -rn 结果与 route -n 相似,但 netstat 命令本身已被 ss 替代,不推荐使用。
拓展知识
1. 获取特定网卡的默认网关
如果有多个网卡(如 eth0 和 wlan0),可以查看某个特定网卡的默认网关:
ip route show default | grep eth0
2. 查看所有网关
除了默认网关,还可以列出所有路由信息:
ip route show
示例:
default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100
这里:
– 192.168.1.0/24 代表本地网络。
– src 192.168.1.100 是当前网卡的 IP 地址。
3. 如何修改默认网关?
如果想手动修改默认网关,可以使用:
sudo ip route add default via 192.168.1.254 dev eth0
如果要删除原来的默认网关:
sudo ip route del default
总结
- 推荐使用
ip route show default方式查看默认网关,更现代、适用所有新版本 Linux。 route -n仍然可用,但逐渐被淘汰。netstat -rn已过时,不建议使用。ip route show可以查看完整的路由表,适用于多网卡场景。- 如果需要修改默认网关,可以用
ip route add default via <网关IP> dev <网卡>。
掌握这些命令,能帮助你快速查找、理解和管理 Linux 网络路由信息。