当前位置:首页 > Linux > 正文

Linux如何永久删除路由?

在Linux中永久删除路由需编辑网络配置文件(如/etc/network/interfaces或/etc/sysconfig/network-scripts/route-ethX),移除对应路由条目后重启网络服务(如systemctl restart networking),临时路由用 ip route del命令删除,但重启后失效。

在Linux系统中,路由规则决定了数据包的传输路径,临时删除路由可通过ip route delroute del命令实现,但重启后路由会恢复。永久删除路由需修改系统配置文件或使用网络管理工具,确保变更在重启后依然生效,以下是详细方法:


确认当前路由信息

操作前务必查看现有路由,避免误删关键路由:

ip route show   # 推荐使用
# 或
route -n

记录目标路由的详细信息(如目标网络、网关、网卡名称),

default via 192.168.1.1 dev eth0
10.0.0.0/24 via 192.168.2.1 dev eth1

永久删除路由的四种方法

根据系统类型选择合适方案:

方法1:通过网络配置文件(CentOS/RHEL/Fedora)

  1. 定位配置文件
    /etc/sysconfig/network-scripts/目录下,找到网卡对应的路由文件,命名格式为:

    • route-<网卡名>(例:route-eth0
    • 若文件不存在,需手动创建。
  2. 编辑路由文件
    删除目标路由条目,文件内容格式示例:

    Linux如何永久删除路由?  第1张

    # 永久路由格式(每行一条)
    10.0.0.0/24 via 192.168.2.1 dev eth1

    删除对应行后保存文件。

  3. 重启网络服务

    systemctl restart network  # CentOS 7
    nmcli connection reload    # CentOS 8+/Fedora

方法2:修改/etc/network/interfaces(Debian/Ubuntu)

  1. 编辑主配置文件

    sudo nano /etc/network/interfaces
  2. 删除路由指令
    在对应网卡配置块中,移除up route add ...post-up ip route add ...开头的行。

    auto eth0
    iface eth0 inet static
      address 192.168.1.10
      netmask 255.255.255.0
      gateway 192.168.1.1
      # 删除以下行以移除永久路由
      up route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth1
  3. 应用配置

    systemctl restart networking  # Debian/Ubuntu

方法3:使用NetworkManager(通用)

适用于带图形界面的桌面版或启用了NetworkManager的服务器:

  1. 命令行操作(推荐)

    # 查看当前连接名称
    nmcli connection show
    # 删除目标路由(以连接名"Wired"为例)
    nmcli connection modify "Wired" -ipv4.routes "10.0.0.0/24 192.168.2.1"
    # 清空某网卡所有自定义路由
    nmcli connection modify "Wired" +ipv4.routes ""
    # 重启连接生效
    nmcli connection down "Wired" && nmcli connection up "Wired"
  2. 图形界面操作
    打开nmtui → 选择”Edit a connection” → 选中网卡 → 在”IPv4 Configuration”中移除”Routes”条目。

方法4:systemd-networkd(Ubuntu 18.04+/Debian 10+)

  1. 编辑网卡配置文件
    配置文件路径:/etc/systemd/network/10-eth1.network

    [Match]
    Name=eth1
    [Network]
    Address=192.168.2.10/24
    Gateway=192.168.2.1
    # 删除以下路由配置行
    Route=10.0.0.0/24 via 192.168.3.1
  2. 重启服务

    systemctl restart systemd-networkd

验证与注意事项

  • 验证删除结果
    ip route show | grep "10.0.0.0"  # 检查目标路由是否消失
  • 关键注意事项
    1. 备份配置文件:操作前执行 cp /path/to/config /path/to/config.bak
    2. 默认路由谨慎操作:删除default路由可能导致断网。
    3. 生产环境测试:建议在非关键服务器测试后再上线。
    4. 一致性检查:确保所有相关配置文件(如/etc/rc.local)无残留路由添加命令。

故障排查

  • 路由未生效:检查服务状态 systemctl status networking/network/NetworkManager
  • 配置文件语法错误:使用 networkctl verify(systemd-networkd)或 nmcli connection reload
  • 路由残留:排查/etc/rc.localcron任务或第三方脚本(如云平台的cloud-init)。

引用说明参考Linux官方文档(ip-route(8)、nmcli(1))及主流发行版网络配置指南(Red Hat、Debian Wiki),操作需管理员权限(sudo),不同系统版本可能存在差异。

0