Ubuntu DNS 配置详解
在 Ubuntu 系统中,DNS(Domain Name System)配置是网络管理的重要部分,它负责将域名解析为 IP 地址,确保用户能够通过域名访问互联网,本文将详细介绍 Ubuntu 系统中 DNS 的配置方法、常见问题及解决方案,帮助用户更好地管理网络设置。

DNS 的基本概念
DNS 是互联网的核心服务之一,它将人类可读的域名(如 www.example.com)转换为机器可读的 IP 地址(如 184.216.34),在 Ubuntu 系统中,DNS 配置通常涉及三个层面:系统级 DNS、网络接口级 DNS 和特定应用程序的 DNS 设置,正确配置 DNS 可以提高网络访问速度,增强安全性,并避免域名解析失败的问题。
查看 Ubuntu 系统当前的 DNS 配置
在修改 DNS 之前,首先需要了解当前的配置状态,Ubuntu 系统中,DNS 配置信息通常存储在 /etc/resolv.conf 文件中,用户可以通过以下命令查看:
cat /etc/resolv.conf
该文件会显示当前使用的 DNS 服务器地址,
nameserver 8.8.8.8
nameserver 1.1.1.1
需要注意的是,/etc/resolv.conf 文件可能是由 NetworkManager 或 systemd-resolved 动态管理的,直接编辑可能无法永久生效。
通过 Netplan 配置 DNS(Ubuntu 18.04 及更高版本)
Ubuntu 18.04 及更高版本推荐使用 Netplan 进行网络配置,Netplan 是一个命令行工具,可以通过 YAML 文件定义网络接口和 DNS 设置,以下是配置步骤:
1 定位 Netplan 配置文件
Netplan 配置文件通常位于 /etc/netplan/ 目录下,文件名可能为 01-netcfg.yaml 或 50-cloud-init.yaml,使用以下命令列出所有配置文件:
ls /etc/netplan/
2 编辑 Netplan 配置文件
以 50-cloud-init.yaml 为例,使用文本编辑器(如 nano)打开文件:
sudo nano /etc/netplan/50-cloud-init.yaml
在文件中添加或修改 DNS 服务器地址,

network:
version: 2
ethernets:
enp0s3: # 替换为实际的网络接口名称
dhcp4: no
addresses: [192.168.1.100/24] # 静态 IP 地址
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1] # DNS 服务器地址
search: [example.com] # 可选的域名后缀
3 应用 Netplan 配置
保存文件后,运行以下命令使配置生效:
sudo netplan apply
通过 systemd-resolved 管理 DNS
Ubuntu 系统默认使用 systemd-resolved 服务管理 DNS 解析,该服务提供本地缓存功能,并支持多种 DNS 后端(如 DNS over TLS、DNS over HTTPS)。
1 启用 systemd-resolved 服务
确保 systemd-resolved 服务正在运行:
sudo systemctl status systemd-resolved
如果未运行,使用以下命令启动并启用:
sudo systemctl enable --now systemd-resolved
2 配置 systemd-resolved 的 DNS
编辑 /etc/systemd/resolved.conf 文件:
sudo nano /etc/systemd/resolved.conf
取消注释并修改以下行:
DNS=8.8.8.8 1.1.1.1
#FallbackDNS=
#DNSStubListener=yes
保存后重启服务:
sudo systemctl restart systemd-resolved
手动修改 /etc/resolv.conf(不推荐)
虽然不推荐直接编辑 /etc/resolv.conf,但在某些情况下(如临时测试),可以手动修改该文件,首先备份原文件:

sudo cp /etc/resolv.conf /etc/resolv.conf.bak
然后编辑文件:
sudo nano /etc/resolv.conf
添加所需的 DNS 服务器地址,
nameserver 8.8.8.8
nameserver 1.1.1.1
注意:此方法可能无法在系统重启后保持生效。
测试 DNS 配置
修改 DNS 后,可以使用以下命令测试解析是否正常:
ping www.example.com nslookup www.example.com dig www.example.com
如果解析成功,说明 DNS 配置正确;否则,请检查网络连接和 DNS 服务器地址。
常见问题及解决方案
1 域名解析失败
- 原因:DNS 服务器地址错误或网络连接问题。
- 解决方案:检查
/etc/resolv.conf或 Netplan 配置,确保 DNS 服务器地址正确。
2 DNS 解析速度慢
- 原因:DNS 服务器响应慢或本地缓存未生效。
- 解决方案:更换为更快的 DNS 服务器(如
8.8.8或1.1.1),或清除systemd-resolved缓存:
sudo systemd-resolve --flush-caches
相关问答 FAQs
Q1: 如何在 Ubuntu 中永久修改 DNS 服务器?
A1: 在 Ubuntu 18.04 及更高版本中,推荐使用 Netplan 配置 DNS,编辑 /etc/netplan/ 目录下的 YAML 文件,在 nameservers 部分指定 DNS 地址,然后运行 sudo netplan apply 使配置生效。
Q2: 为什么修改 /etc/resolv.conf 后重启 DNS 配置会恢复?
A2: 因为 /etc/resolv.conf 文件可能由 NetworkManager 或 systemd-resolved 动态管理,直接编辑文件无法永久生效,建议通过 Netplan 或 systemd-resolved 进行配置。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/315223.html