插件窝 干货文章 linux中的peerdns是什么

linux中的peerdns是什么

peerdns 配置 DNS DHCP 910    来源:    2025-04-14

在 Linux 网络配置中,peerdns 是一个与 DHCP 客户端相关的参数,主要用于控制是否接受 DHCP 服务器下发的 DNS 服务器地址。以下是详细说明:


1. 作用

  • 当通过 DHCP 自动获取 IP 地址时,DHCP 服务器通常会同时下发 DNS 服务器地址(如 8.8.8.8)。
  • peerdns 参数决定是否将这些 DHCP 提供的 DNS 服务器地址写入本地网络配置文件(如 /etc/resolv.conf)。

2. 配置位置

  • 在传统网络配置中(如 ifcfg 文件),peerdns 常见于以下路径: bash /etc/sysconfig/network-scripts/ifcfg-eth0 # 以 eth0 为例
  • 配置示例: ini BOOTPROTO=dhcp PEERDNS=yes # 或 no

3. 参数值

  • PEERDNS=yes(默认)
    接受 DHCP 服务器下发的 DNS 地址,并自动更新 /etc/resolv.conf
  • PEERDNS=no
    忽略 DHCP 下发的 DNS 地址,保持 /etc/resolv.conf 不变(需手动配置 DNS)。

4. 动态网络管理工具

  • NetworkManager
    若使用 NetworkManager,peerdns 可能被覆盖,需通过 nmcli 或配置文件设置: bash nmcli connection modify eth0 ipv4.ignore-auto-dns yes # 等效于 PEERDNS=no
  • systemd-networkd
    .network 文件中通过 UseDNS= 参数控制。

5. 实际影响

  • 修改 resolv.conf
    PEERDNS=yes 时,DHCP 客户端(如 dhclient)会覆盖 /etc/resolv.conf 中的 DNS 设置。
  • 自定义 DNS
    若需固定 DNS(如 1.1.1.1),需设置 PEERDNS=no 并在 /etc/resolv.conf 中手动指定。

6. 检查与验证

  • 查看当前 DNS 配置: bash cat /etc/resolv.conf
  • 检查 DHCP 获取的 DNS: bash dhclient -v eth0 # 或查看 /var/lib/dhclient/dhclient.leases

7. 注意事项

  • Cloud-init 或虚拟机:某些云环境会强制覆盖 DNS,需检查云初始化配置。
  • DNS 解析问题:若 PEERDNS=no 但未手动配置 DNS,可能导致无法解析域名。

总结

peerdns 是控制 DHCP 下发 DNS 是否生效的关键参数,根据需求选择启用或禁用。对于需要固定 DNS 的场景(如企业内网),建议设为 no 并手动配置。