Mac OS设置无污染上网环境

最近dns污染太严重,没办法只能自己动手解决了

1,准备软件

brew install dnsmasq #dns小型server
brew install dnscrypt-proxy #dns代理,主要让dns数据包走专用通道
https://github.com/felixonmars/dnsmasq-china-list #dns配置文件,主要加快国内访问
https://github.com/v2ray/v2ray-core #MacOS客户端软件

2,首先配置好你的V2ray,使其能连上你的科学上网服务器。这个如果不会我在开一个教程。

3,修改 dnscrypt-proxy 的配置文件 /usr/local/etc/dnscrypt-proxy.toml。找到这几处 listen_addresses = [‘127.0.0.1:3333’]这个3333你可自己修改相应的端口数值,也可以直接照搬我的。force_tcp = true,(默认false)这个打开强制dns走tcp协议,避免污染。http_proxy = ‘http://127.0.0.1:1087’,去掉这个前面的注释#。1087是你的V2ray的本地http代理端口号,可自己修改。

4,修改dnsmasq配置文件 /usr/local/etc/dnsmasq.conf。这个文件我们不动,新增一个配置文件到 /usr/local/etc/dnsmasq.d/目录下,文件名自定比如base.conf。配置如下:

# 不连接自动下发的dns
no-resolv
# 不检查有关解析的配置文件更新
no-poll
# 配置文件路径,加载dnsmasq-china-list的那两个配置文件
conf-dir=/usr/local/etc/dnsmasq.d
# 附加Hosts文件,可有可无,我觉得以后可能还是需要用到Hosts,就加入了这一行
addn-hosts=/usr/local/etc/dnsmasq.hosts
# 上游服务器设置成DNSCrypt,也就是刚才dnscrypt-proxy里的端口号和监听地址
server=127.0.0.1#3333
# 缓存大小,默认是150,最大9999
cache-size=3000
#增大缓存在本地的时间,减少请求次数。最大3600
min-cache-ttl=3600
#重新加载后清空缓存
clear-on-reload

5,把https://github.com/felixonmars/dnsmasq-china-list下载回来的文件有带conf结尾的,复制到/usr/local/etc/dnsmasq.d/目录下。其实他自带了安装程序,但我用不到更新,故就不安装了。

6,启动和测试

sudo brew services start dnscrypt-proxy #启动并设置开机启动
sudo brew services start dnsmasq #启动并设置开机启动
sudo lsof -Pni UDP:53 #查看端口是否有对应程序

7,dnsmasq的配置文件有一行addn-hosts=/usr/local/etc/dnsmasq.hosts。这个要注意下。如果你的V2ray的地址是域名的话,请在这里做好解析工作。否则当你设置dns为127.0.0.1后,你的V2ray可能连不上。格式如下

90.life 54.87.57.134