Ubuntu DNS配置与管理指南

DNS(域名系统)是互联网基础设施的核心组件,负责将人类可读的域名转换为机器可读的IP地址,在Ubuntu系统中,正确配置和管理DNS对于网络连接、服务访问以及系统稳定性至关重要,本文将详细介绍Ubuntu系统中DNS的配置方法、常见问题及解决方案,帮助用户高效管理网络设置。
Ubuntu DNS配置基础
在Ubuntu中,DNS配置主要通过以下文件实现:/etc/resolv.conf、/etc/netplan/目录下的配置文件以及systemd-resolved服务,不同Ubuntu版本可能采用不同的默认配置方式,例如Ubuntu 18.04及更高版本推荐使用netplan或systemd-resolved。
查看当前DNS配置
要查看当前系统的DNS设置,可以使用以下命令:
cat /etc/resolv.conf
该文件通常由系统动态管理,直接编辑可能无法持久化生效,对于使用systemd-resolved的系统,可运行:
resolvectl status
临时修改DNS
如果需要临时修改DNS服务器,可以直接编辑/etc/resolv.conf文件,添加或修改nameserver指令,
nameserver 8.8.8.8 nameserver 1.1.1.1
但请注意,重启网络服务或系统后,此修改可能会丢失。
使用Netplan配置DNS(Ubuntu 18.04+)
Netplan是Ubuntu默认的网络配置工具,通过YAML文件定义网络设置,包括DNS,以下是配置步骤:
定位Netplan配置文件
Netplan配置文件通常位于/etc/netplan/目录下,文件名可能为01-netcfg.yaml或50-cloud-init.yaml,使用以下命令查看:
ls /etc/netplan/
编辑Netplan配置文件
以文本编辑器打开配置文件,添加或修改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] # 可选的域名后缀
应用配置
保存文件后,运行以下命令使配置生效:
sudo netplan apply
使用systemd-resolved管理DNS
Ubuntu 18.04及以上版本默认使用systemd-resolved服务提供本地DNS解析,以下是管理方法:
启用并检查服务
确保systemd-resolved服务正在运行:
sudo systemctl status systemd-resolved
如未运行,使用以下命令启用:
sudo systemctl enable --now systemd-resolved
配置DNS服务器
编辑/etc/systemd/resolved.conf文件,取消注释并修改以下行:
DNS=8.8.8.8 1.1.1.1 Domains=~.
保存后重启服务:
sudo systemctl restart systemd-resolved
验证DNS解析
使用resolvectl或dig命令测试DNS解析是否正常:
resolvectl query example.com dig example.com
静态IP与DNS的绑定
对于需要固定IP地址的服务器,建议将IP与DNS配置绑定,避免因DHCP分配导致的变化,以下是Netplan示例:
network:
version: 2
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1, 8.8.8.8]
常见DNS问题排查
DNS解析失败
检查/etc/resolv.conf是否正确配置,或使用nslookup测试:

nslookup example.com
如失败,尝试更换DNS服务器或检查网络连接。
Netplan配置不生效
确保YAML文件格式正确(缩进错误会导致配置失败),并运行netplan --debug apply调试。
systemd-resolved冲突
若/etc/resolv.conf显示# Generated by NetworkManager,说明NetworkManager与systemd-resolved冲突,可通过编辑/etc/NetworkManager/NetworkManager.conf禁用DNS管理:
[main] dns=none
重启服务后,手动管理DNS。
相关问答FAQs
Q1: 如何在Ubuntu中永久修改DNS服务器?
A1: 对于Ubuntu 18.04及以上版本,推荐使用Netplan或systemd-resolved,通过编辑/etc/netplan/*.yaml或/etc/systemd/resolved.conf文件,添加DNS服务器地址后运行sudo netplan apply或重启systemd-resolved服务即可永久生效。
Q2: Ubuntu系统无法解析域名,如何快速排查?
A2: 首先检查/etc/resolv.conf中的nameserver配置是否正确;其次使用nslookup或dig命令测试DNS解析;若问题依旧,尝试更换公共DNS(如8.8.8.8)或检查防火墙规则是否阻止DNS查询(端口53)。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/280993.html