转跳到内容

关于运营商劫持DNS后挂梯子无法访问涩涩网站这档事


推荐贴

起因

刚刚有群友聊起某涩涩网站无法进入的事情,域名被解析到127.0.0.1的情况,且开启代理(Clash)后,仍旧出现该问题。

由于只有一个网站出现了这个问题,且这个网站跟我有一定的关系,故在我尝试复现后失败,遂开始与其讨论原因与解决方法:SS05:

起因定位

在直连出现本地回环(127.xxx)以后,该同志改用Clash进行访问,Clash也返回了本地回环,多次切换其他DNS服务商后仍旧出现了无法解析到正常IP或污染IP的情况,直接秒回复本地回环,故认为是出现了DNS抢答的情况,即53端口被劫持。群里有其他涩涩站长也提到有用户近期反馈该问题,所以还是决定在这里发出来mark一下(自己blog域名没续费,先写这了,笑死)。

CFW(Clash For Windows)在被劫持后,通常是没什么问题的,因为有fake-ip避免出现dns污染的问题,除非出现本次这种劫持后返回本地回环的情况。

CFW的dns请求并非直接通过代理的,而是先直接本机请求DNS结果,得到IP后根据规则进行判断是否使用代理。若返回保留地址/本地回环后,无法正常判断,故出现了本次访问失败的情况。

解决方法

:NEKOMIMI_PARADISE:在了解原因之后,有两种可以快速解决该问题的方法

第一种:域名放入规则

即将域名加入规则,直接通过规则判断该域名需要代理,跳过直接请求DNS去判断是否需要代理这一步:mx035:

缺点

如果只是偶然出现一个网站被劫持到保留地址的话,可以考虑这种方式,不影响速度,效果好:mx008:

不过这样的话,每次都需要加一个进规则里,Clash这种需要下载机场规则的类型,可能会有些不友善...

况且每次都要定位一次原因,嘛...

第二种:启用Clash的DNS服务

即CFW官方提供的推荐方式,通过开启Clash内置的DNS服务,改用其他端口或使用支持DoT/DoH的服务器进行DNS解析,避免出现53端口被劫持。

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: redir-host
  nameserver:
    - 'tls://dns.rubyfish.cn:853'
  fallback:
    - 'tls://1.1.1.1:853'
    - 'tcp://1.1.1.1:53'
    - 'tcp://208.67.222.222:443'
    - 'tls://dns.google'

这种方式会导致你的DNS请求量增加一次,clash的DNS请求为并行式:

引用
  1. nameserverfallback里的DNS进行并发请求,并且选取nameserver中最先响应的结果作为基准
  2. 使用GEOIP判断此IP的所属区域,如果属于国内(CN)或保留地址则直接响应给客户端
  3. 其他情况则把fallback中的结果响应给客户端

本次情况属于:2

但如果改为DoH/DoT,即可避免被劫持为保留地址

不论如何,只要nameserver或fallback没什么问题,就不会产生本次事件的回环情况:NEKOMIMI_PARADISE_8:

缺点:

缺点也很明显,fallback会引起两次DNS请求,此外,如果fallback选用了google的DoT服务,有时候响应真的会很慢啊——:b9:

解决方案:

要说起因主要是53被劫持,所以其实只要nameserver设置为DoH/DoT就好了:SS05:

不配置fallback理应也不会影响效果,fallback的情况主要用于:

引用

只有在「直連而且 GEOIP 為國外時」會被用於發起連接,例如直連的 Microsoft 、 iCloud 等域名,還有 VPS 自身的域名。在有好的國外域名列表情況下,大部分的外網地址只要匹配到域名就會走代理(並使用遠程解析),根本不會用到 Fallback 的結果。

所以,不配置fallback是一种避免解析速度受到影响的方法:b2:

其他

如果你有软路由,也可以直接用iptables抢在运营商之前劫持DNS,相关教程网络上蛮多的,不作赘述~

尾言

第一次遇到这种事情,特写下来,希望对大家有帮助~:SS04:

 

参考资料

引用

 

链接到点评
4 小时前,小火desu说道:

dot/doh不能防止域名被sni阻断,最好还是用梯子比较好喔:b2:

所以要配合着用

不过由于sni阻断需要的服务器成本高,有很大一部分只进行了域名污染

而且无法阻断tls1.3的sni 除非阻断全部tls1.3

PS:缺点就是加密dns访问带cdn的域名特别慢

,由symbol修改
链接到点评
6 小时前,symbol说道:

所以要配合着用

不过由于sni阻断需要的服务器成本高,有很大一部分只进行了域名污染

而且无法阻断tls1.3的sni 除非阻断全部tls1.3

PS:缺点就是加密dns访问带cdn的域名特别慢

esni已经有报道称可以拦截了,不过如果你还没被阻断过,那应该是稳定的:b2:

配合使用是好事情,已经给我的Clash用上DoT了:a13:

小火desu在文学领地阅读作品时遇到了穿着女仆装的文学少女,待她离开后找到了遗落的7节操

链接到点评
13 小时前,月晓说道:

真的好无语啊,不过是一栋网络吗》。实在不行的话换个网

地方运营商的拦截策略都不一样,有些地方会像这样抢答后返回保留地址,有些地方是直接给你解析污染地址,不过因为这种事情就换个运营商可能是有点大费周章了:SS05:

不过换掉也是一种富哥最直接的方法:NEKOMIMI_PARADISE_8:

链接到点评
6 小时前,小火desu说道:

地方运营商的拦截策略都不一样,有些地方会像这样抢答后返回保留地址,有些地方是直接给你解析污染地址,不过因为这种事情就换个运营商可能是有点大费周章了:SS05:

不过换掉也是一种富哥最直接的方法:NEKOMIMI_PARADISE_8:

不过基本上移动是最严格的...

 

月晓收和谐资源时被小萝莉围观良心发现失去-2节操

链接到点评
12 小时前,Xiaodu1125说道:

不行换个网吧= =有些网的外网端口自动屏蔽成小水流

这个贴主要指被劫持53端口,是DNS的端口,不是外网端口什么的,很多运营商都会这么干,只是这个贴遇到的情况是被劫持到了保留地址而非污染地址:SS04:

换个网或许就会劫持到污染地址了:NEKOMIMI_PARADISE_8:

不过谁知道新换的运营商会不会也干一样的事情呢:a7:

链接到点评
于 2023/7/9 于 AM12点59分,小火desu说道:

esni已经有报道称可以拦截了,不过如果你还没被阻断过,那应该是稳定的:b2:

配合使用是好事情,已经给我的Clash用上DoT了:a13:

所以说有了更先进的ECH

不过说稳定倒也不太稳

因为很多都不是屏蔽域名是屏蔽IP

加密技术越强屏蔽需要的硬件资源就越大

就开始不讲武德

,由symbol修改
链接到点评
游客
此主题已关闭。
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款