CentOS 7 添加静态路由分临时和永久两种:临时用 ip route add 立即生效但重启丢失;永久必须写入 /etc/sysconfig/network-scripts/route-网卡名 文件,支持 CIDR 或 ADDRESS0/NETMASK0/GATEWAY0 格式,改后需 systemctl restart network 生效。

CentOS 7 添加静态路由,关键看你要的是“临时生效”还是“重启后还在”。临时用 ip route add,永久必须写进 /etc/sysconfig/network-scripts/route-<i>网卡名</i> 文件——其他路径(比如 /etc/rc.local 或 /etc/sysconfig/static-routes)在 CentOS 7 上基本无效。
临时添加:用 ip route add 验证再决定是否永久化
这是最安全的第一步:先加一条试试通不通,避免配错导致失联。
-
ip route add是唯一推荐的命令,route add已过时,且不支持 CIDR 表示法(如10.10.0.0/16) - 必须指定
dev接口,否则内核可能选错出口,尤其双网卡时容易发错方向 - 常见错误:漏写
dev ens33,或网关 IP 不在该接口直连网段内(比如网关是192.168.1.1,但ens33的 IP 是10.0.0.10/24,这条路根本走不通) - 加完立刻用
ip route show看是否出现在表里,再ping -I ens33 10.10.0.1测试单接口连通性
永久添加:只认 route-<i>网卡名</i> 文件,格式不能混
文件位置固定:/etc/sysconfig/network-scripts/route-ens33(网卡名必须和 ip link show 输出一致),不存在就新建。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
- 只支持两种写法,**千万不能混用**:要么全用 CIDR 格式(推荐),要么全用
ADDRESS0=/NETMASK0=/GATEWAY0=三行一组 - CIDR 写法示例(一行一条):
10.10.0.0/16 via 192.168.1.1 dev ens33—— 简洁、易读、不易错 - 传统写法示例(三行一组):
ADDRESS0=10.10.0.0+NETMASK0=255.255.0.0+GATEWAY0=192.168.1.1—— 序号从 0 开始,下一条用 1,不能跳号 - 改完必须执行
systemctl restart network,service network restart也行,但别用nmcli connection reload—— 它不读这个文件
双网卡场景下最容易出问题的点
多网卡时,路由冲突比想象中更隐蔽。不是“加了就能通”,而是“加了但走错了口”。
- 默认网关只有一个,但静态路由可以绑定到任意网卡。确保目标网段的下一跳网关 IP 是该网卡所在子网的合法地址(比如
ens37是172.16.10.25/24,那via只能填172.16.10.x范围内的地址) - 如果两个网卡都配了默认路由(
0.0.0.0/0),系统会按 metric 值选路,但 metric 默认都是 100,结果不可控;建议只在一个接口上设GATEWAY=,其余静态路由明确指定dev - 用
ip route get 10.10.0.5查看内核实际选哪条路径,比单纯看ip route show更可靠
真正麻烦的不是加路由,而是确认它被正确加载并参与转发。尤其是重启后,别只信 ip route show 有那条记录——得 tcpdump -i ens33 host 10.10.0.1 抓包看数据是不是真从那个口出去了。


















