Linux改错默认网关会立刻断网,必须先确认新网关与本机同子网且可达;临时用ip route replace最安全,永久配置依发行版而异:Ubuntu/Debian用Netplan(gateway4或routes),RHEL/CentOS需注意ifcfg中GATEWAY仅在静态模式生效,DHCP下须用nmcli;配完须验证单条default路由、子网匹配及连通性。

改错默认网关会立刻断网,必须先确认新网关 IP 和本机在同一子网、且能 ping 通;临时改用 ip route replace 最安全,永久配置则取决于发行版和网络管理工具,不是所有系统都认 /etc/network/interfaces 或 GATEWAY= 这种写法。
用 ip route replace 临时改网关(推荐)
这是唯一真正“立即生效 + 安全替换”的方式,不会残留旧路由,也不依赖服务重启。
- 先确认接口名和网关连通性:
ip -br addr show找 UP 状态的接口(如eth0),再ping -c 3 192.168.1.1验证网关可达 - 执行替换(不是 add):
sudo ip route replace default via 192.168.1.1 dev eth0—— 这会覆盖已有 default 路由,避免多条 default 导致转发混乱 - 验证是否生效:
ip route show | grep default输出应只有一行,且via和dev都正确 -
route命令已废弃:它不支持 IPv6、无法设 metric、在新版内核中行为不可靠,别在新环境里用route add default gw
Ubuntu/Debian(Netplan)下永久生效
Netplan 不接受老式语法,YAML 缩进错一个空格就 netplan apply 失败,而且 gateway4 和 routes 不能共存。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 编辑配置文件:
sudo nano /etc/netplan/01-network-manager-all.yaml(路径以/etc/netplan/*.yaml为准) - 在对应网卡段下加
gateway4: 192.168.1.1(仅 IPv4)或更灵活的routes块:routes: - to: 0.0.0.0/0 via: 192.168.1.1 metric: 100 - 严禁同时写
gateway4和to: 0.0.0.0/0,Netplan 会报错Invalid value for 'routes' - 先试运行:
sudo netplan try(120 秒倒计时,失败自动回滚),确认无误再sudo netplan apply
RHEL/CentOS/Fedora(ifcfg 文件)下永久生效
ifcfg 文件里的 GATEWAY= 只在静态配置下生效,DHCP 模式下会被忽略——这点常被漏看。
- 确认该接口未被 NetworkManager 接管:检查
/etc/sysconfig/network-scripts/ifcfg-eth0中是否有NM_CONTROLLED=no,否则改了也无效 - 如果是静态 IP,直接加一行:
GATEWAY=192.168.1.1 - 如果是 DHCP 模式,
GATEWAY=字段会被 dhcp 客户端覆盖,得改 dhclient 配置或用nmcli: - 用
nmcli修改(更可靠):nmcli connection modify "System eth0" ipv4.gateway 192.168.1.1,然后nmcli connection down "System eth0" && nmcli connection up "System eth0"
验证和最容易踩的坑
很多人配完就以为好了,结果一断网才发现问题出在细节上。
- 网关必须和本机 IP 在同一子网:比如本机是
192.168.1.100/24,网关只能是192.168.1.x,填10.0.0.1肯定不通 - 多个 default 路由冲突:
ip route show | grep default输出超过一行,说明有残留,必须先ip route del default再 replace - 远程操作时没留退路:别直接
netplan apply或重启 network 服务,建议先开个 tmux/screen 会话,或确保有带外管理通道 - 配置文件权限和语法:Netplan 要求 YAML 严格缩进,ifcfg 文件要求每行末尾不能有多余空格,
=两边不能有空格
最麻烦的不是写错命令,而是改完发现 ping 不通却查不出哪一步漏了——子网判断、DHCP 覆盖、Netplan 语法限制、NetworkManager 接管状态,四个点任何一个出问题都会让配置“看起来生效了,实际没走”。

















