在 Ubuntu 里用 dhclient 本身是不能“固定 IP”的,因为 dhclient 只是 DHCP 客户端,IP 是服务器分配的。
所谓“固定 IP”,通常有以下几种做法,我按常见程度给你说明。
Ubuntu 18.04+ 默认用 Netplan,不走 dhclient。
ls /etc/netplan/
一般是:
/etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply
✅ 这样 IP 就固定了,和 dhclient 无关
如果你必须用 DHCP,那就让 DHCP 服务器把 IP 绑死。
例如 dhcpd.conf:
host ubuntu {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.100;
}
Ubuntu 端继续用:
sudo dhclient eth0
⚠️ 前提是你能控制 DHCP 服务器
你可以用 dhclient-exit-hooks 强制设 IP,但不稳定、不推荐。
sudo vim /etc/dhcp/dhclient-exit-hooks.d/static
if [ "$interface" = "eth0" ]; then
ip addr flush dev eth0
ip addr add 192.168.1.100/24 dev eth0
ip route add default via 192.168.1.1
fi
⚠️ 容易和 DHCP 冲突
| 需求 | 推荐方式 |
|---|---|
| 本机固定 IP | ✅ Netplan 静态 IP |
| 网络必须 DHCP | ✅ DHCP 服务器 MAC 绑定 |
| 用 dhclient 固定 | ❌ 不推荐 |
如果你愿意,可以告诉我:
我可以直接给你一份可用配置。