如何在Ubuntu Linux发行版中通过命令行配置DNS——比你想象的要简单
DNS(域名系统)是PC网络连接、搜索和安全的关键组件。如果你使用的是基于Ubuntu的Linux发行版,并且希望通过命令行来配置DNS,本文将为你提供详细指南。
为什么需要手动配置DNS?
大多数情况下,系统会自动从路由器获取DNS服务器地址,但有时你可能需要切换到更快的DNS(如Cloudflare的1.1.1.1或Google的8.8.8.8),或者出于隐私考虑使用非ISP提供的DNS。在服务器环境中,命令行配置更是必备技能。
使用Netplan配置DNS
Ubuntu从17.10版本开始使用Netplan作为网络配置工具,它通过YAML文件管理网络设置。以下是具体步骤:
找到Netplan配置文件
配置文件通常位于/etc/netplan/目录下,文件名可能是01-netcfg.yaml或50-cloud-init.yaml。使用ls /etc/netplan/列出文件。备份原文件
在修改前,建议备份:sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak编辑配置文件
使用sudo nano /etc/netplan/01-netcfg.yaml打开文件。内容通常类似:network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true在
eth0部分添加nameservers字段,指定DNS服务器地址。例如:network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true nameservers: addresses: - 1.1.1.1 - 8.8.8.8注意缩进必须正确(使用空格,不要用Tab)。
应用配置
运行sudo netplan apply使更改生效。之后你可以通过systemd-resolve --status或resolvectl status验证DNS是否生效。
关于NetworkManager
如果系统使用NetworkManager(桌面环境常见),配置方式略有不同。但Netplan也支持NetworkManager作为渲染器,只需在配置文件中将renderer改为NetworkManager即可。
注意事项
- 如果配置文件中有多个网络接口,需要为每个接口分别设置DNS。
- 某些云实例(如AWS、Azure)的初始化脚本可能会覆盖Netplan配置,需要额外处理。
- 修改后如果网络连接失败,可以使用
sudo netplan try测试配置,该命令会在超时后自动回滚。
总结
通过命令行配置DNS在Ubuntu上并不复杂,关键在于理解Netplan的YAML语法。掌握这一技能后,无论是桌面还是服务器环境,你都能灵活地调整网络设置,提升网络性能和安全性。