DNS 污染解决方案

从 2017.9 开始,P站被墙。因为 DNS 污染的缘故,即便是有 SS 也无济于事。

解决方案:要么换无污染 DNS,要么改 hosts。为了一劳永逸,我选择了前者。

以下为具体过程 (on Arch Linux):

update

2018.3 挂 SS 可以上 p站 了。

dnscrypt 太慢了,建议仅在需要时开启。

DNS查询加密

  • 安装 AUR 包 dnscrypt-proxy-go
  • 启动dnscrypt-proxy系统服务,并设置开机自启。
1
2
3
yaourt -S dnscrypt-proxy-go
systemctl enable dnscrypt-proxy
systemctl start dnscrypt-proxy

DNS查询结果对比

原先的 DNS 查询结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
zerol@zerol-pc ~ > drill pixiv.net @8.8.8.8
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 20537
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; pixiv.net. IN A

;; ANSWER SECTION:
pixiv.net. 125 IN A 69.171.230.18

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 30 msec
;; SERVER: 8.8.8.8
;; WHEN: Fri Jan 19 19:43:15 2018
;; MSG SIZE rcvd: 43

启动服务后的本地服务查询结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
zerol@zerol-pc ~ > drill pixiv.net @127.0.0.1
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 17857
;; flags: qr rd ra ; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; pixiv.net. IN A

;; ANSWER SECTION:
pixiv.net. 240 IN A 210.129.120.41
pixiv.net. 240 IN A 210.129.120.44
pixiv.net. 240 IN A 210.129.120.43

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Fri Jan 19 19:43:33 2018
;; MSG SIZE rcvd: 75

修改 nameserver

在文件/etc/resolvconf.conf的末尾加上一行name_servers=127.0.0.1即可。

写在最后

网上的解决方法都比较麻烦,而借助 arch 的 AUR 仓库,安装配置过程简单了许多。

折腾了一通,到底还是为了 P站 啊。