v2fly / discussion

5 stars 0 forks source link

IPIfNonMatch 的具体实现细节是怎样的?运营商可以依据 dns 解析记录来确定使用不正常吗?这个有潜在的 bug 吗? #76

Closed 517030910405 closed 3 years ago

517030910405 commented 3 years ago

猜测的细节:

第一步:

先尝试匹配域名,如果通过域名规则可以确定要代理,就直接域名转发到服务器,服务器解析域名,并建立连接。 如果通过域名规则可以确定不要代理,客户端直接解析域名,并建立连接。

第二步:(AB中的某一个?)

A. 如果域名规则不能匹配,则服务器解析域名后发回客户端,客户端按照IP地址规则确定要不要代理。 B. 如果域名规则不能匹配,则客户端直接解析域名,客户端按照IP地址规则确定要不要代理。

疑惑:

如果第二步选B,运营商会不会依据”有些域名解析了却没有建立连接“来进行限速? (某些域名不在域名规则内,在本地查了 IP 地址后确定需要代理,造成本地解析了域名却迟迟不建立连接的情况。)

如果第二步选A,运营商会不会依据”有些域名从来没有解析,却建立了连接“来限速? (某些域名不在域名规则内,在服务器查了 IP 地址后确定不需要代理,造成本地没有解析域名却建立了连接的情况。)

感觉正常的上网不会有以上两种情况,会不会运营商对于以上两种情况进行限速?

分析:

  1. 如果用公共 dns,很多也是明文传输,运营商也可以监听并存下来。运营商对于和境外加密通信密切的国内 IP 重点关照,或者对于某个使用了可疑 tls 指纹的国内 IP 重点关照,并存下来这些 IP 的 dns 解析记录应该可以实现吧?有人说公共dns不一定明文传输,但是如果直连使用例如 8.8.8.8 的 dns over tls 的话,一看就不像是正常使用,跨境流量全部限速也没有什么问题吧?

  2. 的确有本地缓存 dns,但是必定有第一次解析域名的时候,只要记录的时间长于大部分 DNS TTL 即可。DNS TTL 太长太长的例外?

求助 and 感谢

有人知道具体的细节吗?是否真的有可能和上面那样出现运营商限速?谢谢!

kslr commented 3 years ago

目前没有限速的报告 你可以全部由远程服务器处理dns