在 Linux 中使用 dhclient 设置域名(DNS 和域名搜索路径)可以通过以下方法实现:
编辑 /etc/dhcp/dhclient.conf 文件(路径可能因发行版略有不同):
sudo nano /etc/dhcp/dhclient.conf
添加或修改以下配置:
# 设置主 DNS 服务器
supersede domain-name-servers 8.8.8.8, 8.8.4.4;
# 设置域名搜索路径(多个域名用空格分隔)
supersede domain-search "example.com", "internal.example.com";
# 强制设置主机名(可选)
supersede host-name "your-hostname";
supersede 表示覆盖 DHCP 服务器提供的值。prepend 或 append。重启网络服务或 dhclient:
sudo systemctl restart networking # 适用于 Debian/Ubuntu
sudo systemctl restart NetworkManager # 适用于 RHEL/CentOS
或手动释放并重新获取 IP:
sudo dhclient -r eth0 # 释放
sudo dhclient eth0 # 重新获取(网卡名根据实际情况替换)
在运行 dhclient 时直接指定参数:
sudo dhclient -r eth0 && sudo dhclient eth0 -sf /usr/sbin/dhclient-script -d -v \
-H "your-hostname" \
-S "domain-name-servers=8.8.8.8, domain-search=example.com"
-H:设置主机名。-S:动态覆盖 DHCP 选项(需符合 DHCP 协议格式)。/etc/resolv.conf(临时生效)如果 DHCP 未正确配置域名,可直接编辑 /etc/resolv.conf:
sudo nano /etc/resolv.conf
添加以下内容(注意:重启后可能被 DHCP 覆盖):
search example.com internal.example.com
nameserver 8.8.8.8
nameserver 8.8.4.4
检查 DNS 和搜索域:
cat /etc/resolv.conf
测试域名解析:
nslookup example.com
ping -c 2 example.com
持久化问题:
netplan 或 systemd-resolved)会覆盖 /etc/resolv.conf,需通过对应工具配置(例如 netplan 的 YAML 文件)。网络管理器冲突:
NetworkManager,建议通过 nmcli 或 GUI 工具配置域名:
bash
nmcli con mod eth0 ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con mod eth0 ipv4.dns-search "example.com"
nmcli con up eth0DHCP 租约文件:
bash
cat /var/lib/dhcp/dhclient.leases通过以上方法,您可以灵活控制 Linux 系统中通过 dhclient 设置的域名和 DNS 配置。