当前位置:首页 > 系统教程 > 正文

Ubuntu DNS综合配置与排查指南(从零掌握DNS设置与故障诊断)

Ubuntu DNS综合配置与排查指南(从零掌握DNS设置与故障诊断)

无论你是刚接触Linux的小白,还是需要快速排查网络问题的运维人员,Ubuntu DNS配置都是必须掌握的核心技能。本文将用最通俗的语言,带你完整走通DNS配置与故障排查全流程,文末还附带了DNS解析优化技巧,建议收藏!

一、DNS是什么?为什么要在Ubuntu里折腾它?

DNS(域名系统)就像互联网的电话本,把baidu.com这样的域名翻译成服务器IP地址。如果DNS配置错误,就会出现“能上微信但打不开网页”的怪现象。正确配置Ubuntu网络设置中的DNS,不仅能解决上网故障,还能提升解析速度、绕过网络劫持。

二、先看清现状:当前DNS是谁?

配置前必须先诊断,下面三个命令让你秒懂当前DNS状态:

# 方法1:最经典,查看/etc/resolv.confcat /etc/resolv.conf# 方法2:systemd-resolved专用(Ubuntu 16.04+默认)systemd-resolve --status | grep -A 4 "DNS Servers"# 方法3:NetworkManager连接信息nmcli dev show | grep DNS
Ubuntu DNS综合配置与排查指南(从零掌握DNS设置与故障诊断) DNS配置  DNS排查指南 Ubuntu网络设置 DNS解析优化 第1张

如果输出显示127.0.0.53之类的本地地址,说明systemd-resolved在接管;如果是路由器的IP,说明DNS从DHCP获取。记住这个信息,后续修改方法完全不同。

三、临时修改DNS(立刻生效,重启失效)

适合测试新DNS是否稳定:

sudo systemd-resolve --set-dns=8.8.8.8 --interface=eth0# 或者直接重写resolv.conf(不推荐,会被覆盖)echo "nameserver 114.114.114.114" | sudo tee /etc/resolv.conf

立即用nslookup google.com测试,生效即成功。重启网络或系统后失效。

四、永久修改DNS(不同工具不同玩法)

1. 如果你用NetworkManager(桌面版默认)

修改连接配置:

nmcli con mod "你的连接名" ipv4.dns "223.5.5.5 8.8.8.8"nmcli con down "你的连接名"; nmcli con up "你的连接名"

2. 如果你用netplan(Ubuntu 18.04+服务器版)

编辑/etc/netplan/01-netcfg.yaml,添加:

network:  ethernets:    eth0:      dhcp4: true      nameservers:        addresses: [114.114.114.114, 223.5.5.5]  version: 2
执行sudo netplan apply生效。

3. 针对systemd-resolved单独配置

编辑/etc/systemd/resolved.conf,取消注释并修改:

[Resolve]DNS=1.1.1.1 9.9.9.9FallbackDNS=8.8.8.8
重启服务sudo systemctl restart systemd-resolved

以上任一方法都能永久固化你的Ubuntu DNS配置,再也不用担心重启还原。

五、DNS排查指南——遇到问题怎么办?

这是本文重点DNS排查指南部分,小白也能按步骤查出元凶:

  • ping测试:ping 114.114.114.114通,ping baidu.com不通 → DNS故障
  • nslookup / dignslookup baidu.com 8.8.8.8 用指定DNS查询,能解析就是本地DNS问题
  • 端口检测telnet 8.8.8.8 53 不通说明防火墙或网络拦截了DNS(UDP 53)
  • systemd-resolved状态systemd-resolve --statistics 查看缓存命中率

常用DNS推荐:阿里223.5.5.5、腾讯119.29.29.29、Cloudflare 1.1.1.1,均可作为DNS解析优化的首选。

六、常见问题与优化技巧

Q:明明改了/etc/resolv.conf,重启又变回去了?A:这是systemd-resolved或NetworkManager在管理,请用对应方法修改,不要直接编辑该文件。

Q:如何彻底关闭systemd-resolved?A:sudo systemctl stop systemd-resolved && sudo systemctl disable systemd-resolved,然后手动编辑/etc/resolv.conf

Q:DNS解析很慢怎么办?A:清理DNS缓存:sudo systemd-resolve --flush-caches;或者更换更快、更稳定的DNS,实现DNS解析优化

七、总结

至此,你已经掌握了Ubuntu网络设置中最繁琐的DNS部分。从查看、临时修改到永久固化,再到故障排查四步法,所有操作都亲测有效。下次再遇到DNS问题,打开这篇文章,跟着命令敲一遍就能解决。记得收藏并分享给需要的小伙伴!

—— 全网最详细的Ubuntu DNS配置与排查实战