clash提示端口
最近我在旁路由上部署了一个Open Clash,TUN + Fake IP模式,可以正常深造,也没有DNS污染问题(Clash本身的fall back机制就可以解决污染问题),但是有DNS泄露的情况。
查了些资料,发现很多人都会在Clash前面,加一个MosDNS(或者还会在前面再加一个ADG Home),让MosDNS来分流DNS。
因为MosDNS在Clash前面,DNS先进到MosDNS里,然后根据规则,判断是否是国内域名,会有以下3种情况
IP(国内真IP或Fake IP)返回给客户端后,客户端发起TCP/IP链接,再次被Clash拦截到,此时有2种情况:
1.IP是之前的Fake IP,那么Clash能在自己的Fake IP映射表里拿到原始域名,此时会根据域名去匹配路由规则,
1.1.如果符合国外规则,就将请求包装好,直接扔给代理服务器,由远端DNS;
2.IP是国内真实IP,那么Clash在自己Fake IP映射表里找不到clash提示端口,会被当成针对IP的请求,只会使用IP规则去路由,且不会发生DNS
原因是,在DNS时,MosDNS返回了国内真实IP,所以Clash截获TCP/IP链接时,用这个真实IP去自己的Fake IP映射表内,查不到原始域名,所以会判断为是对IP发起的请求,且此时只能根据IP去匹配路由规则。
有使用这种模式的老哥可以帮忙验证下,是不是Clash日志里,所有国内站点,都不会显示域名了,而是显示IP。
如 这里,第12步的地方,是将Clash的NameServer设置为了127.0.0.1,假设请求的是国外站点A,会发生如下流程:
最终虽然通过fallback成功拿到真实IP,但是也多了一次DNS查询,这个查询兜了一圈,回到Clash并再次触发了Fake IP。
其实127.0.0.1也还算好的,如果不小心在NameServer组配置了国内的DNS服务器,那就是发生DNS泄露了。
综上,这种模式确实在正常情况下,可以避免DNS泄露,也能正常工作,但是又感觉有很多地方不是很规范。
2.域名规则没中,尝试使用IP规则匹配,发起DNS,上游MosDNS接管,拿到线.如果是国内IP,Clash就直连;
本站数据均由Python脚本采集于网络,仅用于学习Linux和编程技术,如有不适请联系删除()。
flyzy博客所有内容均来自网络,仅用于学习Linux和编程技术,若无意侵犯到您的权利或其他任何不合适的部分,请联系站站删除(),本站会在24小时内作出回应。