Johnshall / Shadowrocket-ADBlock-Rules-Forever

提供多款 Shadowrocket 规则,拥有强劲的广告过滤功能。每日 8 时重新构建规则。
https://johnshall.github.io/Shadowrocket-ADBlock-Rules-Forever/
Other
12.89k stars 817 forks source link

关于DNS域名解析 #163

Closed toyo2333 closed 1 year ago

toyo2333 commented 1 year ago

1,对于白名单规则, 配置了GEOIP,CN,DIRECT,当访问一个国外网站xxx,没有找到域名分流规则的时候就会进行一次域名解析,然后再用ip去ip规则找一次,如果发现其他IP规则,以及GEOIP,CN没找到,再丢给代理兜底。

这里首先多了一次dns查询开销,其次到国内的dns服务器去查询,造成DNS泄露

为什么不给ip规则以及GEOIP,CN,DIRECT后面加上no-resolve呢?

假如我不想让腾讯和阿里云的域名服务器知道我尝试解析xxx的域名就只能配置8.8.8.8了么(这又有兼容性问题和隐私顾虑不能兼得)?

提这个是因为,最近在看clash,你看clash.meta的客户端域名配置策略里是这样的:

default-nameserver:
    - 223.5.5.5
  nameserver:
    - 'tls://8.8.4.4#dns'
    - 'tls://1.0.0.1#dns'
  nameserver-policy:
    "geosite:cn,private":
      - https://doh.pub/dns-query
      - https://dns.alidns.com/dns-query

1,用223.5.5.5解析域名服务器(doh.pub,dns.alidns.com的域名 2,对于国内的域名,用阿里云和腾讯(doh.pub,dns.alidns.com)的解析 3,其他的丢给8.8.4.4和1.0.0.1(google和CF)来解析

它这种就很严谨,即兼顾了隐私,也解决了国内外域名解析兼容性和速度的问题。

小火箭的配置做不到么?

Johnshall commented 1 year ago

感谢提问和思考!

  1. 对于白名单规则, 配置了GEOIP,CN,DIRECT,当访问一个国外网站xxx,没有找到域名分流规则的时候就会进行一次域名解析,然后再用ip去ip规则找一次,如果发现其他IP规则,以及GEOIP,CN没找到,再丢给代理兜底。是不正确的。 Shadowrocket 自带 GeoIP 规则,你也可以在设置 - GeoLite2数据库里添加和修改。
  2. 做不到。
toyo2333 commented 1 year ago

感谢提问和思考!

  1. 对于白名单规则, 配置了GEOIP,CN,DIRECT,当访问一个国外网站xxx,没有找到域名分流规则的时候就会进行一次域名解析,然后再用ip去ip规则找一次,如果发现其他IP规则,以及GEOIP,CN没找到,再丢给代理兜底。是不正确的。 Shadowrocket 自带 GeoIP 规则,你也可以在设置 - GeoLite2数据库里添加和修改。
  2. 做不到。

不争取是指这个逻辑不对?还是我的逻辑描述不对?

那我举的这个xxx例子,目前在白名单里正确的逻辑是什么?还是很想搞清楚的。

请教

盼望解答,谢谢!

Johnshall commented 1 year ago

GEOIP:匹配IP数据库。如“GEOIP,CN,DIRECT”可以匹配到归属地为CN的IP地址。 表示CN地区的IP分流走直连,GEOIP数据库用来判断IP是否属于CN地区。默认使用Shadowrocket自带的GEOIP数据库,如果您想替换其他数据库,可在 设置 - GeoLite2数据库 里添加和修改。

GEOIP 应该是只针对通过 IP 直接连接的设备之间,不涉及域名解析。