大多数因特网服务依赖于 DNS 而工作,一旦 DNS 出错,就无法连接 Web 站点,电子邮件的发送也会中止。
- 推荐自建DNS项目
由于我设备是树莓派,安装的是Arch Linux ARM,所以直接用官方库里的 DNSCrypt-Proxy
文中我并没有增加dnsmasq作为53端口解析服务器,而是直接把DNSCrypt-Proxy直接解析到53端口,取消了dnsmasq缓存的优势,如果在意速度的可以自行加上
sudo pacman -S dnscrypt-proxy
# 禁用其他占用53端口的服务
ss -lp 'sport = :domain' # 查看占用 53 端口的服务
sudo systemctl stop systemd-resolved.service # 禁用
sudo systemctl enable dnscrypt-proxy # 注册为开机启动
sudo systemctl start dnscrypt-proxy # 启动服务
sudo systemctl status dnscrypt-proxy # 查看运行状态
如果以上步骤没有报错,可以看下如下信息:
[alarm@alarmpi ~]$ sudo systemctl status dnscrypt-proxy
[sudo] password for alarm:
* dnscrypt-proxy.service - DNSCrypt-proxy client
Loaded: loaded (/usr/lib/systemd/system/dnscrypt-proxy.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2019-11-08 09:31:49 CST; 21min ago
Docs: https://github.com/jedisct1/dnscrypt-proxy/wiki
Main PID: 13279 (dnscrypt-proxy)
Tasks: 13 (limit: 2203)
Memory: 15.2M
CGroup: /system.slice/dnscrypt-proxy.service
`-13279 /usr/bin/dnscrypt-proxy --config /etc/dnscrypt-proxy/dnscrypt-proxy.toml
Nov 08 09:36:26 alarmpi dnscrypt-proxy[13279]: - 351ms dnswarden-doh2
Nov 08 09:36:26 alarmpi dnscrypt-proxy[13279]: - 386ms d0wn-tz-ns1
Nov 08 09:36:26 alarmpi dnscrypt-proxy[13279]: - 407ms publicarray-au2-doh
Nov 08 09:36:26 alarmpi dnscrypt-proxy[13279]: - 602ms doh.ffmuc.net
Nov 08 09:36:26 alarmpi dnscrypt-proxy[13279]: - 939ms a-and-a
Nov 08 09:36:26 alarmpi dnscrypt-proxy[13279]: - 1646ms scaleway-fr
Nov 08 09:36:26 alarmpi dnscrypt-proxy[13279]: - 1681ms cs-fr2
Nov 08 09:36:26 alarmpi dnscrypt-proxy[13279]: - 3233ms faelix
Nov 08 09:36:26 alarmpi dnscrypt-proxy[13279]: Server with the lowest initial latency: geekdns-doh-east (r>
Nov 08 09:36:26 alarmpi dnscrypt-proxy[13279]: dnscrypt-proxy is ready - live servers: 82
lines 1-20/20 (END)
- 测试效果如何
[alarm@alarmpi ~]$ dig @127.0.0.1 www.pixiv.net
; <<>> DiG 9.14.7 <<>> @127.0.0.1 www.pixiv.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41773
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.pixiv.net. IN A
;; ANSWER SECTION:
www.pixiv.net. 599 IN CNAME pixiv.net.
pixiv.net. 599 IN A 210.140.131.219
pixiv.net. 599 IN A 210.140.131.226
pixiv.net. 599 IN A 210.140.131.223
;; Query time: 99 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Nov 08 09:55:27 CST 2019
;; MSG SIZE rcvd: 153
- 至此还没有结束,只是完成了本树莓派下的DNS可以正常使用,我们是需要提供给其他设备使用的,所以...
sudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.toml # 编辑配置文件
# 修改下列信息,谷歌dns可能收集数据,所以换rubyfish-ea了
# 192.168.2.164:53 是我树莓派在网络中的地址,添加此项即可
server_names = ['scaleway-fr', 'rubyfish-ea', 'geekdns-doh-east', 'cloudflare']
listen_addresses = ['127.0.0.1:53', '[::1]:53', '192.168.2.164:53']
Win Arch子系统.png
- End
网友评论