寻找纯净DNS服务器还是比较难的,那为何不自己在本机建一个?还是靠自己比较可信一些。本篇适用于Linux系统,文章所用系统为Fedora 28。
前提条件,你需要能正确通过(直连/反代)访问dns.google.com这个网站。以下命令均由root执行。
下载客户端
我们使用的是开源的Google DoH客户端Dingo,各个平台的二进制下载在Release里面。
由于我们是Linux系统,我们下载Linux AMD64版本。本文撰稿时为0.13版:
wget https://github.com/pforemski/dingo/releases/download/0.13/dingo-linux-amd64 -O /usr/local/bin/dingo chmod +x /usr/local/bin/dingo
配置Systemd Unit
在/etc/systemd/system下生成Systemd服务
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cat > /etc/systemd/system/dingo.service << EOF | |
[Unit] | |
Description=Dingo Google DoH Tunnel | |
After=network-online.target | |
[Service] | |
TimeoutStartSec=0 | |
Type=simple | |
ExecStart=/usr/local/bin/dingo -gdns:nopad -port 53 | |
Restart=on-failure | |
RestartSec=5s | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
systemctl daemon-reload |
如果你有dns.google.com的反代服务,ExecStart需要换成以下内容,替换掉中文部分。
ExecStart=/usr/local/bin/dingo -gdns:server 服务器IP -gdns:sni 服务器域名 -gdns:host 服务器域名 -port 53 -gdns:nopad
通过systemctl start dingo
启动服务后即可修改/etc/resolv.conf
至nameserver 127.0.0.1
。我们来测试下:
$ dig @127.0.0.1 google.com +short 172.217.160.78
dingo还支持edns的配置,加上-gdns:edns x.x.x.x/y
可获取x.x.x.x/y (CIDR)网段能解析出来的结果。如果你使用北京联通,可使用北京联通的网段,这样上淘宝、优酷等带CDN的大网站解析出来的就依然是针对你本地网络优化的IP。
我们尝试用上海电信114.80.0.0/12启用edns后解析出来www.taobao.com
的地址:
% nslookup www.taobao.com Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: www.taobao.com canonical name = www.taobao.com.danuoyi.tbcache.com. Name: www.taobao.com.danuoyi.tbcache.com Address: 114.80.174.46 Name: www.taobao.com.danuoyi.tbcache.com Address: 101.227.209.253 Name: www.taobao.com.danuoyi.tbcache.com Address: 101.227.209.252 Name: www.taobao.com.danuoyi.tbcache.com Address: 114.80.174.47
通过查询,这4个IP均为上海电信。
我们再采用杭州移动的IP段218.205.48.0/20来测试:
% nslookup www.taobao.com Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: www.taobao.com canonical name = www.taobao.com.danuoyi.tbcache.com. Name: www.taobao.com.danuoyi.tbcache.com Address: 211.138.122.237 Name: www.taobao.com.danuoyi.tbcache.com Address: 218.205.84.251 Name: www.taobao.com.danuoyi.tbcache.com Address: 218.205.84.250 Name: www.taobao.com.danuoyi.tbcache.com Address: 211.138.122.253
查询可知这4个IP均为淘宝在杭州移动的CDN节点。
记得设置开机启动以及修改网卡DHCP的默认DNS服务器地址