其实问题根源很简单:你添加的是临时路由,并未做永久化配置。openEuler作为企业级Linux发行版,网络稳定性是核心需求,而永久路由配置,正是保障服务高可用的基础操作。
今天就结合实操,把openEuler永久路由的两种核心配置方法讲透,新手也能一步到位,彻底告别“重启丢路由”的烦恼!
先搞懂:临时路由vs永久路由,别再用错了
在开始配置前,先明确一个关键区别,避免踩坑:
✅ 临时路由:用 ip route 或 route 命令直接添加,配置简单、即时生效,但系统重启、网络服务重启后会完全丢失,仅适合调试、排障场景。
❌ 生产环境禁忌:绝对不能把临时路由当长期方案!比如依赖特定路由访问内部数据库的服务,重启后路由丢失会直接导致业务雪崩。
✅ 永久路由:通过配置文件或官方工具设置,写入系统配置,无论重启服务器还是网络服务,路由都会自动恢复,是企业级部署的唯一选择。
核心前提:搞懂openEuler的网络管理逻辑
openEuler的网络管理是“双轨并行”,两种模式对应不同的配置方法,先确认你的系统用哪种,避免做无用功:
1. 默认模式(推荐):使用 NetworkManager 服务(系统默认开启),对应 nmcli 命令配置,是官方推荐的现代方案。
2. 传统模式:禁用NetworkManager,使用传统 network 服务,对应配置文件方式,适合老运维、遗留系统兼容场景。
👉 快速判断方法:执行命令 systemctl is-active NetworkManager,返回 active就是默认模式,返回 inactive 就是传统模式。
方法一:传统配置文件法(兼容老系统,稳妥不出错)
这种方法沿用RHEL/CentOS的经典逻辑,配置直观、兼容性极强,适合所有openEuler版本,尤其适合习惯传统运维的同学。
核心原理
在 /etc/sysconfig/network-scripts/ 目录下,为每个网络接口(如ens33、ens160)创建 route-接口名 文件,写入路由规则,系统启动时会自动加载。
一步一步实操(以ens33接口为例)
步骤1:确认网络接口名称(关键!不能错)
执行命令,查看当前激活的网络接口:
ip -br addr show# 输出示例:ens33 UP 192.168.1.100/24
记住接口名 ens33(你的可能是ens160、eth0等)。
步骤2:创建/编辑路由配置文件
用root权限创建文件 route\-ens33(接口名对应上一步):
sudo vi /etc/sysconfig/network-scripts/route-ens33
写入路由规则(推荐用CIDR格式,简洁不易错),示例:
# 访问10.10.10.0/24网段,下一跳网关192.168.1.254,通过ens33接口10.10.10.0/24 via 192.168.1.254 dev ens33
👉 规则说明:目标网络/掩码位数 via 网关地址 dev 接口名,每行一条路由,可添加多条。
步骤3:重启网络服务生效
根据系统网络服务,选择对应命令重启(二选一):
# 若用NetworkManager(默认)sudo systemctl restart NetworkManager# 若用传统network服务sudo systemctl restart network
步骤4:验证+终极测试
1. 验证路由是否生效:
ip route show# 若输出中有 10.10.10.0/24 via 192.168.1.254 dev ens33,说明生效
2. 测试持久性(关键!):
sudo reboot # 重启服务器ip route show # 重启后再次查看,路由仍存在即配置成功
注意事项(避坑重点)
接口名必须精确匹配:route-ens33 只能对应 ens33 接口,网卡更换后需手动更新文件名。
文件权限:确保文件权限为644(所有者root),否则服务会拒绝加载。
默认网关:不要在这个文件中设置默认网关,默认网关需在ifcfg-ens33 文件中配置。
方法二:nmcli命令法(官方推荐,现代高效)
这是openEuler官方主推的方法,与NetworkManager深度集成,配置实时生效,无需重启整个网络服务,适合现代部署场景,也是未来的主流方向。
核心优势
✅ 实时生效:添加路由后立即生效,无需重启服务,不影响在线业务;
✅ 自动持久化:配置直接写入系统连接文件,重启后自动恢复;
✅ 操作灵活:支持添加、删除、批量配置,适配复杂网络场景。
一步一步实操(以ens33连接为例)
步骤1:确认网络连接名称
注意:这里的“连接名称”不是接口名(虽通常一致,但需确认):
nmcli connection show# 输出示例:NAME UUID TYPE DEVICE# ens33 5e0d1a4c-xxx-xxx ethernet ens33
记住 NAME 列的 ens33(即连接名称)。
步骤2:添加永久静态路由
假设需要访问 10.10.10.0/24 网段,下一跳网关 192.168.1.254,执行命令:
nmcli connection modify ens33 +ipv4.routes "10.10.10.0/24 192.168.1.254"
👉 关键说明:+ipv4.routes 中的 + 表示“追加”路由,不加 + 会覆盖所有现有路由(极其危险!)。
步骤3:验证配置
1. 查看路由是否写入配置:
nmcli connection show ens33 | grep ipv4.routes# 输出示例:ipv4.routes: 10.10.10.0/24, 192.168.1.254
2. 查看内核路由表(确认生效):
ip route show
步骤4:补充操作(常用)
添加多条路由:用分号分隔,示例:sudo nmcli connection modify ens33 +ipv4.routes "10.10.10.0/24 192.168.1.254; 172.16.0.0/12 192.168.1.253"
删除路由:替换 + 为 -,示例:sudo nmcli connection modify ens33 -ipv4.routes "10.10.10.0/24 192.168.1.254"
设置默认网关:sudo nmcli connection modify ens33 ipv4.gateway 192.168.1.1
两种方法对比,怎么选?
很多运维同学会纠结选哪种,直接看表格,按需选择即可:
| | | |
|---|
| | | |
| 现代部署、NetworkManager管理、频繁调整 | | |
常见故障排查(运维必备)
配置过程中遇到问题,不用慌,对照以下场景快速解决:
🔸 重启后路由丢失:要么没重启网络服务,要么接口名写错(比如route-eth0对应ens33),要么文件语法错误(缺空格、中文标点)。
🔸 网络服务启动失败:大概率是路由文件语法错误,临时重命名该文件(如route-ens33.bak),重启服务后再逐行排查。
🔸 路由存在但无法通信:检查下一跳网关是否可达(ping网关),或防火墙是否拦截,多网卡场景需显式指定dev接口。
最后总结
openEuler永久路由配置,核心就两种方法:
1. 保守稳妥选「配置文件法」,兼容所有场景,适合追求稳定性的生产环境;
2. 高效灵活选「nmcli命令法」,官方推荐,实时生效,适配现代运维需求。
记住:生产环境绝对不能用临时路由!无论是哪种方法,配置后一定要重启服务器验证持久性,避免因路由丢失导致业务中断。
收藏这篇指南,下次配置openEuler路由,直接对照操作,省时又避坑~