
Clash模块(Surfing)与AdGuard Home同时启用导致手机无法联网解决方案
0.前言
Surfing是一个Clash内核的Magisk模块,将其刷入内核可以实现全局无感代理,非常的便捷好用(具体使用教程可以参考博客内往期文章),而AdGuard Home是家喻户晓的广告拦截器AdGuard的Magisk版,将其刷入内核可以实现全局无感广告拦截,相比于传统AdGuard应用需要授权VPN代理流量后过滤广告的方式,AdGuard Home这种内核级模块可以像Surfing一样实现全局无感广告拦截,极大地提升了使用体验。
但由于Clash和AdGuard都会对手机的网络流量进行处理,在同时使用这两个模块时会出现DNS解析冲突导致手机无法联网,那么这个时候需要我们对Clash模块进行一些额外的配置即可解决这个问题,过程也是非常的简单,这里演示一下Surfing+AdGuard Home在KernelSu环境下如何解决DNS冲突。
1.检查版本
首先需要检查AdGuard Home版本,AdGuard Home for Magisk是有两个版本的,top版更新时间在去年,twoone版更新时间就在近几天,所以需要选择twoone版AdGuard Home,且twoone版AdGuard Home内置了秋风广告规则,使用起来也更加方便。且twoone版AdGuard Home for Magisk为了避免与另一个AdGuard Home for Magisk模块冲突,已经改名为AdGuard Home for Root,GitHub仓库地址:
下图为秋风广告规则官网的使用建议。
2.修改AdGuard配置
安装AdGuard Home for Root后,在MT管理器中进入AdGuard Home for Root的配置文件:/data/adb/agh/settings.conf
。打开文件后,将第一项配置enable_iptables设置为false(默认为true),保存后退出。
3.修改Clash配置
修改代理DNS服务器,将其上游DNS修改为AdGuard的端口号即可。以Surfing为例,打开配置文件,找到dns配置下的direct-nameserver,添加127.0.0.1:5591
(如果你更改了AdGuard的端口号,那么这里也要改,通常默认就是5591),由于Surfing作者魔改了Clash的标准配置文件,所以可能其他Clash模块没有direct-nameserver,如果没有,就将其添加到对应的直连或者全局nameserver下即可(例如有的是叫default-nameserver或者直接叫nameserver)。
4.重启手机
修改以上配置后,重启手机应该就可以正常的联网了,同时在浏览器输入127.0.0.1:3000
即可进入AdGuard的控制面板,默认账号密码为root/root。可以在其日志页面中查看是否能正常拦截到网络流量。
本期教程到此就结束了,感谢你看到这里,如果有其他问题,欢迎在评论区留言,通常我会在12小时内回复你!