问题:在Ubuntu系统中,如何正确修改NDS(假设为DNS)配置文件以实现域名解析设置?常见的方法是编辑`/etc/resolv.conf`或使用`netplan`、`NetworkManager`等工具进行配置。许多用户在修改后发现配置未生效或重启后恢复默认,这通常是由于系统服务管理机制导致的配置覆盖问题。请结合不同网络管理工具,分析Ubuntu中修改DNS配置的正确方法及常见注意事项。
1条回答 默认 最新
我有特别的生活方法 2025-10-22 00:11关注Ubuntu系统中正确配置DNS的方法与注意事项
在Ubuntu系统中,域名解析(DNS)的配置看似简单,但常常因为网络管理工具的不同、服务覆盖机制的存在而导致配置未生效或重启后恢复默认。本文将从基础配置方式入手,逐步深入到不同网络管理工具的使用方法,并结合常见问题进行分析。
1. 基础:手动修改
/etc/resolv.conf/etc/resolv.conf是Linux系统中用于定义DNS服务器的配置文件。一个最简单的配置如下:nameserver 8.8.8.8 nameserver 8.8.4.4- 优点:直接、直观;适合临时调试。
- 缺点:易被其他网络服务覆盖,重启后可能失效。
2. 深入:理解网络管理工具对DNS的影响
Ubuntu 系统根据版本和安装方式,可能使用不同的网络管理工具,这些工具会动态生成或覆盖
/etc/resolv.conf文件。网络管理工具 适用场景 影响DNS的方式 netplan Ubuntu Server 17.10+ 或使用YAML配置的系统 通过应用层设置自动更新resolv.conf NetworkManager 桌面版Ubuntu或移动设备 接管DNS配置并动态更新 systemd-resolved 默认启用,尤其在较新版本中 提供本地DNS缓存服务,影响全局DNS行为 3. 实践:基于不同网络管理工具配置DNS
3.1 使用 netplan 配置 DNS
适用于 Ubuntu Server 版本,配置文件一般位于
/etc/netplan/目录下,例如01-netcfg.yaml:network: version: 2 ethernets: enp0s3: dhcp4: no addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4配置完成后执行:
sudo netplan apply3.2 使用 NetworkManager 配置 DNS
桌面环境推荐使用图形界面配置,也可使用命令行工具
nmtui或nmcli:sudo nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 8.8.4.4"3.3 使用 systemd-resolved 配置 DNS
编辑配置文件
/etc/systemd/resolved.conf:[Resolve] DNS=8.8.8.8 FallbackDNS=8.8.4.4 Domains=~.然后重启服务:
sudo systemctl restart systemd-resolved4. 常见问题与解决方案
- DNS配置修改后未生效?
检查是否被systemd-resolved或NetworkManager覆盖,查看当前 resolv.conf 内容是否为软链接。 - 重启后配置丢失?
不要直接编辑/etc/resolv.conf,应通过上层工具(如 netplan、NetworkManager)进行配置。 - 如何确认当前使用的DNS?
使用命令systemd-resolve --status查看当前解析状态。
5. 进阶:配置流程图与建议
graph TD A[开始] --> B{是否使用netplan?} B -->|是| C[编辑netplan配置文件] B -->|否| D{是否使用NetworkManager?} D -->|是| E[使用nmtui或nmcli配置] D -->|否| F[检查systemd-resolved状态] F --> G[编辑resolved.conf并重启服务] C --> H[执行netplan apply] E --> I[重启NetworkManager] G --> J[重启resolved服务] H --> K[验证DNS解析] I --> K J --> K本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报