You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CentOS 7中阻止内核自动添加子网路由

如何在CentOS 7中阻止内核自动添加子网路由

我完全懂你的烦恼——明明已经把所有子网路由都规划到自定义的100和200路由表里了,结果每次重启系统,内核就自作主张把这些子网路由又塞回main表,把你的配置搞得一团糟。这其实是CentOS 7内核的默认行为,咱们可以通过以下两种方法彻底解决这个问题:

方法一:修改网卡配置,直接阻止内核生成路由

这个方法是从源头切断内核添加路由的可能,最彻底:

  • 找到对应VLAN接口的配置文件,比如VLAN10的配置在/etc/sysconfig/network-scripts/ifcfg-VLAN10,同理VLAN20和VLAN30的配置文件也在这个目录下
  • 打开每个配置文件,添加一行配置:
    IPADDR_NO_DYNAMIC_ROUTING="yes"
    
  • 保存文件后,重启网络服务让配置生效:
    systemctl restart network
    
    或者直接重启系统也行。之后内核就不会再自动把该子网的路由添加到main表了。

方法二:开机后自动清除main表的内核路由

如果方法一没生效(比如某些特殊的VLAN配置场景),可以用这个兜底方案,通过启动脚本自动清理:

  • 创建一个自定义启动脚本,比如/etc/rc.d/init.d/clear-main-routes,内容如下:
    #!/bin/bash
    # 清除main表中由内核自动添加的子网路由
    ip route flush table main proto kernel
    
  • 给脚本添加执行权限:
    chmod +x /etc/rc.d/init.d/clear-main-routes
    
  • 设置脚本开机自启:
    chkconfig --add clear-main-routes
    
    这样每次系统启动完成后,这个脚本会自动把main表里那些内核偷偷加上的路由清掉,保证main表符合你的预期。

额外注意事项

别忘了确保你的自定义路由表100和200里已经正确配置了对应的静态路由,比如:

ip route add 192.168.10.0/24 dev VLAN10 table 100
ip route add 192.168.20.0/24 dev VLAN20 table 200
ip route add 192.168.30.0/24 dev VLAN30 table 100  # 根据你的实际需求调整路由表编号

这些静态路由可以写到/etc/rc.local文件里,或者专门的路由配置文件中,确保开机时能自动加载。

备注:内容来源于stack exchange,提问作者Peet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 08:33:01