Open luckyyyyy opened 1 year ago
使用fake-ip,但国内需要real-ip,最大可能国内real-ip+绕过内核
此方案不适用于 openclash 仅适用于 shellclash 或者自己会写iptables的同学,另外我也建议shellclash作者把绕过cn不要和fake-ip功能冲突,目前我的做法已经实现两者都兼容,理论上前置任意转发器都可以,不局限于AdGuard
其实这个问题很久了,之前做了很多分流,虽然抗污染能力增强,但是还是会出现一些污染的情况,目前来说最合理的方案依然是fake-ip,但我不希望所有国内地址都被解析成fake-ip,这样既不科学,又回导致国内ip全部进clash内核这也是我不希望的。所以需要一份域名白名单来解决这个问题。
DNS依然可以使用AdGuard Home来作为第一层服务器,主要是因为这家伙的UI做的我非常满意,而且重写,记录等功能也是我需要的。
AdGuard Home 监听 5553(不重定向端口,只监听) Clash 监听 1053 dnsmasq 监听 53(默认不变,防止其他服务器没启动连DNS都没有)
现在可以使用我这个项目 https://github.com/luckyyyyy/GFWList2AGH 来做AdGuard Home的分流,把gfwlist2adguardhome/whitelist_lite.txt 文件写到配置中即可,这个文件是china list 转发到 dnsmasq,dnsmasq会自动使用pppoe拨号给的DNS(这个没问题的,国内的域名就应该用域名是的服务器解析,如果不信任,那就上游自己改吧,个人觉得没必要)
DNS部分选择重定向端口,并使用user.yaml配置下面的dns内容,让clash监听在1053,同时需要修改mark文件,让脚本配置时,转发53端口到5553,此举是为了做转发器使用,以及可以使用内置的mac黑白名单模式了,从代码上看shellclash会增加一个clash_dns的自定义链来解决这个白名单的事,让白名单的机器dns不做转发
请在shellclash dns 模式选择 Redir-host 否则会缺少一些菜单以及判断 用下面的 user.yaml 覆盖即可
dns_port=5553
clash的配置我就不解释了,直接给出配置
dns: enable: true ipv6: false enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 listen: 0.0.0.0:1053 nameserver: - 127.0.0.1:53 fallback: - https://1.1.1.1/dns-query - https://dns.cloudflare.com/dns-query - https://dns.google/dns-query - tls://1.1.1.1:853 - tls://8.8.8.8:853 default-nameserver: - 119.28.28.28 - 223.5.5.5 - 202.101.172.35 - 202.101.172.47 fake-ip-filter: - "*.lan" fallback-filter: geoip: true geoip-code: CN
如果域名不在白名单内 可以自己修改文件 修改后记得重启 agh 可以粗暴的把cn结尾的都加上
[/cn/]127.0.0.1
让脚本配置时,转发53端口到5553 这步怎么操作
需求
使用fake-ip,但国内需要real-ip,最大可能国内real-ip+绕过内核
此方案不适用于 openclash 仅适用于 shellclash 或者自己会写iptables的同学,另外我也建议shellclash作者把绕过cn不要和fake-ip功能冲突,目前我的做法已经实现两者都兼容,理论上前置任意转发器都可以,不局限于AdGuard
0x00 问题
其实这个问题很久了,之前做了很多分流,虽然抗污染能力增强,但是还是会出现一些污染的情况,目前来说最合理的方案依然是fake-ip,但我不希望所有国内地址都被解析成fake-ip,这样既不科学,又回导致国内ip全部进clash内核这也是我不希望的。所以需要一份域名白名单来解决这个问题。
0x01 解决
DNS依然可以使用AdGuard Home来作为第一层服务器,主要是因为这家伙的UI做的我非常满意,而且重写,记录等功能也是我需要的。
端口
AdGuard Home 监听 5553(不重定向端口,只监听) Clash 监听 1053 dnsmasq 监听 53(默认不变,防止其他服务器没启动连DNS都没有)
AdGuard Home 的配置
现在可以使用我这个项目 https://github.com/luckyyyyy/GFWList2AGH 来做AdGuard Home的分流,把gfwlist2adguardhome/whitelist_lite.txt 文件写到配置中即可,这个文件是china list 转发到 dnsmasq,dnsmasq会自动使用pppoe拨号给的DNS(这个没问题的,国内的域名就应该用域名是的服务器解析,如果不信任,那就上游自己改吧,个人觉得没必要)
shellclash
DNS部分选择重定向端口,并使用user.yaml配置下面的dns内容,让clash监听在1053,同时需要修改mark文件,让脚本配置时,转发53端口到5553,此举是为了做转发器使用,以及可以使用内置的mac黑白名单模式了,从代码上看shellclash会增加一个clash_dns的自定义链来解决这个白名单的事,让白名单的机器dns不做转发
请在shellclash dns 模式选择 Redir-host 否则会缺少一些菜单以及判断 用下面的 user.yaml 覆盖即可
clash配置
clash的配置我就不解释了,直接给出配置