Linux 系统中,路由表是网络数据包传输的“导航地图”,它决定了数据包的下一跳地址和出口接口,当默认路由无法满足特定需求(如访问特定网段、使用多出口网络或进行网络测试)时,手动修改路由表成为必要操作,本文将详细介绍 Linux 系统中修改路由的方法、常用命令及注意事项,帮助用户灵活管理网络路由。

路由表基础概念
Linux 路由表由多条路由规则组成,每条规则包含目标网络、子网掩码、网关、出口接口等关键信息,可通过 ip route show 或 route -n 命令查看当前路由表,默认路由(default via 192.168.1.1 dev eth0)表示所有未知目标流量通过 eth0 接口,经网关 168.1.1 转发;而特定网段路由(168.2.0/24 via 192.168.1.254 dev eth1)则明确指定访问 168.2.0/24 网段时通过 eth1 接口和网关 168.1.254。
临时修改路由(立即生效,重启失效)
临时修改适用于测试场景,重启网络服务或系统后路由配置将恢复默认,主要使用 ip route 命令,语法为:
ip route add/delete 目标网络 via 网关 dev 出口接口
或
ip route add/delete 目标网络 dev 出口接口 src 源IP
添加静态路由
示例1:添加网关路由
若需访问 0.0.0/24 网段,通过网关 168.1.100(接口 eth0)转发,执行:
sudo ip route add 10.0.0.0/24 via 192.168.1.100 dev eth0
示例2:添加直连路由(无需网关)
若目标网段与服务器在同一物理网段(如 168.3.0/24),可直接指定出口接口:
sudo ip route add 192.168.3.0/24 dev eth2
删除静态路由
删除路由时需确保命令参数与添加时完全一致:
sudo ip route del 10.0.0.0/24 via 192.168.1.100 dev eth0
修改默认路由
若需临时更换默认网关,可先删除原默认路由,再添加新路由:
sudo ip route del default sudo ip route add default via 192.168.1.200 dev eth0
验证路由配置
添加或删除路由后,可通过以下命令确认:
ip route show | grep "目标网络" # 或查看完整路由表 ip route
永久修改路由(重启后生效)
临时路由无法满足生产环境需求,需通过配置文件实现永久生效,不同 Linux 发行版的配置方式存在差异,以下以主流系统为例说明。

基于 Debian/Ubuntu 系统(使用 /etc/network/interfaces)
编辑网络接口配置文件,在对应接口的 iface 段落后添加 up 命令(up 表示接口启动时执行):
sudo nano /etc/network/interfaces
示例配置(在 eth0 接口下添加静态路由):
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
# 添加静态路由
up ip route add 10.0.0.0/24 via 192.168.1.100 dev eth0
up ip route add 172.16.0.0/16 via 192.168.1.200 dev eth0
保存后重启网络服务或系统:
sudo systemctl restart networking
基于 RHEL/CentOS 系统(使用 /etc/sysconfig/network-scripts/)
在对应接口的配置文件中添加 ROUTE 参数,例如修改 ifcfg-eth0:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
# 目标网络:子网掩码:网关:出口接口:源IP:是否默认路由 ROUTE1="10.0.0.0/24:255.255.255.0:192.168.1.100:eth0:" ROUTE2="172.16.0.0/16:255.255.0.0:192.168.1.200:eth0:"
保存后重启网络服务:
sudo systemctl restart network
基于 systemd-networkd 系统(Ubuntu 18.04+、CentOS 7+)
使用 netplan(Ubuntu)或 NetworkManager(CentOS)管理路由。
netplan 示例(Ubuntu 20.04):
编辑 /etc/netplan/01-netcfg.yaml:
network:
version: 2
ethernets:
eth0:
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
routes:
- to: 10.0.0.0/24
via: 192.168.1.100
metric: 100 # 路由优先级,值越小优先级越高
- to: 172.16.0.0/16
via: 192.168.1.200
metric: 200
应用配置:

sudo netplan apply
NetworkManager 示例(CentOS 7):
使用 nm-connection-editor 图形化工具或命令行:
sudo nmcli connection modify "eth0" +ipv4.routes "10.0.0.0/24 192.168.1.100" 100 sudo nmcli connection modify "eth0" +ipv4.routes "172.16.0.0/16 192.168.1.200" 200 sudo nmcli connection up "eth0"
路由管理高级技巧
设置路由优先级(Metric)
当存在多条到达同一目标网络的路由时,系统根据 metric 值选择最优路径(metric 越小越优先),添加路由时可指定 metric:
sudo ip route add 10.0.0.0/24 via 192.168.1.100 dev eth0 metric 100
路由策略数据库(Policy-Based Routing)
若需基于源IP、协议等条件选择路由,可使用 ip rule 配置策略路由,为 168.1.0/24 网段的流量指定自定义路由表:
# 创建自定义路由表(默认已有 local、main、default 表) echo "200 custom_table" >> /etc/iproute2/rt_tables # 添加策略规则:源IP为 192.168.1.0/24 的流量使用 custom_table 表 sudo ip rule add from 192.168.1.0/24 table custom_table # 向 custom_table 表添加路由 sudo ip route add default via 192.168.1.200 dev eth1 table custom_table
查看路由跟踪
使用 traceroute 或 mtr 工具验证路由是否生效:
traceroute 10.0.0.1 mtr 10.0.0.1
注意事项
- 权限要求:修改路由需 root 权限,建议使用
sudo执行命令。 - 网关可达性:添加的网关必须与服务器在同一网段(直连路由)或已有可达路由,否则路由无效。
- 配置备份:修改路由前建议备份原配置文件(如
cp /etc/network/interfaces /etc/network/interfaces.bak)。 - 网络服务影响:部分系统修改路由后需重启网络服务,可能导致短暂网络中断,生产环境需谨慎操作。
- 多出口路由:配置多出口负载均衡或冗余时,需结合
metric和ip rule实现策略控制。
通过以上方法,用户可根据实际需求灵活管理 Linux 系统的路由表,无论是临时网络测试还是生产环境多网段访问,都能高效实现路由配置的精准控制。



















