默认网关配置错误会导致全网中断;临时修改用ip route add default via立即生效但重启丢失,永久配置需确保语法正确、服务重载且网关与本机同子网并可达。

默认网关改错会导致全网中断,必须先确认新网关可达、且与本机在同一子网;临时命令立即生效但重启即丢,永久配置不生效往往是因为配置文件语法错误或服务未重载。
ip route add default via 立即生效但不持久
这是当前最推荐的临时修改方式,route 命令已逐步被弃用,ip route 更可靠、输出更结构化。执行前务必用 ping -c 3 <新网关IP> 验证连通性。
- 添加默认网关(假设网关是
192.168.1.1,出口网卡是eth0):sudo ip route add default via 192.168.1.1 dev eth0 - 若提示
RTNETLINK answers: File exists,说明已有默认路由,需先删再加:sudo ip route del default - 验证是否生效:
ip route show | grep default,应输出类似default via 192.168.1.1 dev eth0 - 注意:该操作不检查网关是否真能转发,只确保路由表写入成功;若网关不可达,
curl或ping 8.8.8.8会超时,但命令本身不报错
/etc/netplan/*.yaml 配置永久生效(Ubuntu 18.04+)
Netplan 是 Ubuntu 主流发行版的默认网络配置工具,写错 YAML 缩进或冒号后缺空格会导致 netplan apply 失败,且无明确行号提示。
- 编辑配置文件,如
sudo nano /etc/netplan/01-network-manager-all.yaml - 在对应网卡下添加
gateway4(仅支持一个 IPv4 默认网关)和routes(支持多条静态路由):
network:
version: 2
ethernets:
eth0:
dhcp4: false
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
routes:
- to: 10.0.0.0/24
via: 192.168.1.2- 保存后运行
sudo netplan try(有 120 秒倒计时,失败自动回滚),确认无误再sudo netplan apply - 不要混用
gateway4和routes中的to: 0.0.0.0/0—— Netplan 不允许两者共存,否则报错Invalid value for 'routes'
/etc/sysconfig/network-scripts/ifcfg-eth0(CentOS/RHEL 7/8)
Red Hat 系发行版仍广泛使用 ifcfg 文件,但需注意:若该网卡启用了 DHCP(DHCP=yes 或 BOOTPROTO=dhcp),则 GATEWAY 字段会被忽略。
- 编辑
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 - 确保
BOOTPROTO=static,并添加或修改以下行:
GATEWAY=192.168.1.1 DEFROUTE=yes
-
DEFROUTE=yes表示该接口负责默认路由;若系统有多网卡,且只想让 eth0 当默认出口,其他接口必须设为DEFROUTE=no - 重启网络服务:
sudo systemctl restart NetworkManager或sudo ifdown eth0 && sudo ifup eth0 - 常见坑:
GATEWAY值写成域名(如gateway.local)会导致启动失败,必须是 IP
nmcli 修改 NetworkManager 连接(适用于桌面环境或无 ifcfg 的系统)
当系统由 NetworkManager 管理(大多数桌面版和部分服务器),直接改 ifcfg 可能被覆盖,nmcli 是更安全的永久手段。
- 查当前连接名:
nmcli connection show,通常为Wired connection 1或类似 - 设置默认网关:
sudo nmcli connection modify "Wired connection 1" ipv4.gateway 192.168.1.1 - 关闭 IPv4 自动获取(否则 gateway 被忽略):
sudo nmcli connection modify "Wired connection 1" ipv4.method manual - 重载连接:
sudo nmcli connection down "Wired connection 1" && sudo nmcli connection up "Wired connection 1" - 注意:
ipv4.ignore-auto-routes默认为no,若 DHCP 分配了网关,它仍可能抢走你的手动设置;必要时设为yes
真正容易被忽略的是:无论用哪种永久方式,都必须确保新网关 IP 与本机 IP 在同一子网内,且物理链路可达。很多“配置成功但上不了网”的问题,根源在于网关本身没开路由转发、或防火墙拦截了 ICMP/UDP,而不是 Linux 侧的命令写错了。


















