插件窝 干货文章 linux dhclient如何设置域名

linux dhclient如何设置域名

dhclient 配置 example dhcp 514    来源:    2025-05-14

在 Linux 中使用 dhclient 设置域名(DNS 和域名搜索路径)可以通过以下方法实现:


方法 1:通过 dhclient 配置文件(推荐)

  1. 编辑 /etc/dhcp/dhclient.conf 文件(路径可能因发行版略有不同):

    sudo nano /etc/dhcp/dhclient.conf
    
  2. 添加或修改以下配置

    # 设置主 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 服务器提供的值。
    • 如果希望优先使用 DHCP 提供的配置但提供备用值,可以用 prependappend
  3. 重启网络服务或 dhclient

    sudo systemctl restart networking  # 适用于 Debian/Ubuntu
    sudo systemctl restart NetworkManager  # 适用于 RHEL/CentOS
    

    或手动释放并重新获取 IP:

    sudo dhclient -r eth0  # 释放
    sudo dhclient eth0     # 重新获取(网卡名根据实际情况替换)
    

方法 2:通过命令行参数

在运行 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 协议格式)。

方法 3:修改 /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

验证配置

  1. 检查 DNS 和搜索域

    cat /etc/resolv.conf
    
  2. 测试域名解析

    nslookup example.com
    ping -c 2 example.com
    

注意事项

  1. 持久化问题

    • 某些系统(如 Ubuntu 18.04+ 使用 netplansystemd-resolved)会覆盖 /etc/resolv.conf,需通过对应工具配置(例如 netplan 的 YAML 文件)。
  2. 网络管理器冲突

    • 如果使用 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 eth0
  3. DHCP 租约文件

    • 查看当前 DHCP 获取的配置: bash cat /var/lib/dhcp/dhclient.leases

通过以上方法,您可以灵活控制 Linux 系统中通过 dhclient 设置的域名和 DNS 配置。