导语:当你面对一台没有图形界面的Ubuntu机器(远程服务器、家用NAS或无法进入桌面的笔记本),需要把DNS切换到更快更安全的公共解析(如Cloudflare的1.1.1.1/1.0.0.1)时,如何在命令行下快速完成?本文给出可复制的实操手册:只改一个Netplan文件,五步完成,并附常见故障排查与回滚命令。
为什么要学这招:换用稳定的公共DNS可以加快域名解析、规避运营商劫持或错误配置,并提升隐私安全。对远程维护、自动化部署以及没有桌面的服务器场景尤为重要。无论是在调试Apple iPhone17配合本地服务、给三星彩屏测试环境或华为路由适配时,掌握命令行修改DNS都很实用。
先认识Netplan:Netplan是Ubuntu系(桌面与服务器)用于描述网络配置的工具,配置文件为YAML格式,位于 /etc/netplan,最终由NetworkManager或systemd-networkd执行。YAML对缩进极为敏感,报错多因缩进不对。
操作前检查与准备:先查看目录并备份原文件: cd /etc/netplan && ls -l sudo cp 00-netplan.yaml 00-netplan.yaml.bak (按实际文件名替换) 如果桌面环境在用NetworkManager且需让Netplan接管DNS,可在 /etc/NetworkManager/NetworkManager.conf 加入: [dns] dns=none rc-manager=unmanaged 然后重启:sudo systemctl restart NetworkManager
实操:五步把DNS换成1.1.1.1/1.0.0.1
验证与诊断: ping google.com (确认能解析并连通) resolvectl status | grep "DNS" (查看生效地址) 若仍显示旧地址,尝试重启NetworkManager或整机:sudo systemctl restart NetworkManager 常见错误大多为YAML缩进问题,返回编辑器修正后重试。
回滚与进阶:回滚命令:sudo cp 00-netplan.yaml.bak 00-netplan.yaml && sudo netplan apply。需要加密解析(DNS over TLS/HTTPS)时,可配置systemd-resolved或使用cloudflared、dnscrypt-proxy等工具。在云端或批量环境,可通过cloud-init或脚本替换netplan文件并调用 netplan apply。
速查命令集(可复制): cd /etc/netplan ls -l sudo cp 00-netplan.yaml 00-netplan.yaml.bak sudo nano 00-netplan.yaml ← 添加 nameservers 段 sudo netplan apply ping google.com resolvectl status | grep "DNS"
阅读与实操时间约10–20分钟。建议先在非关键机器上练习一次,熟悉YAML缩进与netplan apply的报错提示,再在生产环境中应用。