在玩海外 VPS(如 ClawVPS)时,默认的 DNS 往往由机房提供。但在实际使用中,切换到 阿里云公共 DNS 往往能获得更稳定的解析速度,特别是在处理国内 API 调用或资源请求时。
本文将介绍在现代 Linux 系统中(基于 systemd-resolved)修改 DNS 的标准做法。
🌐 为什么不直接修改 /etc/resolv.conf?
在现代 Linux 发行版(如 Ubuntu 20.04+、Debian 11+)中,/etc/resolv.conf 只是一个软链接。
如果你直接修改它,系统重启或网络重启后,你的修改会被自动覆盖。因此,我们需要通过修改 systemd-resolved 的配置文件来从根源解决问题。
1️⃣ 编辑 systemd-resolved 配置文件
使用 root 权限打开配置文件:
1 | sudo nano /etc/systemd/resolved.conf |
在 [Resolve] 下方取消注释并填入阿里 DNS。这里的 100.100.2.136 是阿里典型的内网/公共解析地址,具有极高的稳定性。
1 | [Resolve] |
- DNS:首选阿里 DNS。
- FallbackDNS:备用 DNS,当首选不可用时,系统会尝试阿里公共 DNS (223.5.5.5) 或 Google DNS。
2️⃣ 应用配置并重启服务
修改完配置文件后,需要重启解析服务来应用更改:
1 | # 重启服务 |
3️⃣ 验证修改结果
执行以下命令查看当前生效的 DNS 服务器:
1 | resolvectl status |
在输出结果的 Global 或对应的网卡条目下,你应该能看到:DNS Servers: 100.100.2.136 100.100.2.138
🚀 进阶:一键修改脚本(懒人专用)
如果你有大量机器需要修改,可以保存以下脚本直接运行:
1 | cat <<EOF | sudo tee /etc/systemd/resolved.conf |
⚠️ 常见问题排查
- 修改后无法解析域名?
请检查是否开启了严格的防火墙规则。确保 UDP/TCP 53 端口 允许出站流量。 - Ping 不通 100.100.2.136?
部分非阿里生态的 VPS 无法访问其内网 DNS,此时请将 DNS 更换为阿里的公共地址:223.5.5.5和223.6.6.6。 - 生效慢?
执行sudo systemctl daemon-reload后再重启systemd-resolved。
🎉 总结
DNS 是网络访问的“指路牌”。通过将 ClawVPS 的 DNS 迁移至阿里云,可以有效降低解析延迟,并规避部分海外 DNS 对国内域名解析不准的问题。