一、前言

在Ubuntu系统中,域名系统(DNS)的配置对于网络连接和域名解析至关重要,正确配置DNS可以确保系统能够快速解析域名,提高网络访问速度和稳定性,本文将详细介绍如何在Ubuntu系统中配置DNS,包括临时修改和永久修改的方法,并提供相关示例和注意事项。
二、临时修改DNS
临时修改DNS的方法相对简单,但重启后会失效,适用于临时需要更改DNS服务器的情况。
1. 修改/etc/resolv.conf文件
/etc/resolv.conf文件是系统用来配置DNS的主要文件之一,可以通过直接编辑该文件来临时更改DNS服务器。
步骤如下:
打开终端:按下Ctrl + Alt + T组合键。
编辑文件:使用文本编辑器(如nano或vi)打开/etc/resolv.conf文件,使用nano编辑器:

sudo nano /etc/resolv.conf
添加或修改DNS服务器地址:在文件中添加或修改nameserver字段,指定所需的DNS服务器地址,使用Google的公共DNS服务器:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存并退出:按Ctrl + O保存更改,然后按Ctrl + X退出编辑器。
>这种方法的优点是操作简单,即时生效,但缺点是重启后会失效。
三、永久修改DNS
永久修改DNS的方法涉及多个配置文件,具体方法取决于使用的网络管理工具。
1. 修改/etc/netplan/目录下的.yaml文件
如果使用Netplan进行网络配置,可以通过编辑相应的.yaml文件来永久更改DNS服务器。
步骤如下:

找到Netplan配置文件:通常位于/etc/netplan/目录下,文件名可能为01networkmanagerall.yaml或其他类似名称,使用ls命令查看:
ls /etc/netplan/
编辑配置文件:使用文本编辑器(如nano或vi)打开该文件。
sudo nano /etc/netplan/01networkmanagerall.yaml
添加或修改nameservers字段:在文件中添加或修改nameservers字段,指定所需的DNS服务器地址。
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
192.168.3.50/24
routes:
to: default
via: 192.168.3.1
nameservers:
addresses: [223.6.6.6, 8.8.8.8]
保存并退出:按Ctrl + O保存更改,然后按Ctrl + X退出编辑器。
应用新的网络配置:运行以下命令以应用新的配置:
sudo netplan apply
验证配置:使用以下命令检查IP地址和DNS服务器设置是否正确:
ip a systemdresolve status
2. 修改/etc/systemd/resolved.conf文件
如果使用systemdresolved作为DNS解析器,可以通过编辑/etc/systemd/resolved.conf文件来永久更改DNS服务器。
步骤如下:
备份原文件:建议先备份原文件,以防出现问题时可以恢复。
sudo cp /etc/systemd/resolved.conf /etc/systemd/resolved.conf.bak
编辑文件:使用文本编辑器(如nano或vi)打开该文件。
sudo nano /etc/systemd/resolved.conf
添加或修改DNS服务器地址:在[Resolve]部分添加或修改DNS和FallbackDNS字段,指定所需的DNS服务器地址。
[Resolve]
DNS=8.8.8.8 114.114.115.115
FallbackDNS=8.8.4.4
保存并退出:按Ctrl + O保存更改,然后按Ctrl + X退出编辑器。
重启systemdresolved服务:运行以下命令以重启service:
sudo systemctl restart systemdresolved
设置开机启动:确保systemdresolved服务在开机时自动启动。
sudo systemctl enable systemdresolved
备份托管文件:将/etc/resolv.conf文件移动为备份,并创建符号链接到systemdresolved的resolv.conf文件。
mv /etc/resolv.conf /etc/resolv.conf.bak ln s /run/systemd/resolve/resolv.conf /etc/resolv.conf
3. 修改/etc/NetworkManager/NetworkManager.conf文件
如果使用NetworkManager进行网络配置,可以通过编辑/etc/NetworkManager/NetworkManager.conf文件来永久更改DNS服务器。
步骤如下:
编辑文件:使用文本编辑器(如nano或vi)打开该文件。
sudo nano /etc/NetworkManager/NetworkManager.conf
注释掉dns=dnsmasq行:找到[main]部分,将dns=dnsmasq行注释掉。
[main]
plugins=ifupdown,keyfile, dnsmasq
#dns=dnsmasq
保存并退出:按Ctrl + O保存更改,然后按Ctrl + X退出编辑器。
编辑或创建dns配置文件:在/etc/NetworkManager/conf.d/目录下创建或编辑一个dns文件,如/etc/NetworkManager/conf.d/dns.conf,添加以下内容:
[main]
dns=none
[globaldnsdomain]
server=8.8.8.8,114.114.114.114
重启NetworkManager服务:运行以下命令以重启service:
sudo systemctl restart NetworkManager
四、常见问题与解答
1. 如何更改Ubuntu的DNS服务器?
更改Ubuntu的DNS服务器可以通过临时修改或永久修改来实现,临时修改可以直接编辑/etc/resolv.conf文件,而永久修改则需要根据使用的网络管理工具(如Netplan、systemdresolved或NetworkManager)来编辑相应的配置文件,具体步骤如上所述。
2. 为什么我修改了/etc/resolv.conf文件后重启计算机DNS设置又恢复了?
这是因为在Ubuntu中,/etc/resolv.conf文件是由resolvconf程序动态生成的,手动修改该文件会在重启后被覆盖,要永久更改DNS设置,需要根据使用的网络管理工具来编辑相应的配置文件,如Netplan的.yaml文件、systemdresolved的resolved.conf文件或NetworkManager的NetworkManager.conf文件及dns配置文件,完成这些步骤后,即使重启计算机,DNS设置也会保持不变。
通过以上详细的步骤和说明,相信读者已经掌握了在Ubuntu系统中配置DNS的方法,无论是临时修改还是永久修改,都可以根据实际需求选择合适的方法进行操作,了解常见问题的解答也有助于在遇到问题时能够迅速解决。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/76958.html