使用 cloudflared 和 systemd 在 Linux 上设置 DNS over HTTPS (DoH)
Linux 上使用 systemd 设置 DNS over HTTPS (DoH) 的教程!通过利用 systemd,我们可以确保在启动时自动启动提供 DoH 服务的 cloudflared。
第一步:安装 cloudflared
- 首先,下载 cloudflared:
1
| wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
|
- 使二进制文件可执行并移至合适的目录:
1 2
| chmod +x cloudflared-linux-amd64 sudo mv cloudflared-linux-amd64 /usr/local/bin/cloudflared
|
第二步:配置 cloudflared
- 创建 cloudflared 的配置目录:
1
| sudo mkdir /etc/cloudflared
|
- 创建配置文件:
1
| sudo nano /etc/cloudflared/config.yml
|
- 填入以下内容:
1 2 3 4
| proxy-dns: true proxy-dns-upstream: - https://1.1.1.1/dns-query - https://1.0.0.1/dns-query
|
保存并退出。
第三步:将 cloudflared 设置为 systemd 服务
- 创建 systemd 服务文件:
1
| sudo nano /etc/systemd/system/cloudflared.service
|
- 填入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [Unit] Description=cloudflared DNS over HTTPS 代理 After=syslog.target network-online.target
[Service] Type=simple User=root ExecStart=/usr/local/bin/cloudflared proxy-dns Restart=on-failure RestartSec=10 KillMode=process
[Install] WantedBy=multi-user.target
|
保存并退出。
- 启用并开始服务:
1 2
| sudo systemctl enable cloudflared sudo systemctl start cloudflared
|
第四步:更新系统 DNS 设置
- 编辑
resolv.conf
:
1
| sudo nano /etc/resolv.conf
|
- 修改或添加:
这将使用 cloudflared 代理作为系统的 DNS 服务器。
第五步:验证 DoH 配置
检查 DNS 请求是否通过 HTTPS:
1
| dig @127.0.0.1 example.com
|
注意:使用 NetworkManager 或其他网络工具的系统可能会覆盖 /etc/resolv.conf
。确保配置这些工具以防止此类更改,或使 resolv.conf
不可变。
我们希望此指南帮助您在 Linux 上使用 cloudflared 和 systemd 设置了 DNS over HTTPS。如果遇到任何问题,请查阅相关文档或寻求技术支持。