You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Debian 12 DNS配置咨询:如何替换VPS默认解析器为公共DNS(如1.1.1.1)

Debian 12 DNS配置咨询:如何替换VPS默认解析器为公共DNS(如1.1.1.1)

嘿,我完全懂你这种找不到正确配置入口的困惑!Debian 12默认切换到systemd-resolved来管理DNS解析了,所以原来直接编辑/etc/resolv.conf的老方法行不通——那个文件现在是resolved自动生成的 stub 文件,手动改了也会被覆盖。下面给你两种靠谱的解决方案,按需选就行:

方法一:用resolvectl命令(推荐,最贴合Debian 12默认环境)

这是systemd-resolved官方推荐的配置方式,操作简单:

1. 临时生效(重启后会恢复默认)

先确认你的VPS网络接口名(比如eth0ens3,可以用ip link show命令查看),然后运行:

sudo resolvectl dns <你的接口名> 1.1.1.1 1.0.0.1

如果想给所有接口统一设置,把接口名换成global就行:

sudo resolvectl dns global 1.1.1.1 1.0.0.1

2. 永久生效(重启后保持设置)

编辑systemd-resolved的主配置文件:

sudo nano /etc/systemd/resolved.conf

找到[Resolve]区块,把注释掉的DNS行解开,改成你要的公共DNS:

[Resolve]
DNS=1.1.1.1 1.0.0.1
# 可选:可以再加备用DNS
# FallbackDNS=8.8.8.8 8.8.4.4

保存退出后,重启服务让配置生效:

sudo systemctl restart systemd-resolved

方法二:用resolvconf(适合习惯老Debian配置方式的用户)

如果你还是偏好原来的resolvconf workflow,也可以这么做:

  1. 先确保安装了resolvconf包(Debian 12默认可能没装):
sudo apt update && sudo apt install resolvconf
  1. 编辑resolvconf的头部配置文件,这个文件里的内容会被自动添加到生成的/etc/resolv.conf开头:
sudo nano /etc/resolvconf/resolv.conf.d/head

添加两行公共DNS:

nameserver 1.1.1.1
nameserver 1.0.0.1
  1. 强制更新resolvconf配置:
sudo resolvconf -u

验证配置是否生效

不管用哪种方法,都可以通过以下命令确认DNS是否已经切换成功:

  • 查看当前DNS服务器:resolvectl status(找DNS Servers字段)
  • 测试解析:dig example.com(看输出里的SERVER字段是不是1.1.1.1)

备注:内容来源于stack exchange,提问作者Cherona

火山引擎 最新活动