rules:
# 所有的规则都没有命中, 并且前面没有 IP-CIDR
- IP-CIDR,203.205.0.0/16,DIRECT,no-resolve
- GEOIP,CN,DIRECT,no-resolve
- MATCH,PROXY
这样域名不会 dns 解析, 直接走到兜底的代理, 这样国内正常的请求如果没有被前面匹配到, 则会走节点.
如果将 no-resolve 去掉, 域名会 dns 解析成 ip, 如果是国内的正常网站, 则匹配到 GEOIP 会走直连; 如果是被墙的网站, 则会返回一个污染的 ip, 此 ip 不在国内, 会走兜底的代理.
所以理论上, GEOIP 是否添加 no-resolve 与兜底策略中是否走直连和代理有关系? (当然增加一次 dns 解析也不会影响很大的网络延迟)
综上, 有两种搭配的策略:
1. no-resolve 不解析 dns, 搭配兜底直连
- GEOIP,CN,DIRECT,no-resolve
- MATCH,DIRECT
这样国内的请求会走直连没问题, 但国外的请求可能称为漏网之鱼导致无法访问. 而且再反过来看, 这样 GEOIP 就失去了意义, 去掉 GEOIP 这条规则是一样的.
2. 解析 dns, 搭配兜底代理
- GEOIP,CN,DIRECT
- MATCH,PROXY
这样进行了一次 dns 解析, 国内正常请求不会被误伤, 而国外的都会走代理, 看起来是完美解决?
所以你们都是怎么搭配的呢?