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

Linux如何永久删除路由?

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

在Linux系统中,路由规则决定了数据包的传输路径,临时删除路由可通过ip route del或route 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. 编辑路由文件

    删除目标路由条目,文件内容格式示例:

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

    删除对应行后保存文件。

  3. 重启网络服务

    systemctl restart network # CentOS 7 nmcli connection reload # CentOS 8+/Fedora
  4. 方法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.local、cron任务或第三方脚本(如云平台的cloud-init)。

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

0