在 Ubuntu 里“改网关”要看你是 DHCP 自动获取 还是 想让 DHCP 客户端改默认网关。下面分情况说明。
如果是通过 DHCP 获取地址,网关是 DHCP 服务器下发的,客户端不能“直接改”,只能:
适用于:DHCP 给的网关不对,你想用别的网关
编辑配置文件(常见路径):
sudo nano /etc/netplan/01-netcfg.yaml
示例(假设网卡 eth0):
network:
version: 2
ethernets:
eth0:
dhcp4: true
dhcp4-overrides:
use-routes: false
routes:
- to: default
via: 192.168.1.1
应用:
sudo netplan apply
✅ 这样:IP 仍由 DHCP 给,但网关用你指定的
network:
version: 2
ethernets:
eth0:
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8]
如果你是 给别的机器分配 IP 的服务器,改网关在:
sudo nano /etc/dhcp/dhcpd.conf
找到 subnet 段:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1; # ← 网关
option domain-name-servers 8.8.8.8;
}
重启服务:
sudo systemctl restart isc-dhcp-server
sudo ip route del default
sudo ip route add default via 192.168.1.1
⚠️ 重启或 DHCP 续租后会恢复
ip route
default via 192.168.x.x dev eth0 proto dhcp → 你是 DHCP 客户端/etc/dhcp/dhcpd.conf → 你是 DHCP 服务器如果你愿意,可以把下面信息发我,我可以直接给你写配置:
lsb_release -a)ip a)