服务器测评网
我们一直在努力

Linux 修改路由后如何永久保存配置?

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

20251031181436214

路由表基础概念

Linux 路由表由多条路由规则组成,每条规则包含目标网络、子网掩码、网关、出口接口等关键信息,可通过 ip route showroute -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 发行版的配置方式存在差异,以下以主流系统为例说明。

20251031181438336

基于 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

应用配置:

20251031181440638

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

查看路由跟踪

使用 traceroutemtr 工具验证路由是否生效:

traceroute 10.0.0.1
mtr 10.0.0.1

注意事项

  1. 权限要求:修改路由需 root 权限,建议使用 sudo 执行命令。
  2. 网关可达性:添加的网关必须与服务器在同一网段(直连路由)或已有可达路由,否则路由无效。
  3. 配置备份:修改路由前建议备份原配置文件(如 cp /etc/network/interfaces /etc/network/interfaces.bak)。
  4. 网络服务影响:部分系统修改路由后需重启网络服务,可能导致短暂网络中断,生产环境需谨慎操作。
  5. 多出口路由:配置多出口负载均衡或冗余时,需结合 metricip rule 实现策略控制。

通过以上方法,用户可根据实际需求灵活管理 Linux 系统的路由表,无论是临时网络测试还是生产环境多网段访问,都能高效实现路由配置的精准控制。

赞(0)
未经允许不得转载:好主机测评网 » Linux 修改路由后如何永久保存配置?