跳到主内容

Linux 开启 DNS over HTTPS(DoH)教程:使用 Cloudflared + systemd 实现加密 DNS,防污染、防劫持

很多朋友在使用 Linux 服务器或者 VPS 时,经常会遇到 DNS 污染、解析慢、域名无法访问等问题。其实只需要安装 Cloudflare 官方的 cloudflared,并配合 systemd 自启动,就能让整个系统通过 DNS over HTTPS(DoH)进行加密解析。

GSProber · 主机测评编辑228 阅读
很多朋友在使用 Linux 服务器或者 VPS 时,经常会遇到 DNS 污染、解析慢、域名无法访问等问题。其实只需要安…

adbfed3aa729e1d6c3200b58f1725653.png 本文将详细介绍如何在 Ubuntu、Debian、CentOS、Rocky Linux 等系统上部署 Cloudflared DoH 服务,实现系统 DNS 加密、防止 DNS 劫持,提高解析稳定性,并支持开机自动运行。整个过程仅需几分钟,新手也可以轻松完成。


Linux 使用 Cloudflared + systemd 开启 DNS over HTTPS(DoH)完整教程

DNS(域名解析)默认采用明文传输,容易受到 DNS 污染、运营商劫持以及隐私泄露等问题。

DNS over HTTPS(DoH) 会将 DNS 请求通过 HTTPS 加密传输,不仅能够提高隐私保护,还能增强解析稳定性。

本文将教你通过 Cloudflare 官方提供的 cloudflared,在 Linux 系统上搭建本地 DoH 服务,并利用 systemd 实现开机自动启动。

支持:

  • Ubuntu
  • Debian
  • CentOS
  • AlmaLinux
  • Rocky Linux
  • Fedora
  • VPS、云服务器、物理服务器

什么是 DNS over HTTPS(DoH)?

DNS over HTTPS(DoH)是一种加密 DNS 协议,它会将 DNS 查询通过 HTTPS 通道传输,从而:

✅ 防止 DNS 污染

✅ 避免运营商 DNS 劫持

✅ 提高隐私安全

✅ 使用 Cloudflare 全球 DNS 网络

✅ 提升域名解析稳定性

✅ 支持 IPv4 和 IPv6


第一步:安装 Cloudflared

下载 Cloudflare 官方客户端:

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64

赋予执行权限:

chmod +x cloudflared-linux-amd64

移动到系统目录:

sudo mv cloudflared-linux-amd64 /usr/local/bin/cloudflared

验证安装:

cloudflared --version

如果能够显示版本号,则说明安装成功。


第二步:创建 Cloudflared 配置文件

创建配置目录:

sudo mkdir -p /etc/cloudflared

创建配置文件:

sudo nano /etc/cloudflared/config.yml

写入以下内容:

proxy-dns: true

proxy-dns-upstream:
- https://1.1.1.1/dns-query
- https://1.0.0.1/dns-query

说明:

  • 1.1.1.1:Cloudflare 主 DNS
  • 1.0.0.1:Cloudflare 备用 DNS

保存退出。


第三步:创建 systemd 服务

为了让 Cloudflared 在服务器重启后自动运行,可以将其加入 systemd。

创建服务文件:

sudo nano /etc/systemd/system/cloudflared.service

写入:

[Unit]
Description=Cloudflared DNS over HTTPS
After=network-online.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/cloudflared proxy-dns
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

保存后重新加载 systemd:

sudo systemctl daemon-reload

设置开机启动:

sudo systemctl enable cloudflared

启动服务:

sudo systemctl start cloudflared

查看运行状态:

sudo systemctl status cloudflared

如果显示:

active (running)

则表示服务已经正常运行。


第四步:修改系统 DNS

编辑 DNS 配置:

sudo nano /etc/resolv.conf

将内容修改为:

nameserver 127.0.0.1

这样系统的 DNS 请求会先发送到本地 Cloudflared,再通过 HTTPS 转发到 Cloudflare DNS。


第五步:测试 DNS over HTTPS 是否生效

执行:

dig @127.0.0.1 google.com

如果能够正常返回 IP 地址,说明本地 DoH 服务工作正常。

还可以查看 cloudflared 日志:

journalctl -u cloudflared -f

实时观察 DNS 请求。


防止 resolv.conf 被覆盖

某些系统(如 Ubuntu、Debian)使用:

  • NetworkManager
  • systemd-resolved
  • DHCP Client

可能会自动修改 /etc/resolv.conf

可以锁定该文件:

sudo chattr +i /etc/resolv.conf

解除锁定:

sudo chattr -i /etc/resolv.conf

或者在 NetworkManager 中关闭自动 DNS。


常用管理命令

查看状态:

systemctl status cloudflared

启动:

systemctl start cloudflared

停止:

systemctl stop cloudflared

重启:

systemctl restart cloudflared

查看日志:

journalctl -u cloudflared -f

开机自启:

systemctl enable cloudflared

关闭自启:

systemctl disable cloudflared

Cloudflared DoH 的优势

功能 支持
DNS over HTTPS
开机自动启动
防 DNS 污染
防 DNS 劫持
Cloudflare 全球节点
IPv4 / IPv6
Ubuntu / Debian
CentOS / Rocky Linux
VPS 和物理服务器

总结

如果你经常遇到 DNS 解析异常、域名污染或者希望提升服务器的隐私和稳定性,那么使用 Cloudflared + systemd 部署 DNS over HTTPS(DoH) 是一种简单、高效且免费的解决方案。

整个配置完成后,系统所有 DNS 请求都会通过 HTTPS 加密传输,不仅能够提高解析成功率,还能有效避免 DNS 劫持,非常适合 VPS、云服务器以及家庭 Linux 主机长期使用。


FAQ

Cloudflared 支持哪些 Linux 系统?

支持 Ubuntu、Debian、CentOS、Rocky Linux、AlmaLinux、Fedora 等主流发行版。

DNS over HTTPS 有什么作用?

通过 HTTPS 加密 DNS 请求,防止 DNS 污染、劫持,并提高隐私安全。

Cloudflared 会影响服务器性能吗?

不会。Cloudflared 占用资源极低,一般只消耗几十 MB 内存。

如何查看 Cloudflared 是否正常运行?

执行:

systemctl status cloudflared

显示 active (running) 即表示运行正常。

为什么修改 resolv.conf 后会自动恢复?

这是因为 NetworkManager、systemd-resolved 或 DHCP 会重新生成配置,需要关闭自动 DNS 或锁定文件。

Cloudflared 可以配合 IPv6 使用吗?

可以,同时支持 IPv4 和 IPv6 网络环境。

教程GsDesk 是一款基于 Cloudflare Workers 与 VPS 自托管 的开源远程桌面项目,支持 WebR…

Cloudflare Workers 免费搭建开源远程桌面完整教程:无需 VPS,支持 WebRTC P2P、D1、KV、R2、浏览器远程控制、Windows 客户端和文件传输

GsDesk 是一款基于 Cloudflare Workers 与 VPS 自托管 的开源远程桌面项目,支持 WebRTC P2P 直连,服务端仅负责 API、身份认证和 WebSocket 信令,不中转桌面视频流,大幅降低服务器带宽成本。项目支持 Cloudflare 免费套餐 部署,也可以使用 Docker 在 VPS 上自托管,内置 Windows 客户端、浏览器控制端、手机远程控制,支持 8 位设备 ID、OTP 一次性密码、永久密码、Ed25519 设备认证、JWT 身份验证、文件传输、剪贴板同步、自动重连 等完整功能。

305 阅读

教程如果你一直想拥有一个属于自己的网盘,但又不想买 VPS、维护数据库或者折腾复杂环境,那么这个基于 Cloudflare…

CloudDisk:基于 Cloudflare Workers 的免费个人网盘,无需 VPS、MySQL,支持 R2+D1+KV 一键部署

如果你一直想拥有一个属于自己的网盘,但又不想买 VPS、维护数据库或者折腾复杂环境,那么这个基于 Cloudflare Workers 的开源项目 CloudDisk 值得看看。整个系统运行在 Cloudflare 免费套餐上,文件存储使用 R2,数据库使用 D1,会话数据使用 KV,不需要 MySQL,也不需要服务器。支持多用户登录、文件夹管理、分享链接、在线预览、Office 文档查看、文本在线编辑、大文件断点续传、协作者权限管理等功能。无论是个人备份、开发者存放代码文件、团队共享资料,还是搭建自己的私有网盘,都可以直接部署到 Cloudflare,一键完成,几乎零维护成本,非常适合独立开发者、个人站长和轻量团队使用。

284 阅读

教程不知道大家有没有发现,现在几乎所有业务都离不开邮箱。网站注册需要邮箱;接收验证码需要邮箱;服务器报警需要邮箱;客户联系…

2026最新Cloud Mail测评(含搭建教程):零服务器成本自建域名邮箱,Cloudflare 开源企业邮箱解决方案推荐

不知道大家有没有发现,现在几乎所有业务都离不开邮箱。网站注册需要邮箱;接收验证码需要邮箱;服务器报警需要邮箱;客户联系需要邮箱;团队协作需要邮箱;甚至很多人都希望拥有一个属于自己的企业邮箱:但现实情况是:免费邮箱广告越来越多;企业邮箱一年动辄几百甚至上千元;邮件数据完全掌握在第三方平台;多项目、多域名管理越来越混乱;自建邮件服务器配置复杂,新手根本无从下手。

337 阅读

常见问题

Linux服务器怎么开启DNS over HTTPS(DoH)防止DNS污染?

可以下载Cloudflare官方的cloudflared客户端,创建包含 proxy-dns: true 和Cloudflare上游地址(1.1.1.1、1.0.0.1)的配置文件,再通过systemd服务设置开机自启,最后把系统DNS改为127.0.0.1即可。

cloudflared 支持哪些Linux发行版?

支持Ubuntu、Debian、CentOS、Rocky Linux、AlmaLinux、Fedora等主流发行版,可用于VPS、云服务器和物理服务器。

修改 /etc/resolv.conf 后总是被自动还原怎么办?

这是因为NetworkManager、systemd-resolved或DHCP Client会自动重新生成配置,可以使用 chattr +i /etc/resolv.conf 锁定文件,或者在NetworkManager中关闭自动DNS。

怎么测试DoH是否配置生效?

执行 dig @127.0.0.1 google.com,如果能正常返回IP地址就说明本地DoH服务工作正常,也可以用 journalctl -u cloudflared -f 实时查看请求日志。

评价与回复

无需登录;审核通过后公开显示。