返回列表 发布新帖
查看: 5|回复: 0

一键修改 Ubuntu DNS 教程(适用于 18.04 / 20.04 / 22.04 / 24.04)

发表于 昨天 17:11 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在现代 Ubuntu 系统中(含桌面与服务器),DNS 通常由 systemd-resolved 管理。手动修改 DNS 有多种方式,但为了快速、稳定、自动化,我们可以通过 一键脚本 完成 DNS 设置。
本教程将介绍:
  • DNS 修改原理(简单带过)
  • 一键修改 DNS 的脚本
  • 一键恢复默认 DNS 的脚本
  • 验证 DNS 是否生效
一、Ubuntu 的 DNS 管理方式简介
Ubuntu 18.04 之后默认使用 systemd-resolved,DNS 配置主要在:
/etc/systemd/resolved.conf
而实际生效的 DNS 会写入:
/run/systemd/resolve/resolv.conf
如果系统符号链接正常,/etc/resolv.conf 指向上述文件。
二、一键修改 DNS 脚本
以下脚本适用于 Ubuntu 18.04/20.04/22.04/24.04
支持常见 DNS(如 8.8.8.8、1.1.1.1、114.114.114.114 等)
创建脚本:change-dns.sh
#!/bin/bash
# 你要设置的 DNS,可自行修改
DNS1="8.8.8.8"
DNS2="1.1.1.1"
echo "正在配置 DNS..."
# 修改 resolved.conf
sudo bash -c "cat > /etc/systemd/resolved.conf" <<EOF
[Resolve]
DNS=$DNS1 $DNS2
FallbackDNS=114.114.114.114
DNSStubListener=yes
EOF
# 重启服务
sudo systemctl restart systemd-resolved
# 确保 resolv.conf 是正确的链接
if [ ! -L /etc/resolv.conf ]; then
    sudo mv /etc/resolv.conf /etc/resolv.conf.bak
    sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
fi
echo "DNS 修改完成!当前 DNS:"
systemd-resolve --status | grep "DNS Servers" -A2
使用方法
  1. chmod +x change-dns.sh
复制代码
  1. sudo ./change-dns.sh
复制代码
脚本执行后 DNS 会立即生效。
三、一键恢复默认 DNS(还原系统自动获取)
创建 restore-dns.sh
#!/bin/bash
echo "正在恢复默认 DNS..."
sudo bash -c "cat > /etc/systemd/resolved.conf" <<EOF
[Resolve]
# 恢复默认,不指定 DNS,让系统自动获取
EOF
sudo systemctl restart systemd-resolved
echo "DNS 已恢复为系统默认!"
systemd-resolve --status | grep "DNS Servers" -A2
使用:
  1. chmod +x restore-dns.sh
复制代码
  1. sudo ./restore-dns.sh
复制代码
四、如何验证 DNS 是否修改成功?
1. 查看系统 DNS 配置
systemd-resolve --status | grep "DNS Servers" -A2
2. 查看 /etc/resolv.conf
cat /etc/resolv.conf
应看到你设置的 DNS 服务器。
3. 使用 dig 或 nslookup 测试
  1. dig google.com
复制代码

  1. nslookup baidu.com
复制代码
返回结果正常即可。
五、常用 DNS 推荐
名称地址
Google DNS8.8.8.8 / 8.8.4.4
Cloudflare1.1.1.1 / 1.0.0.1
阿里 DNS223.5.5.5 / 223.6.6.6
114 DNS114.114.114.114 / 114.114.115.115
六、总结
通过本文你能学到:
  • Ubuntu DNS 的基本原理
  • 如何用脚本一键修改 DNS
  • 如何恢复默认 DNS
  • 如何验证 DNS 是否生效
脚本方式简单、安全、可重复使用,非常适合服务器环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.107430 second(s), 6 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表