插件窝 干货文章 linux dns配置文件是哪个

linux dns配置文件是哪个

配置 NetworkManager DNS 路径 142    来源:    2025-05-01

在 Linux 系统中,DNS 相关的配置文件主要有以下几个,具体路径和作用如下:


1. 主 DNS 解析配置文件

  • 路径: /etc/resolv.conf
  • 作用: 定义系统使用的 DNS 服务器地址(如 nameserver 8.8.8.8)和搜索域(search)。
  • 注意:
    • 该文件可能由网络管理工具(如 systemd-resolvedNetworkManagerdhclient)动态生成,直接编辑可能被覆盖。
    • 若需持久化配置,需通过对应工具修改(见下文)。

2. 静态主机名解析

  • 路径: /etc/hosts
  • 作用: 本地静态主机名与 IP 的映射(优先级高于 DNS),格式如:
    plaintext 127.0.0.1 localhost 192.168.1.10 my-server

3. 现代 Linux 系统(使用 systemd-resolved

  • 路径: /etc/systemd/resolved.conf
  • 作用: 配置 systemd-resolved 服务的 DNS 设置,例如:
    ini [Resolve] DNS=8.8.8.8 1.1.1.1 Domains=example.com
  • 缓存查看:
    bash systemd-resolve --status

4. NetworkManager 管理的 DNS

  • 路径: /etc/NetworkManager/NetworkManager.conf 或每连接的配置文件(/etc/NetworkManager/system-connections/
  • 作用: 通过 NetworkManager 管理的网络连接会覆盖 /etc/resolv.conf
    修改方法: bash nmcli con modify <连接名> ipv4.dns "8.8.8.8 8.8.4.4" nmcli con up <连接名>

5. 传统网络脚本(如 Red Hat/CentOS)

  • 路径: /etc/sysconfig/network-scripts/ifcfg-<网卡名>
    参数:
    plaintext DNS1=8.8.8.8 DNS2=1.1.1.1

6. 其他工具

  • dhclient: DHCP 客户端配置位于 /etc/dhcp/dhclient.conf,可添加:
    plaintext supersede domain-name-servers 8.8.8.8;

验证 DNS 配置

# 查看当前使用的 DNS 服务器
cat /etc/resolv.conf

# 测试解析
nslookup example.com
dig example.com

# 检查 systemd-resolved 状态(如适用)
resolvectl status

关键注意事项

  • 优先级: /etc/hosts > 动态 DNS 配置(如 DHCP 或 NetworkManager)> /etc/resolv.conf
  • 持久化: 直接修改 /etc/resolv.conf 可能无效,需通过对应网络管理工具配置。

根据你的 Linux 发行版和网络管理方式,选择正确的配置文件进行修改。