Ubuntu DNS怎么配置才能解决域名解析失败问题?

Ubuntu DNS 配置详解

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

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.yaml50-cloud-init.yaml,使用以下命令列出所有配置文件:

ls /etc/netplan/

2 编辑 Netplan 配置文件

50-cloud-init.yaml 为例,使用文本编辑器(如 nano)打开文件:

sudo nano /etc/netplan/50-cloud-init.yaml

在文件中添加或修改 DNS 服务器地址,

Ubuntu 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,但在某些情况下(如临时测试),可以手动修改该文件,首先备份原文件:

Ubuntu DNS怎么配置才能解决域名解析失败问题?

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.81.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

Like (0)
小编小编
Previous 2025年12月18日 15:24
Next 2025年12月18日 15:31

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注