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,拿到地址但不应用。