V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FaiChou
V2EX  ›  程序员

你们会给 GEOIP 规则加上 no-resolve 吗?

  •  
  •   FaiChou ·
    FaiChou · 2023-03-20 16:13:17 +08:00 · 5855 次点击
    这是一个创建于 599 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如某域名经过这样的规则(暂不探讨客户端直接对 ip 发起请求情况):

    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 解析, 国内正常请求不会被误伤, 而国外的都会走代理, 看起来是完美解决?

    所以你们都是怎么搭配的呢?

    3 条回复    2023-03-20 17:40:13 +08:00
    Cormic
        1
    Cormic  
       2023-03-20 16:43:49 +08:00 via iPhone
    不知道是谁先开始说什么 no-resolve 可以避免 dns 泄漏的,一堆人自己也没搞懂就瞎转。
    geoip 搭配 no-resolve 是给那些直接发起 IP 请求的场景设计的,告诉代理工具不要去尝试反解析 IP 为域名。
    按第一种配置方法,因为对没命中规则的域名不做解析,所以 geoip 规则根本不起作用(不解析,你连 IP 都没有,geoip 和你有什么关系),连国内域名都会交给兜底规则走代理,如果前置规则很少,几乎就等于全局代理了。这个自己试试就知道了。
    loca1h0st
        2
    loca1h0st  
       2023-03-20 16:50:52 +08:00
    如果加上 no-resovle ,域名会跳过 GEOIP 这一段直接到 PROXY 阶段,此时浏览器会把域名信息给到本地的 socks5 代理,一同传到远端的服务器上进行解析和访问。

    此时有些网站在海外部署了 CDN 的,会返回一个海外的 IP 地址结果,导致你本可以走国内的变成走国外了,同时,存在一定概率类似某些音乐视频网站因解析到海外节点导致版权问题没法播放。

    看了你的博客的第一篇文章,fake-ip 这块也是讲述有点模糊,其实这块感兴趣可以重头看看原理和理论。

    另外你再想想,DNS 污染是谁污染了什么网站?这些网站在国内是否有部署运营节点?
    AoEiuV020CN
        3
    AoEiuV020CN  
       2023-03-20 17:40:13 +08:00
    不会,我是 2 ,
    我前面的分流规则不带 no-resolve 否则影响速度,
    geoip 再 no-resolve 就白 geoip 了,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   966 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:08 · PVG 05:08 · LAX 13:08 · JFK 16:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.