netstat -rn 是查看路由表最直接的方式,它以数字形式显示 ipv4/ipv6 路由条目,其中 destination 为 0.0.0.0 的行对应默认网关,其 gateway 字段即网关 ip,iface 字段标识生效接口;推荐搭配 grep 或 awk 快速提取网关地址,且需注意 -r 小写、-n 避免主机名解析,并确认系统已安装 net-tools。

netstat -r 是查看路由表最直接的方式,它能完整显示内核当前维护的 IPv4 和 IPv6 路由条目,其中默认网关就藏在目标为 0.0.0.0 的那条记录里。
用 netstat -r 查看完整路由表
执行 netstat -r 会列出所有路由规则,但主机名可能被解析,影响阅读速度。更推荐加 -n 参数以纯数字形式显示:
- netstat -rn:避免 DNS 查询,输出更干净,适合脚本或快速判断
- 关注第一列(Destination)为 0.0.0.0 的行,其第二列(Gateway)即默认网关 IP
- 最后一列(Iface)标明该路由通过哪个网络接口生效,比如 eth0 或 wlan0
精准提取默认网关地址
如果只需要网关 IP,无需整张路由表,可用管道组合命令快速定位:
- netstat -rn | grep '^0\.0\.0\.0' | awk '{print $2}':匹配开头是 0.0.0.0 的行,打印第二字段(Gateway)
- netstat -rn | awk '$1 == "0.0.0.0" {print $2}':用 awk 直接比对第一列,逻辑更清晰
- 注意:0.0.0.0 必须转义点号,否则正则会误匹配其他地址(如 10.0.0.0)
对比 route -n 与 netstat -rn 的异同
两者输出结构高度一致,都是传统 net-tools 工具集成员,但细节略有差异:
- route -n 默认只显示 IPv4,而 netstat -rn 默认同时显示 IPv4 和 IPv6 路由(IPv6 条目标记为 ::/0)
- netstat 还能附带连接状态、协议统计等上下文,适合排查“路由存在但不通”的复合问题
- 若系统未安装 net-tools(如某些 Alpine 容器),netstat 可能不可用,此时 ip route 更可靠
注意事项与常见误区
使用 netstat 查路由虽简单,但需避开几个典型坑:
- -r 必须小写:netstat -R 无效,大小写敏感
- 不加 -n 时,网关可能显示为主机名(如 gateway.local),反而增加判断成本
- netstat 显示的是内核路由缓存快照,不是配置文件内容;动态网络管理器(如 NetworkManager)修改后需稍等同步
- 部分新发行版已默认不预装 net-tools,需手动安装:apt install net-tools(Debian/Ubuntu)或 yum install net-tools(RHEL/CentOS)











