windows加密DNS请求

在之前的微软更新公告中,windows 21H1加入了基于HTTPS的DNS请求(DOH)这一功能,目前来看是要推迟到21H2版本了,可以使用以下方法暂时在21H1非预览版中代替DOH功能。

配置

  1. 从https://github.com/cloudflare/cloudflared/releases下载对应系统的版本
  2. 新建一个config.yaml文件,文件内容如下
proxy-dns: true
proxy-dns-address: 0.0.0.0   # 监听全部IP,可以给内网其他客户端提供加密的DNS服务,需要关闭防火墙
proxy-dns-upstream:
  - https://1.1.1.1/dns-query
  - https://1.0.0.1/dns-query

其他DOH服务器列表可以参考这里:DNS over HTTPS – 维基百科,自由的百科全书 

启动

管理员权限运行powershell,运行以下命令启动服务端

cloudflared-windows-amd64.exe --config PATH\config.yaml

启动后在IP地址设置中设置DNS为127.0.0.1,并参考以下“测试”章节对DNS流量进行测试

测试

使用WIN10自带的Packetmon 工具分析网络流量,验证当前DNS请求状态是否加密

# 管理员权限打开powershell
# 重置网络流量分析
pktmon filter remove

# 过滤普通DNS服务器的53端口流量
pktmon filter add -p 53
# 开始抓包
pktmon start --etw -m real-time

 

随便ping几个不常见的域名,如果服务生效,Packetmon抓不到任何请求

安装服务

将cloudflared-windows-amd64.exe复制到system32文件夹下,并在管理员权限的powershell中执行以下命令安装服务

cloudflared-windows-amd64.exe service install

安装完成后,会看到

2:47PM INF Installing Argo Tunnel Windows service 2:47PM INF Argo Tunnel agent service is installed windowsServiceName=Cloudflared

在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cloudflared中编辑ImagePath项为上面命令行启动时的命令

保存后,在powershell中执行以下命令启动服务(安装好后开机会自动启动)

Start-Service Cloudflared

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注