CentOS 7怎么修改具体的默认网关
在 CentOS 7 环境下调整默认网关,核心在于先厘清当前由哪个网络管理服务在“掌权”。如果 NetworkManager 处于活跃状态,操作起来相对直接:只需通过 nmcli 修改连接配置,随后执行 down 和 up 命令重启该连接即可生效。反之,若 network.service 才是主导者
在 CentOS 7 环境下调整默认网关,核心在于先厘清当前由哪个网络管理服务在“掌权”。如果 NetworkManager 处于活跃状态,操作起来相对直接:只需通过 nmcli 修改连接配置,随后执行 down 和 up 命令重启该连接即可生效。反之,若 network.service 才是主导者,则需要深入配置文件,在 ifcfg- 文件中明确指定 GATEWAY 和 DEFROUTE 参数,最后别忘了 restart network 服务以应用更改。

CentOS 7 修改默认网关绝非改个参数就万事大吉。关键在于 GATEWAY 参数能否真正生效,这取决于底层跑的是 network.service 还是 NetworkManager,甚至两者可能共存并互相覆盖。一旦改错文件或漏掉重启步骤,ip route show default 查出来的依然是旧网关。
确认当前网关和网络管理服务
先看实际生效的默认路由和谁在管网络:
- 运行
ip route show default,输出类似default via 192.168.1.1 dev ens33—— 这是当前真实生效的网关 - 运行
systemctl is-active NetworkManager和systemctl is-active network,确认哪个服务是 active 状态 - 运行
nmcli connection show,看是否有活跃连接(如System ens33),这是NetworkManager管理的标识
如果 NetworkManager 是 active,优先用 nmcli;如果只有 network active,才走配置文件。
用 nmcli 修改(推荐,适用于 NetworkManager 管理的连接)
nmcli 是 CentOS 7 最新推荐方式,修改后需重新激活连接才生效,不是“改完就跑”:
- 查连接名:
nmcli connection show --active或nmcli device status,记下连接名(如"System ens33") - 修改网关:
nmcli connection modify "System ens33" ipv4.gateway 192.168.10.1 - 关键一步:必须关闭再启用连接,
nmcli connection down "System ens33" && nmcli connection up "System ens33",只用up不够 - 验证:
ip route show default应立即更新;若仍不生效,检查该连接是否启用了ipv4.ignore-auto-routes或ipv4.never-default(这些会压制ipv4.gateway)
改 ifcfg- 文件(仅当 network.service 主导时有效)
编辑对应网卡的配置文件,但注意:这个方法在 NetworkManager 启用时会被忽略:
- 找到文件:
/etc/sysconfig/network-scripts/ifcfg-ens33(把ens33换成你的接口名) - 添加或修改行:
GATEWAY=192.168.10.1,**不要加引号,不要空格** - 确保
DEFROUTE="yes"(否则即使写了GATEWAY也不参与默认路由) - 重启服务:
systemctl restart network(不是NetworkManager) - 注意:
/etc/sysconfig/network中的GATEWAY=...在 CentOS 7 中已基本失效,仅作全局兜底,不建议依赖
临时修改(调试用,重启即丢)
用 ip route 可绕过所有配置文件,适合快速验证新网关是否可达:
- 删除旧默认路由:
ip route del default - 添加新默认路由:
ip route add default via 192.168.10.1 dev ens33 - 注意:此操作不写入任何配置,且如果
NetworkManager正在运行,它可能在几秒内自动恢复原路由(因检测到“不一致”) - 如需保留,必须配合上面任一永久方案,否则下次
nmcli connection up或systemctl restart network就清空
真正容易被忽略的是服务冲突:NetworkManager 和 network.service 同时启用时,前者会接管并覆盖后者配置。确认谁在管,比反复改文件更重要。


































