插件窝 干货文章 linux怎么配置dns

linux怎么配置dns

DNS 配置 systemd 195    来源:    2025-04-06

在Linux系统中配置DNS可以通过以下几种方法,具体选择取决于你的需求(临时/永久、网络管理工具等)。以下是详细的配置方法:


一、临时配置DNS(重启后失效)

方法1:修改 /etc/resolv.conf

sudo nano /etc/resolv.conf

添加或修改以下内容(示例使用Google DNS):

nameserver 8.8.8.8
nameserver 8.8.4.4

注意:某些系统(如使用systemd-resolvedNetworkManager)会覆盖此文件,需结合后续永久配置方法。

方法2:使用resolvectl(systemd-resolved)

sudo resolvectl dns eth0 8.8.8.8 8.8.4.4

二、永久配置DNS

1. 使用NetworkManager(图形界面/命令行)

  • 图形界面
    • 打开网络设置 → 选择连接 → IPv4/IPv6 → 填写DNS服务器。
  • 命令行bash nmcli con mod <连接名> ipv4.dns "8.8.8.8 8.8.4.4" nmcli con up <连接名> # 应用更改

2. 修改Netplan配置(Ubuntu 18.04+)

编辑YAML配置文件(如/etc/netplan/01-netcfg.yaml): yaml network: version: 2 ethernets: eth0: nameservers: addresses: [8.8.8.8, 8.8.4.4] 应用配置: bash sudo netplan apply

3. 修改/etc/network/interfaces(Debian/旧版Ubuntu)

plaintext iface eth0 inet static dns-nameservers 8.8.8.8 8.8.4.4 重启网络: bash sudo systemctl restart networking

4. 使用systemd-resolved

编辑/etc/systemd/resolved.confini [Resolve] DNS=8.8.8.8 8.8.4.4 重启服务: bash sudo systemctl restart systemd-resolved


三、验证DNS配置

  1. 检查当前使用的DNSbash cat /etc/resolv.conf resolvectl status # systemd-resolved
  2. 测试DNS解析bash nslookup example.com dig example.com

四、其他注意事项

  1. 多DNS服务器:按顺序尝试,用空格分隔(如8.8.8.8 1.1.1.1)。
  2. 本地DNS缓存

    • 清除systemd-resolved缓存: bash sudo systemd-resolve --flush-caches
    • 若使用dnsmasqnscd,需重启相应服务。
  3. DHCP分配的DNS:若需覆盖DHCP的DNS,在NetworkManager或Netplan中设置ignore-auto-dns


常见问题

  • /etc/resolv.conf被重置:确保通过正确工具(如NetworkManager)配置,或设置文件为不可变: bash sudo chattr +i /etc/resolv.conf
  • IPv6 DNS:在配置中替换ipv4.dnsipv6.dns

根据你的Linux发行版和网络管理工具选择合适的方法即可。