查看服务器路由表的核心命令是 route 和 ip route,不同操作系统下命令格式与输出结构略有差异,但原理一致,关键在于理解路由表条目含义。
服务器路由表怎么查看:核心命令速览
无论你管理的是物理服务器、云服务器还是虚拟主机,路由表都是网络通信的“地图”,服务器通过它决定数据包该发往哪个网关或接口,以下是各系统最直接的查看方法。
Linux 系统:两条命令足够
业内多数运维人员首选 route -n 或 ip route,前者输出更传统,后者功能更丰富且是现代 Linux 网络的推荐方式。
route -n:以数字形式显示路由表,避免解析主机名,速度更快,输出包含 Destination、Gateway、Genmask、Flags、Metric、Ref、Use、Iface 等字段。ip route:属于 iproute2 工具包,输出更简洁,支持更复杂的路由策略。ip route show可查看所有路由,ip route get 8.8.8.8可查看特定目标的路由路径。
| 命令 | 适用场景 | 输出特点 |
|---|---|---|
| route -n | 快速查看,兼容旧系统 | 表格形式,字段清晰 |
| ip route | 现代 Linux,需查看更多路由属性 | 单行条目,包含 scope、proto 等 |
Windows 系统:一条命令搞定
Windows 服务器同样使用 route print 查看路由表,在 PowerShell 或 CMD 中运行即可,输出分为多个段落:接口列表、IPv4 路由表、IPv6 路由表,重点看 IPv4 路由表中的 Network Destination、Netmask、Gateway、Interface、Metric。参考2
其他系统简要说明
- FreeBSD / macOS:使用
netstat -rn或route -n show,输出与 Linux 类似。 - 网络设备(交换机/路由器):通常用
show ip route(Cisco)或display ip routing-table(华为)。
Linux 和 Windows 路由表查看的实战区别
虽然命令不同,但核心逻辑一致,不过在实际运维中,两者的输出格式和路由策略存在明显差异,理解这些能帮你快速跨平台排错。
输出格式差异
- Linux(route -n):以目标网络(Destination)为第一列,掩码(Genmask)第三列,网关(Gateway)第二列,默认路由的 Destination 为 0.0.0.0,Genmask 为 0.0.0.0。
- Windows(route print):以网络目标(Network Destination)为第一列,子网掩码(Netmask)第二列,网关(Gateway)第三列,默认路由的 Network Destination 为 0.0.0.0,Netmask 为 0.0.0.0。
两者共同点:metric 值越小,优先级越高,Linux 中 Flags 字段的 U 表示路由已启用,G 表示使用网关;Windows 中没有直接对应标志,但通过接口列表可以判断。
路由表修改命令对比
- Linux:添加路由用
route add -net 目标网络 netmask 掩码 gw 网关,或ip route add 目标网络/掩码 via 网关,删除用route del或ip route del。 - Windows:添加路由用
route add 目标网络 mask 掩码 网关,持久化需加-p参数,删除用route delete。
实战场景:跨平台快速路由配置
假设服务器需要添加一条到 192.168.100.0/24 的路由,下一跳为 10.0.0.1。
- Linux:
ip route add 192.168.100.0/24 via 10.0.0.1 - Windows:
route add 192.168.100.0 mask 255.255.255.0 10.0.0.1
如果你管理的环境混合了 Linux 和 Windows 服务器,掌握这两套命令能让你在排查“服务器路由表怎么查看”问题时,直接跳过系统切换的困扰。
服务器网络不通时如何利用路由表排查
当服务器出现网络不通、丢包、延迟高等故障时,路由表是第一站,多数情况下,问题出在路由表配置错误或缺失默认路由。
检查默认路由是否存在
默认路由(default route)负责处理所有非本地网络的数据包,如果缺失,服务器只能访问同一子网内的设备,无法访问互联网。
- Linux:
route -n查看 Destination 为 0.0.0.0 且 Genmask 为 0.0.0.0 的条目是否存在,如果不存在,添加默认网关:route add default gw 网关IP。 - Windows:
route print查看 Network Destination 为 0.0.0.0 且 Netmask 为 0.0.0.0 的条目,如果缺失,添加:route add 0.0.0.0 mask 0.0.0.0 网关IP。
排查路由回路或黑洞路由
如果路由表存在多条指向同一目标网络但 next hop 互相矛盾的条目,可能形成回路,常见于配置了多条静态路由且未正确设置 metric 的场景。
- 使用
traceroute或tracert观察数据包跳转路径,如果出现回环,检查路由表中是否有重复或冲突条目。 - 黑洞路由(blackhole route)通常用于阻止特定流量,但误配置会导致正常业务中断,在 Linux 中可用
查看所有路由表,包括黑洞类型的条目。ip route show table all
利用路由表快速定位网关问题
服务器无法上网,查看路由表发现默认路由指向的网关 IP 无法 ping 通,此时需要确认网关设备是否正常运行,或者是否设置了错误的网关地址。
- 在 Linux 中执行
ip route get 目标IP,系统会显示实际使用的路由和接口,如果结果与预期不符,说明路由表存在问题。 - 在 Windows 中可用
route print结合ping -n 1 网关IP来验证连通性。
云服务器路由表查看与配置要点
云服务器(如简米云、酷番云、AWS)的路由表管理方式与物理服务器有所不同,部分云厂商在控制台虚拟化路由表,而服务器内部看到的实际路由表是经过虚拟化层处理后的结果。
云服务器内部查看路由表
登录云服务器后,使用 route -n 或 ip route 依然可以查看当前路由,但需要注意的是,云服务器通常默认只有一条默认路由指向虚拟网关(如 169.254.0.1 或 10.0.0.1),如果你在云服务器上手动添加静态路由,重启后可能丢失,需要配合云厂商的 API 或控制台持久化配置。参考2
云控制台路由表与服务器内部路由表的关系
- 在云控制台(如 VPC 路由表)配置的路由,会下发到云服务器内部,但不会修改服务器内部的路由表条目,而是通过底层网络实现转发。
- 服务器内部的路由表更多用于本地策略和特殊需求,比如绑定多个弹性网卡时,需要手动调整路由表来指定优先网卡。
云服务器路由表查看的常见问题
- 问题一:在云服务器上执行
route -n看不到默认路由,但网络正常,这是因为云厂商使用虚拟化技术,默认路由可能在底层,但内部路由表未直接显示,此时用ip route或查看/proc/net/route可能看到更真实的信息。 - 问题二:云服务器添加路由后无法生效,需要检查是否开启了反向路径过滤(rp_filter),在 Linux 中,
sysctl net.ipv4.conf.all.rp_filter值为 1 时,会检查源地址验证,可能导致静态路由不生效,可临时修改为 0 测试。
云服务器路由表配置的成本考量
对于使用云服务器的小团队,合理规划路由表可以减少不必要的网络跃点,提升业务响应速度,间接降低带宽消耗,但频繁修改路由表并不会直接产生费用,只有使用了云联网、专线等增值服务才会涉及价格,在排查“服务器路由表怎么查看”时,不必担心查询命令本身产生成本,但误操作导致路由错误可能引发业务中断。
路由表查看的进阶技巧
查看策略路由(Linux 多路由表)
当服务器配置了多个网卡或需要策略路由时,默认路由表可能不够用,使用 ip rule 查看策略路由规则,ip route show table 表名 查看特定路由表。
使用 netstat 和 ss 辅助排查
路由表与连接状态密切相关。netstat -rn 也可查看路由表,但信息不如 route 详细。ss -tuln 可以查看当前监听端口,配合路由表判断连接是否可达。
对比:静态路由与动态路由表
- 静态路由:手动配置,适合简单网络,小型服务器或云服务器常用。
- 动态路由:通过 RIP、OSPF 等协议自动学习,适合大型企业网络,在服务器上查看动态路由表时,会看到由协议守护进程注入的条目,
quagga或bird动态添加的路由。
常见问题解答
服务器路由表怎么查看?
Linux 服务器使用 route -n 或 ip route,Windows 服务器使用 route print,登录服务器后,在命令行直接输入即可看到完整路由表,如果命令不存在,需安装对应的网络工具包(如 Linux 的 net-tools 或 iproute2)。参考2
Linux 和 Windows 路由表命令有什么区别?
命令名称和参数不同,但核心功能一致,Linux 的 ip route 功能更丰富,支持策略路由和 JSON 输出;Windows 的 route print 输出更直观,但修改路由时需注意 -p 参数才能持久化,两者默认路由的判断标准都是目标网络 0.0.0.0/0。
云服务器路由表修改后为什么不生效?
可能原因包括:云厂商控制台的安全组或网络 ACL 限制了流量;服务器内部路由表与云网络路由表冲突;未保存持久化配置,重启后丢失;或服务器开启了反向路径过滤(rp_filter),建议先通过 ip route get 验证实际路由路径,再结合云控制台确认是否已下发对应路由。
查看路由表是网络运维的基础能力,理解条目含义比记忆命令更重要,无论是物理机还是云服务器,掌握 route -n 和 ip route 就能应对绝大多数场景,遇到网络异常时,优先检查默认路由是否存在,再逐层排查条目冲突或网关不可达,路由表本身就是最直接的排错链路。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/529065.html



