ip route是查看和管理linux路由表的首选命令,它直连内核netlink接口、输出清晰、ipv4/ipv6一致支持,且在主流发行版中默认集成;而route -n和netstat -rn可能缺失、过时或解析不准,尤其在networkmanager等动态环境中可靠性差。

直接用 ip route,别犹豫。 它是当前所有主流发行版默认集成、无需安装、输出清晰、IPv4/IPv6 一致支持的唯一可靠选择;route -n 和 netstat -rn 不仅可能根本不存在,还容易给出过时或错漏信息。
为什么 ip route 是第一选择
它直连内核 netlink 接口,不经过中间解析层,数据实时准确。输出字段语义明确:default via 192.168.1.1 dev eth0 就是默认网关,192.168.1.0/24 dev eth0 proto kernel 表示本地直连子网。而 route -n 的 0.0.0.0 目标行、netstat -rn 的模糊 UG 标志,都需要额外经验才能正确解读。
-
ip route默认只显示 IPv4;要查 IPv6,必须显式加-6:运行ip -6 route -
ip route show 10.0.1.0/24能精准匹配目标网络,无输出即表示无该路由,不依赖 grep 或 awk 过滤 - 遇到 NetworkManager 或 systemd-networkd 动态管理环境时,
ip route总是比netstat -rn多出几秒延迟——不是 bug,是后者解析逻辑跟不上内核实时更新
当 route -n 报 command not found 时怎么办
这不是命令坏了,是它压根没装。Alpine、Ubuntu Server Minimal、Fedora Silverblue 等精简系统默认不带 net-tools 包。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- Debian/Ubuntu:运行
sudo apt install net-tools - RHEL/CentOS 7/8:运行
sudo yum install net-tools或sudo dnf install net-tools - Alpine:运行
apk add net-tools - 装完后务必加
-n参数,否则route会尝试反向 DNS 查询,卡住好几秒——这是设计行为,不是故障
netstat -rn 显示的网关和 ip route 对不上
典型现象是 netstat -rn 显示 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 eth0(空网关),而 ip route 明确写着 default via 192.168.1.1。这说明该路由由 NetworkManager 动态注入,netstat 解析器未识别。
- 验证真实网关:运行
nmcli device show | grep IP4.GATEWAY或networkctl status - 不要用
netstat -rn做判断依据,尤其在桌面或云主机环境——它对策略路由、多表路由完全不可靠 -
/proc/net/route是内核原始输出,全是十六进制,适合脚本解析,人眼基本没法读
真正麻烦的不是命令选哪个,而是看到 default via 后没注意后面跟的是 dev 还是 scope link:前者需要下一跳可达,后者只是直连宣告,不走网关。这个细节决定你 ping 得通还是不通,但几乎没人一开始就会盯这儿看。










