SmartDNS 使用 china-list
域名污染又称 DNS 污染、域名欺骗、域名缓存投毒。简单来说就是把域名指往不正确的 IP 地址,让用户由于得到虚假目标主机 IP 而不能与其通信。如何避免污染的域名解析是个问题,如果说,使用一台没有污染的 DNS 服务器,那么就可以避免域名污染。
但是国外的 DNS 请求和国内的 DNS 请求都走一个国外 DNS 服务器的话,访问耗时比较长。为什么使用国外的 DNS 服务器?被污染的域名一般是国外的(比如说之前广州电信运营商 DNS 将 GitHub 指向到本地 127.0.0.1 ),所以需要使用国外的 DNS 服务器。
GitHub上的一个项目 dnsmasq-china-list 整理了常用的国内域名和不需要抗污染的加速域名。只要根据列表走国内 DNS,列表外的域名走国外 DNS 服务器就行。
Dnsmasq 使用这个项目很简单。用脚本更新规则,修改 Dnsmasq 的上游服务器就行了。Dnsmasq 是遍历查询域名规则,十分吃 cpu 的性能,请求量大点,查询速度就慢了下来。
dnsmasq-china-list 的维护者在 #227 中表示换用 SmartDNS 了,SmartDNS 可以很好地解决 Dnsmasq 吃 cpu 的问题。
1、生成配置文件
通过 git 将项目克隆到本地。
git clone https://github.com/felixonmars/dnsmasq-china-list
进入 dnsmasq-china-list 文件夹。
cd dnsmasq-china-list
生成配置文件。
# smartdns 是 dns 服务器组的名字,可以自定义。
make smartdns SERVER=passwall_proxy
2、上传配置文件
将域名列表文件上传到路由器,文件具体放那都可以,有读写权限就行。我放在 /etc/smartdns
总共有下面四个文件。
accelerated-domains.china.smartdns.conf
apple.china.smartdns.conf
google.china.smartdns.conf
bogus-nxdomain.china.smartdns.conf
3、修改 SmartDNS 配置文件
# smartdns 的配置文件在 /etc/smartdns。
# 添加额外配置文件,后面跟配置文件的路径
conf-file /zawu/smartdns/accelerated-domains.china.smartdns.conf
conf-file /zawu/smartdns/apple.china.smartdns.conf
conf-file /zawu/smartdns/google.china.smartdns.conf
conf-file /zawu/smartdns/bogus-nxdomain.china.smartdns.conf
# 建立的额外的 dns 服务器组。
# 符合规则的域名,dns 解析走指定的 dns 服务器组。其他的走默认的 dns 服务器组。
# 默认服务器组,我建议使用运营商的 dns 和国内的一些公共 dns。
# server 后面的 ip 地址是 dns 服务器的 ip。
# guowai 是服务器组的名称,可自定义。
# -exclude-default-group 表示从默认服务器组里删除,这个 dns 服务器。
# Cloudflare
server 1.0.0.1 -group passwall_proxy -exclude-default-group
server 1.1.1.1 -group passwall_proxy -exclude-default-group
server-https https://cloudflare-dns.com/dns-query group passwall_proxy -exclude-default-group
server 2606:4700:4700::1111 -group passwall_proxy -exclude-default-group
server 2606:4700:4700::1001 -group passwall_proxy -exclude-default-group
# 谷歌
server 8.8.8.8 -group passwall_proxy -exclude-default-group
server 8.8.4.4 -group passwall_proxy -exclude-default-group
server-https https://dns.google/dns-query -group passwall_proxy -exclude-default-group
server-https https://dns64.google/dns-query -group passwall_proxy -exclude-default-group
server-tls dns.google -group passwall_proxy -exclude-default-group
server 2001:4860:4860::8888 -group passwall_proxy -exclude-default-group
server 2001:4860:4860::8844 -group passwall_proxy -exclude-default-group
# 微软(Level 3 Parent DNS)ps:4.2.2.1~4.2.2.6
server 4.2.2.2 -group passwall_proxy -exclude-default-group
server 4.2.2.5 -group passwall_proxy -exclude-default-group
# Neustar UltraDNS
server 64.6.64.6 -group passwall_proxy -exclude-default-group
server 64.6.65.6 -group passwall_proxy -exclude-default-group
server 2620:74:1b::1:1 -group passwall_proxy -exclude-default-group
server 2620:74:1c::2:2 -group passwall_proxy -exclude-default-group