树莓派Ubuntu20.04静态IP配置后DNS解析失败的排查与修复

张开发
2026/4/8 22:35:56 15 分钟阅读

分享文章

树莓派Ubuntu20.04静态IP配置后DNS解析失败的排查与修复
1. 静态IP配置后的典型症状刚给树莓派刷完Ubuntu 20.04系统配置静态IP本来是为了远程连接更稳定结果发现浏览器打不开网页终端里ping百度也提示暂时无法解析域名。右上角WiFi图标上那个黄色问号特别扎眼——这场景我太熟悉了去年给实验室二十多台树莓派部署集群时就反复遇到。这种DNS解析失败的问题其实很典型。当你把网络从DHCP改成静态IP时系统会清空原有的DNS配置。就好比搬家时换了新地址静态IP但忘记告诉快递公司新的收件位置DNS服务器自然收不到包裹网络数据包。我见过不少新手在树莓派论坛求助八成都是这个原因。2. 快速诊断网络状态先别急着改配置咱们用几个命令看看问题到底出在哪。打开终端依次输入ping -c 4 114.114.114.114 nslookup baidu.com systemd-resolve --status第一个命令直接ping国内公共DNS服务器如果能通说明物理连接正常。第二个测试域名解析功能通常会返回connection timed out。第三个命令我最爱用它能显示当前使用的DNS服务器列表静态IP配置后这里往往是空的。有次帮学弟调试时发现他的树莓派能ping通IP但所有网站都打不开。用systemd-resolve --status一看DNS服务器栏居然填着本地路由器的192.168.1.1而那个路由器根本没开启DNS转发功能。这种隐蔽问题不查根本发现不了。3. 手动配置DNS服务器现在进入正题给树莓派添加可靠的DNS服务器。推荐用国内这几个114.114.114.114电信223.5.5.5阿里180.76.76.76百度修改配置文件有两种方式3.1 图形界面配置法适合刚接触Linux的新手点击右上角网络图标→有线/无线连接设置找到IPv4标签页在DNS栏输入114.114.114.114,223.5.5.5注意用英文逗号分隔点击应用后重启网络服务3.2 命令行配置法我更推荐这种方式特别是需要批量配置多台设备时。用nano编辑netplan配置sudo nano /etc/netplan/50-cloud-init.yaml在对应网卡下添加nameservers段完整配置示例network: version: 2 wifis: wlan0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [114.114.114.114, 223.5.5.5] access-points: 你的WiFi名: password: 你的密码这里有个坑要注意YAML对缩进极其敏感建议用空格而不是Tab键。去年有次凌晨三点调试就因为在冒号后面少了个空格折腾了半小时才发现问题。4. 验证与故障排除配置完别急着庆祝先做三个验证sudo netplan apply ping -c 3 baidu.com systemd-resolve --status如果还是解析失败试试这几个杀手锏检查/etc/resolv.conf是否被覆盖有时候NetworkManager会捣乱临时禁用IPv6sudo sysctl -w net.ipv6.conf.all.disable_ipv61清除DNS缓存sudo systemd-resolve --flush-caches有次遇到个诡异情况配置完全正确但就是解析失败。后来发现是系统时间不同步导致SSL证书验证失败用sudo timedatectl set-ntp true同步时间后立即恢复正常。5. 高级技巧与优化建议想让树莓派网络更稳定分享几个实战经验多DNS负载均衡在nameservers里添加3-4个不同运营商的DNS系统会自动选择最快的本地缓存加速安装dnsmasq做本地DNS缓存sudo apt install dnsmasq sudo systemctl enable dnsmasq备用连接方案给USB网卡配置第二套静态IP当WiFi故障时自动切换最近给公司部署的树莓派工控系统就用了这套方案半年多从没出现过网络故障。特别是dnsmasq能把常用域名的解析时间从200ms降到20ms以内。6. 常见问题解决方案Q1修改配置后网络直接断了怎么办A紧急恢复方法sudo netplan --debug apply journalctl -xe查看具体报错信息最常见的是YAML语法错误Q2校园网/企业网需要特殊配置吗A需要额外配置802.1X认证建议先用DHCP连接抓包分析认证流程Q3为什么偶尔还是会出现解析失败A可能是MTU值问题尝试sudo ifconfig wlan0 mtu 1400记得有次在机场调试树莓派就是MTU值过大导致某些网站打不开。把1500改成1400立竿见影这个经验后来写进了我们实验室的运维手册。

更多文章