继steam商店被间歇性屏蔽后,中国移动现在对steam客户端也开始了屏蔽,不论使用什么国内DNS都无法登录steam客户端,只有更换海外DNS才能正常登录。但是海外DNS在国内使用体验并不好,于是我便萌生了自建DNS的想法,通过国内外分流,让国内网站使用国内DNS解析,海外网站使用海外DNS解析。
1.一台国内VPS
2.一台海外VPS(推荐香港VPS,延迟低)
3.基本的Linux使用能力
这里,我在海外VPS和国内VPS各搭建了一个AdguardHome,国内VPS使用overture进行国内外分流,海外VPS搭建的AdguardHome作为国内VPS的overture的上游,overture作为国内VPS的AdguardHome的上游,客户端连接国内vps的AdguardHome
之所以使用海外VPS搭建的AdguardHome作为overture的上游,是因为GFW对海外DNS存在屏蔽,使用海外VPS搭建的AdguardHome作为上游可以起到代理的作用
SSH进海外VPS
先搭建AdguardHome
curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh
搭建完成后访问http://IP:3000就可以来到主界面了
在【设置】-【DNS】中填入海外DNS
这里我用的是谷歌和CF的DNS
之后点击【设置】-【加密】,并启用加密
在服务器名称中填入解析到这个VPS的域名
HTTPS端口可以保留默认,但如果端口被nginx占用的话可以修改成其他的,例如我改成了1599端口
在证书中填入你的SSL证书,这里我用的是免费letsencrypt证书,当然也可以去腾讯云,阿里云等申请免费亚洲诚信证书
至此,海外DNS的准备已经完成
点击【设置指导】,查看你的doh地址(https开头的那个)
请自行准备好代理,如果不想在服务器安装v2ray的话可以使用gg
来到国内VPS,安装overture
mkdir /opt/overture cd /opt/overture wget https://github.com/shawn1m/overture/releases/download/v1.8/overture-linux-amd64.zip unzip overture-linux-amd64.zip
然后添加一下进程守护
vi /etc/systemd/system/overture.service
[Unit] Description=overture After=network.target [Service] ExecStart=/opt/overture/overture-linux-amd64 -c /opt/overture/config.yml Restart=always [Install] WantedBy=multi-user.target
下载国内IP库
curl -s https://raw.githubusercontent.com/17mon/china_ip_list/master/china_ip_list.txt > china_ip_list.txt
下载GFW库
curl https://raw.githubusercontent.com/Loukky/gfwlist-by-loukky/master/gfwlist.txt | base64 -d | sort -u | sed '/^$\|@@/d'| sed 's#!.\+##; s#|##g; s#@##g; s#http:\/\/##; s#https:\/\/##;' | sed '/\*/d; /apple\.com/d; /sina\.cn/d; /sina\.com\.cn/d; /baidu\.com/d; /qq\.com/d' | sed '/^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+$/d' | grep '^[0-9a-zA-Z\.-]\+$' | grep '\.' | sed 's#^\.\+##' | sort -u > gfwlist.txt curl https://raw.githubusercontent.com/hq450/fancyss/master/rules/gfwlist.conf | sed 's/ipset=\/\.//g; s/\/gfwlist//g; /^server/d' > koolshare.txt cat gfwlist.txt koolshare.txt | sort -u > gfw_list.txt rm gfwlist.txt koolshare.txt
修改配置文件
vi config.yml
修改为以下内容(记得将https://example.com/dns-query改成你自己的doh地址)
bindAddress: :5353 debugHTTPAddress: 127.0.0.1:5555 dohEnabled: false primaryDNS: - name: Ali DNS address: https://dns.alidns.com/dns-query protocol: https socks5Address: timeout: 6 ednsClientSubnet: policy: auto externalIP: noCookie: true - name: Dnspod address: https://doh.pub/dns-query protocol: https socks5Address: timeout: 6 ednsClientSubnet: policy: auto externalIP: noCookie: true alternativeDNS: - name: AdGuardHome DNS address: https://example.com/dns-query protocol: https socks5Address: timeout: 6 ednsClientSubnet: policy: auto externalIP: noCookie: true onlyPrimaryDNS: false ipv6UseAlternativeDNS: false alternativeDNSConcurrent: false whenPrimaryDNSAnswerNoneUse: primaryDNS ipNetworkFile: primary: /opt/overture/china_ip_list.txt alternative: ./ip_network_alternative_sample domainFile: primary: ./domain_primary_sample alternative: /opt/overture/gfw_list.txt matcher: suffix-tree hostsFile: hostsFile: ./hosts_sample finder: full-map minimumTTL: 0 domainTTLFile: ./domain_ttl_sample cacheSize: 0 cacheRedisUrl: cacheRedisConnectionPoolSize: rejectQType: - 255
之后启动overture即可
systemctl start overture systemctl enable overture
搭建完overture后,就可以继续在国内VPS搭建AdguardHome了
curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh
搭建完后在DNS配置里设置好DNS
务必将dns设置为127.0.0.1:5353,这样才能使用上边搭建的overture作为上游
之后在【设置】-【加密】中设置好域名和证书即可,因为和海外VPS的配置方式一样,就不过多叙述了
至此,无污染DNS就搭建完成了
填入DOH URL即可
填入DOT域名即可
如果出现无法连接的情况,请更换ssl证书。letsencrypt.org的免费证书可能无法被miui识别,可以更换为亚洲诚信的免费证书
在完成配置后,没有挂代理的情况下也可以正常打开duckduckgo,steam客户端也能正常登录
本文是【自建DNS解析服务教程,教你如何解决DNS污染】的重写版,将国内外分流改成了服务器分流,更加合理,但是也删除了去广告相关的配置,如有需要,可以查看原文章。
若无特别声明,本文中资源的解压密码是:www.ziyuan22.com
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究【常见问题】。
本站资源仅供学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。
如有侵犯你版权的,请来信(邮箱:ziyuan22@foxmail.com)指出,本站将立即改正。
下一篇:帝国cms目录结构介绍