dhclient
100%

网络配置 · 第 3 课

dhclient

学习何时以及如何使用 dhclient,同时避免与系统网络管理器冲突。

dhclient 是部分 Linux 系统提供的 ISC DHCP 客户端。许多现代安装会改由 NetworkManager、systemd-networkd 或其他服务运行自己的 DHCP 客户端。在已管理接口上启动第二个客户端,可能造成相互竞争的地址、路由、DNS 设置和租约状态。

确定活动客户端

调用 dhclient 前,应检查配置所有者和进程:

$ nmcli device status
$ networkctl status
$ ps -ef | grep '[d]hclient'

应使用主机上实际存在的工具。如果某个管理器拥有接口,应通过该管理器请求 DHCP,而不是启动单独的客户端。

为什么要避免在已受管理的接口上启动 dhclient

显式请求租约

在以 dhclient 为预期所有者的非托管测试接口上,应指定接口并使用详细输出:

$ sudo dhclient -v enp1s0

不指定接口运行时,可能会影响多个符合条件的接口。配置和租约路径因软件包与调用方式而异;常见名称包括 dhclient.confdhclient.leases,但不要假定固定位置。

手动请求时为什么要指定 enp1s0

释放租约

dhclient -r INTERFACE 会请求释放租约,并可能移除可用配置。该操作会造成中断,而且不能保证服务器可达并收到释放消息。不要仅仅为了检查租约而释放它,尤其不能在远程管理路径上这样做。

dhclient -r enp1s0 有什么运维风险?

验证已应用租约

完成受控请求后,不能只验证地址:

$ ip address show dev enp1s0
$ ip route show
$ resolvectl status

应检查管理器或客户端日志及租约有效期,再测试预期的名称解析和应用程序。DHCPACK 可能携带错误选项,成功分配地址也不能证明网关或 DNS 可达。

获得租约后应该验证什么?

课程已完成

你已完成 dhclient

现在,你可以只在 dhclient 是接口预期所有者时使用它。

  • 发现活动网络管理器和 DHCP 客户端。

  • 避免一个接口上存在相互竞争的客户端。

  • 将手动请求限制到具名测试接口。

  • 将释放视为中断操作,并验证完整租约结果。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 网络配置