了解DNS配置文件相关背景
在Ubuntu系统中,DNS配置文件主要有/etc/resolv.conf和通过Netplan或NetworkManager管理的相关配置文件。/etc/resolv.conf文件传统上用于存储DNS服务器信息,但在较新的Ubuntu版本(从18.04开始)中,它由systemdresolved服务动态生成和管理,直接修改该文件的更改可能在重启后失效。
通过Netplan修改DNS配置(适用于Ubuntu 20.04及以后)
| 步骤 | 操作详情 |
|---|---|
| 打开终端 | 按下Ctrl + Alt + T组合键打开终端 |
| 编辑Netplan配置文件 | 通常位于/etc/netplan/目录下,文件名一般为*.yaml,使用ls命令列出该目录下的文件确定具体文件名,例如假设文件名为01netcfg.yaml,使用以下命令编辑:sudo nano /etc/netplan/01netcfg.yaml |
| 修改DNS设置 | 在文件中查找network部分下的ethernets(或有线网络接口名称,如enp0s3等),在对应的配置块中添加或修改nameservers字段,指定DNS服务器的IP地址,例如将DNS服务器设置为Google的公共DNS服务器(8.8.8.8和8.8.4.4):yaml<br>network:<br> version: 2<br> ethernets:<br> eth0:<br> dhcp4: yes<br> nameservers:<br> addresses: [8.8.8.8, 8.8.4.4]<br> |
| 保存并退出编辑器 | 按Ctrl + O保存文件,按Ctrl + X退出nano编辑器 |
| 应用更改 | 运行命令sudo netplan apply使配置生效 |
通过NetworkManager修改DNS配置(适用于有图形界面且安装NetworkManager的情况)
(一)使用图形界面
- 点击屏幕右上角的网络图标,然后选择“设置”或“Network Settings”。
- 在左侧面板中选择要修改DNS设置的网络接口(如有线连接或无线连接)。
- 选择“IPv4”标签,找到“DNS”部分,将DNS设置从“自动”改为“手动”,然后输入新的DNS服务器地址,例如输入8.8.8.8和8.8.4.4。
- 点击“应用”按钮保存更改。
(二)使用命令行工具nmcli
- 查看网络连接名称:运行命令
nmcli connection show,找到你想要修改DNS设置的网络连接名称,Wired connection 1”。 - 修改DNS设置:运行以下命令,将DNS服务器设置为8.8.8.8和114.114.114.114,并重新连接网络:
nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8,114.114.114.114" nmcli con down "Wired connection 1"; nmcli con up "Wired connection 1"
修改/etc/systemd/resolved.conf文件(全局静态DNS解析器设置)
| 步骤 | 操作详情 |
|---|---|
| 打开终端 | 按下Ctrl + Alt + T组合键打开终端 |
编辑resolved.conf文件 |
使用以下命令编辑文件:sudo nano /etc/systemd/resolved.conf |
| 修改DNS设置 | 在[Resolve]节下添加或修改以下内容以指明首选和备用DNS服务器地址(这里以8.8.8.8和114.114.114.114为例):ini<br>[Resolve]<br>DNS=8.8.8.8 114.114.114.114<br>FallbackDNS=<br>Domains=~.<br> |
| 保存并退出编辑器 | 按Ctrl + O保存文件,按Ctrl + X退出nano编辑器 |
| 刷新解析服务缓存并激活新参数 | 运行以下命令:sudo systemctl restart systemdresolved.service<br>sudo ln sf /run/systemd/resolve/stubresolv.conf /etc/resolv.conf |
验证DNS设置是否生效
无论使用哪种方法修改DNS设置,都可以使用以下命令进行验证:
- 查看
/etc/resolv.conf:运行命令cat /etc/resolv.conf,检查文件中显示的DNS服务器地址是否与你设置的一致。 - 使用
nslookup或dig命令测试域名解析:例如运行nslookup example.com,如果返回了与所配置的DNS服务器相关的IP地址,则说明DNS设置已生效。
相关问题与解答
问题1:修改DNS设置后,网络连接出现问题怎么办?
解答:首先检查DNS服务器地址是否正确且可访问,你可以尝试使用其他已知可用的DNS服务器地址进行替换,如Google的公共DNS(8.8.8.8和8.8.4.4)或国内的公共DNS(如114.114.114.114),如果问题仍然存在,可能是网络配置的其他部分出现问题,可以检查网络接口的配置、网关设置等,确保防火墙没有阻止DNS相关的流量(UDP端口53)。
问题2:如何在不重启系统的情况下使DNS设置更改立即生效?
解答:如果是通过Netplan修改的DNS设置,运行sudo netplan apply命令即可应用更改,如果是通过修改/etc/systemd/resolved.conf文件修改的DNS设置,运行sudo systemctl restart systemdresolved.service和sudo ln sf /run/systemd/resolve/stubresolv.conf /etc/resolv.conf命令来刷新解析服务缓存并激活新参数,使更改立即生效,如果是通过NetworkManager的命令行工具nmcli修改的DNS设置,在修改完成后已经重新连接了网络,此时DNS设置应该已经生效。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/231230.html