039 dhclient命令
命令说明
dhclient 是 DHCP 客户端程序,用于向 DHCP 服务器申请/续租 IP 地址、网关、DNS 等网络配置,常用于网卡获取动态地址或释放后重新获取。
语法
dhclient [选项]... [接口]
常用参数
| 参数 | 说明 |
|---|---|
| -r | 释放(release)当前租约并断开 DHCP |
| -1 | 只尝试获取一次,失败即退出(脚本友好) |
| -x | 停止 dhclient 进程并释放地址 |
| -v | 详细输出交互过程,排错常用 |
| -sf 脚本 | 指定获取地址后执行的配置脚本,/bin/true 表示不自动配网 |
| -cf 文件 | 指定配置文件(默认 /etc/dhcp/dhclient.conf) |
| -4 / -6 | 强制使用 IPv4 / IPv6 DHCP |
| -nw | 获取到地址后立即后台运行不阻塞 |
| -s 服务器 | 指定单播请求的目标 DHCP 服务器 |
使用示例
$ dhclient eth0
为 eth0 接口申请 DHCP 地址
$ dhclient -r eth0
释放 eth0 的当前租约
$ dhclient -r eth0 && dhclient eth0
先释放再重新获取(换 IP 常用)
$ dhclient -v eth0
详细模式观察 DISCOVER/OFFER/REQUEST/ACK 过程
$ dhclient -1 eth0
只申请一次,适合网络脚本判断是否可达
$ dhclient -x
终止后台 dhclient 并收回地址
$ ip addr show eth0
获取后确认新地址已生效
$ cat /var/lib/dhcpd/dhclient.leases
查看租约详情(服务器、到期时间、DNS)
实用技巧
- dhclient 与 NetworkManager 可能冲突:NM 托管的网卡上手动跑 dhclient 会导致地址被反复重置,可先 nmcli device set eth0 managed no。
- 最小化系统(如 CentOS 8+/RHEL9)默认可能没有 dhclient(dhcp 客户端包已弃用),改用 nmcli 或 systemd-networkd 的 networkctl。
- 获取不到地址排查顺序:链路是否 up(ip link)、网线/交换机端口、DHCP 服务器地址池是否耗尽、防火墙是否挡了 UDP 67/68。
- 租约文件位置因发行版而异:/var/lib/dhcp/dhclient.leases 或 /var/lib/NetworkManager/,续租会在租约 1/2、1/8 时间点自动进行。
- 只想测试 DHCP 可达而不改本机配置:dhclient -1 -sf /bin/true eth0,拿到地址但不应用。