马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
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企服评测-应用市场 编辑提示 |