centos 7 增加临时路由及永久路由

[复制链接]
发表于 2026-10-3 10:20:01 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

CentOS 7 上加路由,最容易混的是「临时」和「永久」这两个词:route add 敲完当下生效,但网络一重启就没了;想长期生效得另写文件。另外 CentOS 7 的路由配置和 Ubuntu 的 netplan 完全是两套体系,别把 netplan 那套 yaml 写法搬过来。

一、临时路由(重启即失效)

先装 net-tools(最小化安装常缺 route 命令):

sudo yum install net-tools

加一条网络路由,比如让 10.1.x.x 整段都走 10.1.1.1 这个网关:

route add -net 10.1.0.0 gw 10.1.1.1 netmask 255.255.0.0

各段含义:

  • -net 10.1.0.0 —— 目标网段;
  • gw 10.1.1.1 —— 下一跳(网关)地址;
  • netmask 255.255.0.0 —— 掩码,写 /16 是等价写法。

也可以用更统一的 ip route 命令,效果一样:

ip route add 10.1.0.0/16 via 10.1.1.1

验证:

route -n
ip route show

注意:route 加的路由在重启系统或重启网络服务(systemctl restart network)后就没了。生产环境别指望它。

二、route 命令完整用法

# 1. 添加主机路由(精确到单台机器)
route add -host 192.168.10.110 dev eth0
route add -host 192.168.10.119 gw 192.168.10.1

# 2. 添加网络路由
route add -net 192.168.10.0 netmask 255.255.255.0 eth0
route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.10.1
route add -net 192.168.10.0/24 dev eth1

# 3. 添加默认网关
route add default gw 192.168.1.1

# 4. 删除路由
route del -host 192.168.10.110 dev eth0
route del -net 192.168.10.0/24

删的时候参数只要给得能唯一定位那条路由就行,不必和添加时完全一致。

三、永久路由(重启还在)

CentOS 7 的标准做法是在 /etc/sysconfig/network-scripts/ 下建一个 route-网卡名 文件。比如网卡叫 eno1,就建 route-eno1:

vi /etc/sysconfig/network-scripts/route-eno1

文件内容(注意是无前导 route add 的纯路由行,格式和 ip route 一致):

10.1.0.0/16 via 10.1.1.1 dev eno1

多条就一行一条,不用加 -net / gw 这些 route 命令参数。

改完确保网卡服务能读到(不需要额外执行什么,网络重启时自动加载):

sudo systemctl restart network
ip route show

四、另一种永久写法:写进 rc.local

vi /etc/rc.local

末尾追加:

route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.3.254

两个前提:① /etc/rc.local 必须有执行权限(chmod +x /etc/rc.local),② CentOS 7 默认没启用 rc-local.service,得先拉起来:

sudo chmod +x /etc/rc.local
sudo systemctl enable rc-local
sudo systemctl start rc-local

这条路的时序在「网络起来之后、其他服务之前」,比 /etc/sysconfig 那套脆弱,生产环境优先用 route-网卡名 文件,rc.local 方案留作补充。

五、永久默认网关

写在 /etc/sysconfig/network:

GATEWAY=192.168.1.1

或者写在对应网卡配置 /etc/sysconfig/network-scripts/ifcfg-eno1 里:

GATEWAY=192.168.1.1

两个文件同时写了会以网卡配置为准,别两边写不同的值,否则路由表会莫名其妙少一条默认路由。

六、看优先级与排障

route -n          # 数字形式输出,最快看路由表
ip route show     # 推荐,iproute2 体系的统一视图

常见坑:

  • 加了不生效:先 ip route show 确认在表里;在表里但不通,查目标网段是否真的需要走这个网关、本机 IP 与该网段是否同掩码。
  • 重启后没了:99% 是没建 route-网卡名 文件(或文件名跟实际网卡名对不上,用 ip addr 看真实网卡名)。
  • 提示 Sioctl add: File exists:那条路由已经在了,先 route del 再重加。
  • 提示 Next hop has invalid gateway:网关地址不在本网段可达范围内,得先加一条到网关的默认路由。

结论

记两条就够:临时用 ip route add,永久就往 /etc/sysconfig/network-scripts/route-网卡名 写一行 网段/掩码 via 网关 dev 网卡;默认网关优先写在网卡的 ifcfg-* 里,别和 /etc/sysconfig/network 打架。rc.local 能用但不推荐当主要手段。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表