使用AdGuard Home解决软路由GFW模式失效问题

2021年9月2日 6670点热度 6人点赞 4条评论

倒腾很久一直不明白为什么gfw模式总是会出现问题,两三年过去了,总算一点点搞明白了,写下来给自己留个笔记。

Part 1 问题究竟在哪里

很多gfw模式出问题的时候,换成 绕过中国大陆ip 这个模式,立马又可以上外网了。证明节点都是正常的。
* 切换模式需要清除浏览器缓存:关闭浏览器,命令行执行 ipconfig /flushdns 建议用powershell,因为有执行命令的历史记录。
那问题究竟在哪,第一个想到的依然是dns查询问题,以ssrplus为例,里面的pdnsd并不是我最初想的实现方式:默认使用代理的节点进行dns查询。
他只是使用tcp查询域名而已,并且如果你用老的版本固件,大概率会遇到gfw模式失效问题,原因就是pdnsd内默认配置的上游dns服务器连不上了或者解析不到域名正确的ip。
另外,dns2socks这个解析模式我也试了,也没什么效果,肯定是没有调用ssrplus高级设置里开放的socks5端口进行dns解析。
那我想既然是dns污染的问题,为什么不使用干脆使用其他dns软件呢

 

note!: 现在海外dns完全可以用passwall自带的pdnsd使用节点进行tcp查询或者其他利用节点查询dns,或许可以放弃adgh做上游了。

 

Part 2 Adguardhome 解决dns污染

挑了半天的dns解析插件,op内的dnsforwarder实在对不起他自称企业级的稳定性,开了一会自己就关闭。。。

最后就回到adgh,默认界面配置,监听5335端口,不选择作为dnsmasq的上游服务器(这样默认dns解析就不会交给adgh)。

上游配置dns如下
#tcp://223.5.5.5
tcp://1.1.1.1
https://sg.adhole.org/dns-query
https://dns.google/dns-query
tls://dns.google
tls://1.1.1.1
https://doh.pub/dns-query
https://dns.alidns.com/dns-query

其他doh dot 上游服务器参考链接:https://kb.adguard.com/zh/general/dns-providers

选择并行请求。

Bootstrap DNS 服务器如下:
114.114.114.114
223.5.5.5
240C::6666
240C::6644
2400:da00::6666

* 这是支持ipv6解析的。

ssrplus内如下设置:选择 GFW模式 使用本机端口为5335的dns服务

此时,应该可以打开gfw屏蔽的网站了,但是个别需要自定义代理的网站需要手动在ssrplus的 访问控制 中的 代理域名 加入需要被代理的网站
注意 ssrplus的优点就在于,较新的版本是支持泛域名的,也就是你可以加入 *.abc.com 即可代理abc.com下所有子域名。
但是有些时候会出现无法代理abc.com这个顶级域名的情况,所以建议添加需要代理域名时以如下形式加入保存
*.abc.com
abc.com
这也是相比于其他插件我更喜欢用ssrplus的原因。

Part 3 将来可能的问题

毕竟这样做依旧是通过doh和dot解决了dns污染,以后国内也很可能会干脆一刀切让我们用不了doh和dot。
正规的办法还是使用代理的节点来进行被污染域名的dns解析,但是openwrt的dns这方面插件貌似做的还是不咋地。插件兼容问题也很多。也不知道将来会不会做好这个功能。

Part 4 补充

过了几天遇到了重启之后adgh重定向失败的问题,原因是5335端口绑定失败,居然有别的进程也监听了这端口??
遂用命令查了一下
netstat -lupae
发现是一个叫 wsdd2的进程,是用来windows samba共享的依赖进程。这他妈的,居然和ssrplus的选项冲突!
将此进程杀掉
killall wsdd2
但没几秒这玩意自启了。。。却没有再占用了5335 端口,???黑人问号,改为占用5355端口。。。这他妈的什么玩意?
遂关闭所有共享插件,禁用此插件自启。
调整adgh插件的启动优先级等等。。结果发现 无PID 的进程依然占用5335端口,PID这一栏显示为 -

鼓捣很久无法解决,最后只能在ssrplus中选择dns2socks查询dns,自定义dns地址为127.0.0.1:3053,同时把adgh的dns监听地址改为3053。实现了之前的功能。

Qiui

这个人很懒,什么都没留下

订阅评论
提醒
guest
4 评论
最新
最旧 最多投票
内联反馈
查看所有评论
asker
游客
asker
2023年2月5日 18:19

之前一直没弄明白adguardhome怎么和ssrp配合,这篇文章写得很详细,对我有帮助。

asker
游客
asker
2023年2月7日 18:24
回复给  Qiui

@Qiui 测试了一下,最佳方法是:adguardhome的DNS服务监听5335端口,DHCP/DNS中DNS转发到127.0.0.1#5335,SSRPlus中DNS解析方式设为使用本机端口5335的DNS服务器。
使用非5335端口那么代理无法使用,要么adguardhome无法监控走代理的域名。不过上述两种方法都无法显示详细的客户端。
感谢博主提供的思路。

man1
游客
man1
2021年9月5日 22:37

test

4
0
希望看到您的想法,请您发表评论x