dhclient
是 Linux 系统中常用的 DHCP 客户端工具,用于从 DHCP 服务器自动获取 IP 地址等网络配置信息。以下是关于手动配置 dhclient
的详细信息:
# 为特定接口获取 DHCP 地址
sudo dhclient eth0
# 释放当前 DHCP 租约
sudo dhclient -r eth0
主配置文件通常位于:
- /etc/dhcp/dhclient.conf
(Debian/Ubuntu)
- /etc/dhclient.conf
(RHEL/CentOS)
示例配置:
# /etc/dhcp/dhclient.conf
# 请求特定选项
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name;
# 指定域名服务器
prepend domain-name-servers 8.8.8.8, 8.8.4.4;
# 超时设置
timeout 60;
retry 60;
reboot 10;
select-timeout 5;
initial-interval 2;
# 发送客户端标识
send host-name "myhost.example.com";
send dhcp-client-identifier "my-client-id";
# 接口特定配置
interface "eth0" {
send dhcp-client-identifier "eth0-client-id";
request subnet-mask, routers, domain-name-servers;
}
# 如果 DHCP 失败,使用静态配置
timeout 300;
retry 60;
script "/etc/dhcp/dhclient-fallback.sh";
然后在 /etc/dhcp/dhclient-fallback.sh
中实现静态配置逻辑。
租约文件通常存储在 /var/lib/dhcp/dhclient.leases
或 /var/lib/dhclient/dhclient.leases
手动查看租约信息:
cat /var/lib/dhclient/dhclient.leases
# 以调试模式运行
sudo dhclient -d -v eth0
# 查看日志
journalctl -u networking --no-pager -n 100
如果使用 NetworkManager,可以在 /etc/NetworkManager/conf.d/dhcp.conf
中配置:
[main]
dhcp=dhclient
在 /etc/systemd/network/eth0.network
中:
[Match]
Name=eth0
[Network]
DHCP=yes
dhclient 不续租:
sudo dhclient -r eth0 && sudo dhclient eth0
强制使用特定客户端 ID:
send dhcp-client-identifier "custom-id";
忽略特定 DHCP 选项:
supersede domain-name "example.com";
持久化租约文件:
sudo cp /var/lib/dhclient/dhclient.leases /var/lib/dhclient/dhclient.leases.bak
通过以上方法,您可以灵活地手动配置和控制 dhclient
的行为,满足各种网络环境的需求。