Ubuntu系统中,更改DNS并重启网络是解决网络连接问题、提升网络访问速度或增强网络安全性的常见操作,以下是一份详细的指南,包括多种方法、步骤说明以及注意事项。
准备工作
-
确认当前网络配置:在更改DNS之前,建议先了解当前的网络配置,包括网络接口名称(如
eth0
、wlan0
等)和当前的DNS设置,可以使用命令ifconfig
或ip a
查看网络接口信息,使用cat /etc/resolv.conf
查看当前DNS服务器地址。 -
选择新的DNS服务器:选择一个可靠的DNS服务器是关键,常用的公共DNS服务器包括Google的8.8.8.8和8.8.4.4,Cloudflare的1.1.1.1,以及OpenDNS的208.67.222.222和208.67.220.220,根据个人需求选择合适的DNS。
更改DNS的方法
修改Netplan配置文件
适用于Ubuntu 20.04及以后的版本,因为Netplan是这些版本的默认网络管理工具。
步骤 | 命令/操作 | 说明 |
---|---|---|
1 | sudo nano /etc/netplan/01netcfg.yaml |
打开Netplan配置文件进行编辑,文件名可能因系统而异,请根据实际情况调整。 |
2 | 修改或添加nameservers 部分 |
在ethernets 或wifis 下找到对应的网络接口,添加或修改nameservers 字段,yaml<br>network:<br> version: 2<br> renderer: networkd<br> ethernets:<br> eth0:<br> dhcp4: yes<br> nameservers:<br> addresses: [8.8.8.8, 8.8.4.4]<br> |
3 | sudo netplan apply |
应用Netplan配置更改。 |
使用NetworkManager命令行工具
适用于所有支持NetworkManager的Ubuntu版本。
步骤 | 命令/操作 | 说明 |
---|---|---|
1 | nmcli con show |
查看当前网络连接列表,确定要修改的连接名称(如Wired connection 1 )。 |
2 | nmcli con mod "连接名称" ipv4.dns "8.8.8.8 8.8.4.4" |
将连接名称 替换为实际的连接名称,设置新的DNS服务器地址。 |
3 | nmcli con up "连接名称" |
重新启用网络连接以使更改生效。 |
直接修改/etc/resolv.conf文件
此方法简单快捷,但更改是临时的,系统重启后会被覆盖,适合快速测试或临时更改。
步骤 | 命令/操作 | 说明 |
---|---|---|
1 | sudo nano /etc/resolv.conf |
打开DNS配置文件进行编辑。 |
2 | 添加或修改nameserver 行 |
bash<br>nameserver 8.8.8.8<br>nameserver 8.8.4.4<br> |
3 | 保存并退出 | 按Ctrl + O 保存,按Ctrl + X 退出编辑器。 |
重启网络服务
更改DNS后,通常需要重启网络服务以使更改生效,可以使用以下命令之一重启网络:
sudo systemctl restart systemdnetworkd
:如果系统使用systemdnetworkd
作为网络管理服务。sudo systemctl restart networkmanager
:如果系统使用NetworkManager
作为网络管理服务。sudo service networking restart
:对于较旧的Ubuntu版本,可能需要使用此命令。
验证DNS更改
更改DNS后,应验证更改是否成功,可以使用以下命令检查当前的DNS服务器设置:
systemdresolve status
:显示当前DNS服务器设置和其他解析器相关信息。nmcli dev show | grep IP4.DNS
:如果使用NetworkManager,此命令可以显示当前连接的DNS服务器地址。
注意事项
-
备份配置文件:在修改任何配置文件之前,建议先备份原文件,以防万一,使用
sudo cp /etc/netplan/01netcfg.yaml /etc/netplan/01netcfg.yaml.bak
备份Netplan配置文件。 -
确保DNS服务器可用:选择的DNS服务器应确保可用且响应迅速,如果DNS服务器不可达,将导致网络解析失败。
-
防火墙设置:确保防火墙设置允许DNS流量通过,如果使用的是UFW(Uncomplicated Firewall),可以使用
sudo ufw allow out to any port 53
允许DNS流量。 -
避免重复DNS条目:在配置文件中避免重复添加相同的DNS服务器地址,这可能导致不必要的延迟或解析问题。
相关问题与解答
问题一:更改DNS后,为什么网络仍然无法正常工作?
解答:更改DNS后网络仍然无法正常工作可能由多种原因造成,确保你输入的DNS服务器地址是正确的,并且这些服务器目前是可用的,你可以使用ping
命令来测试DNS服务器的连通性,例如ping 8.8.8.8
,检查你的网络接口是否正确配置了新的DNS设置,网络接口的配置可能没有正确应用新的DNS设置,或者存在其他网络配置问题,还要确保你的防火墙或安全软件没有阻止DNS流量或相关的网络通信,如果以上都正常,但网络仍然有问题,可能是网络硬件(如路由器、网卡等)或网络环境本身的问题,需要进一步排查。
问题二:如何恢复Ubuntu系统的默认DNS设置?
解答:要恢复Ubuntu系统的默认DNS设置,你可以按照之前更改DNS的步骤反向操作,如果你之前是通过修改Netplan配置文件来更改DNS的,那么只需将Netplan配置文件中的nameservers
部分恢复为原来的设置(通常是注释掉或删除自定义的DNS条目),然后运行sudo netplan apply
来应用更改,如果你之前是通过NetworkManager命令行工具来更改DNS的,可以使用类似的命令将DNS设置恢复为自动获取(通常是删除自定义的DNS条目),然后重新启用网络连接,如果你之前只是临时修改了/etc/resolv.conf
文件,并且没有保存为永久更改,那么只需不进行任何操作,系统重启后就会自动恢复默认的DNS设置(通常是从DHCP服务器获取的DNS地址或系统预设的DNS地址),在恢复默认设置之前,最好先备份当前的DNS配置,以便在需要时