Linux 路由表是操作系统网络层的核心组件,它决定了数据包的转发路径,直接影响网络通信的效率与稳定性,掌握 Linux 路由表相关命令,是系统管理员和网络工程师必备的技能,本文将详细介绍 Linux 路由表的查看、管理及调试方法,帮助读者全面理解其工作原理与应用场景。
查看路由表:route 与 ip route 命令
查看路由表是网络排错的基础操作,Linux 提供了 route 和 ip route 两种命令,ip route 是新一代工具(来自 iproute2 包),功能更强大且推荐使用。
传统 route 命令
route 命令通过 -n 参数(禁止域名解析)可快速显示路由表:
route -n
输出结果包括目标网络(Destination)、子网掩码(Genmask)、网关(Gateway)、出口接口(Iface)等关键字段。0.0.0 对应的是默认路由,所有未知目标网段的数据包将通过此路由转发。
现代 ip route 命令
ip route 命令以更直观的格式展示路由信息,支持过滤与详细输出:
ip route show # 显示所有路由 ip route show default # 仅显示默认路由 ip route show dev eth0 # 查看指定接口的路由
相比 route,ip route 能显示路由协议(如 kernel、static)、跃点数(metric)等额外信息,便于分析路由优先级。
添加与删除静态路由:ip route add/del
静态路由适用于网络拓扑简单、固定路径的场景,如企业内网特定网段的访问控制。
添加静态路由
- 添加网段路由:若需访问
168.2.0/24网段,通过网关0.0.1转发,命令为:sudo ip route add 192.168.2.0/24 via 10.0.0.1 dev eth0
via指定网关,dev指定出口接口。 - 添加默认路由:若需修改默认网关为
16.0.1:sudo ip route add default via 172.16.0.1
删除静态路由
删除路由需与添加命令保持参数一致,只需将 add 替换为 del:
sudo ip route del 192.168.2.0/24 via 10.0.0.1 dev eth0
注意:删除路由前需确认路由存在,避免误删导致网络中断。
临时与永久路由:配置文件与 netplan
通过 ip route 添加的路由在重启后会失效,若需永久保存,需修改网络配置文件。
基于 ifcfg 的传统配置(CentOS/RHEL 7)
在 /etc/sysconfig/network-scripts/route-eth0 中添加:
168.2.0/24 via 10.0.0.1 dev eth0 default via 172.16.0.1
重启网络服务后生效:systemctl restart network。
基于 netplan 的新配置(Ubuntu 18.04+/CentOS 8)
在 /etc/netplan/01-netcfg.yaml 中添加路由:
ethernets:
eth0:
addresses: [10.0.0.100/24]
routes:
- to: 192.168.2.0/24
via: 10.0.0.1
- to: default
via: 172.16.0.1
gateway4: 172.16.0.1
执行 netplan apply 使配置生效。
路由表调试:traceroute 与 ping
当网络通信异常时,路由表可能是问题根源,结合 traceroute 和 ping 可快速定位故障点。
traceroute:追踪数据包路径
traceroute 8.8.8.8
命令会显示数据包经过的每个路由节点(IP 地址及主机名),若某节点显示 ,可能是中间路由器禁用 ICMP 或防火墙拦截;若路径异常,需检查本地路由表或网关配置。
ping 测试网关连通性
先确认默认网关是否可达:
ping $(ip route show default | awk '{print $3}')
若网关不可达,需检查物理链路、网卡配置及网关设备状态。
高级应用:策略路由与多路径路由
复杂网络环境中,可通过策略路由(Policy Routing)实现基于源地址、协议的灵活转发,或通过多路径路由(ECMP)实现负载均衡。
策略路由:ip rule
ip rule 用于定义路由策略,优先级高于路由表,让 168.1.0/24 网段的数据包通过 eth1 转发:
sudo ip rule add from 192.168.1.0/24 table 100 sudo ip route add default via 10.1.0.1 dev eth1 table 100
多路径路由:nexthop
配置等价多路径,实现流量负载均衡:
sudo ip route add default nexthop dev eth0 weight 1 nexthop dev eth1 weight 1
weight 参数可设置链路负载比例,weight 1 表示均等负载。
Linux 路由表命令是网络管理的核心工具,从基础的 route/ip route 查看,到静态路由配置、永久保存,再到高级的策略路由与多路径应用,合理使用这些命令可显著提升网络运维效率,在实际操作中,需注意路由优先级、配置持久性及网络拓扑的匹配性,确保通信路径的稳定与可控。


















