江苏电信很早就劫持了阿里的 223.5.5.5 ,这里按下不表。 因此我的方案目前是:
今早起床天塌了,发现软路由的 clash 节点全部超时,同一套 yaml 配置手机链接无问题,故翻阅日志,发现通过国外组 dns 的解析全部超时(就是 cf 和 google 的 doh )
用 doggo 验证了一下,好像现在江苏电信宽带劫持了几乎全部的公共 dns (体现在发起 doh 解析要么证书不匹配要么超时)
也就是说,在这种情况下,境外组使用 ip 形式的 1.1.1.1 或 8.8.8.8 也已经并不安全了。。。
发现大伙对这个劫持场景有点误解
解释下,
由于1的场景,仍旧是需要本地解析时拥有无污染的公共dns服务才会获得一个较好的分流结果
感谢#29 提供的最终方案
dns:
enable: true
prefer-h3: true
default-nameserver:
- 114.114.114.114
- 119.29.29.29
nameserver:
- https://doh.pub/dns-query
- https://doh.360.cn/dns-query
proxy-server-nameserver:
- https://doh.pub/dns-query
- https://doh.360.cn/dns-query
fallback:
- tls://1.1.1.1#节点选择
- tls://8.8.8.8#节点选择
fallback组后面添加的 [#节点选择] 要把井号后面改成自己的代理组策略名称。 运行方式:遇到规则外的域名,clash同步发起两组dns查询时,fallback组的会经过代理后执行dns查询。
在这种情况下一定要单独再设置一组proxy-server-nameserver,这里面的仅用来解析节点本身(如果是ip形式的节点应该就不用了,未测试)
![]() |
1
FlytoSirius 32 天前 via iPhone
早晚的事情,你肯定也能预料到。
而且只会越来越紧 |
![]() |
2
ferock PRO doh 已经沦陷了,dot 呢? 再不行你就自己写死 hosts 解析 dot
|
3
allplay 32 天前 via Android
只能玩远程 DNS
|
4
Danswerme 32 天前
如果让 1.1.1.1 和 8.8.8.8 也走代理,是否能缓解这种情况?
|
![]() |
5
Yanlongli 32 天前
cf 的你拼错了,其他的国内早就无法访问了吧?
|
6
someonesnone 32 天前
如果我拉取 root dns 所有信息然后本地解析呢?
|
![]() |
7
340746 32 天前 via Android
包劫持的,兄弟,建议改成加密的
dns: enable: true #是否启用,如为 false ,则使用系统 DNS 解析 cache-algorithm: arc #支持的算法:lru: Least Recently Used, 默认值 arc: Adaptive Replacement Cache prefer-h3: false #DOH 优先使用 http/3 listen: 0.0.0.0:1053 #DNS 服务监听,支持 udp, tcp ipv6: true #是否解析 IPV6, 如为 false, 则回应 AAAA 的空解析 enhanced-mode: fake-ip #mihomo 的 DNS 处理模式 fake-ip-range: 198.18.0.1/16 #fakeip 下的 IP 段设置,tun 的默认 IPV4 地址 也使用此值作为参考 fake-ip-filter: #fakeip 过滤,以下地址不会下发 fakeip 映射用于连接 - "+.lan" - "+.local" - "+.msftconnecttest.com" - "+.msftncsi.com" - "localhost.ptlogin2.qq.com" - "localhost.sec.qq.com" - "localhost.work.weixin.qq.com" - 'geosite:private' fake-ip-filter-mode: blacklist #可选 blacklist/whitelist ,默认 blacklist ,whitelist 即只有匹配成功才返回 fake-ip use-hosts: false #是否回应配置中的 hosts ,默认 true use-system-hosts: true #是否查询系统 hosts ,默认 true respect-rules: true #dns 连接遵守路由规则,需配置 proxy-server-nameserver default-nameserver: #默认 DNS, 用于解析 DNS 服务器 的域名,必须为 IP, 可为加密 DNS - tls://119.28.28.28:853 - tls://119.29.29.29:853 - tls://223.5.5.5:853 - tls://223.5.5.6:853 nameserver-policy: "geosite:private,cn,geolocation-cn": system "geoip:cn": system proxy-server-nameserver: #代理节点域名解析服务器,仅用于解析代理节点的域名,如果不填则遵循 nameserver-policy 、nameserver 和 fallback 的配置 - tls://119.28.28.28:853 - tls://119.29.29.29:853 - tls://223.5.5.5:853 - tls://223.5.5.6:853 direct-nameserver: #用于 direct 出口域名解析的 DNS 服务器,如果不填则遵循 nameserver-policy 、nameserver 和 fallback 的配置 - system direct-nameserver-follow-policy: false #是否遵循 nameserver-policy ,默认为不遵守,仅当 direct-nameserver 不为空时生效 nameserver: #默认的域名解析服务器 - https://8.8.4.4/dns-query - https://8.8.8.8/dns-query - https://1.1.1.1/dns-query - https://1.0.0.1/dns-query |
![]() |
8
383394544 32 天前
国内外域名分流解析是早就过时的配置,现在都用域名黑名单,命中的直接丢远程解析。代理软件的 dns 只用来解析节点信息和国内直连域名
|
![]() |
9
LongLights OP @383394544 我主贴表达有误 其实就是 nameserver 组和 fallback 组 就是只影响节点本身和列表外的域名
|
![]() |
10
zhf883680 32 天前
坐标江苏电信
试试我发的 dns 解析 clash 用 mihomo 最新的内核 |
11
bli22ard 32 天前
污染早有了。你这用法就比较有问题。 走代理的线路, 连接建立前,就要判断走代理,还是走直连。如果走代理, 就不会在本地发 d 出 dns 解析,hostname 发到代理节点,直接建立连接。直连才会在本地发起 dns 解析
|
![]() |
12
LongLights OP @bli22ard 出问题的环节是本地解析节点地址。。。另外本地其实还是需要一组可信境外 dns 的,用来判断列表外的域名是否需要代理
|
![]() |
13
LongLights OP @Yanlongli 还真是,cf 的似乎没被劫持( ping 1.1.1.1 还是 100 多 ms ),但是 cf 的 doh 还是不能用,dot 可以,是不是 cf 关闭了 doh 服务器。。。
|
14
tifang 32 天前
尝试 IP 模式的 DOH ,从来不用域名 DOH 。
|
15
orluna 32 天前
我说最近 google 怎么老是打不开或者很慢~
|
![]() |
17
leegradyllljjjj 32 天前 ![]() 官方的事儿,能叫劫持吗,那是导人向善
|
18
iijboom 32 天前
你也不看看你 dns.alidns.com 解析出什么了,境外的直接忽略了好吧,各地墙情况不太一样的
|
19
dsx826 32 天前 via Android
江蘇電信早就升級牆啦
|
20
ShaoLongFei 32 天前
江苏已经开始管控了,相对于网络长城对商业部分管控更强一些,好像是今年年初开始的
|
21
txydhr 32 天前 via iPhone
@leegradyllljjjj 国企不代表官方
|
![]() |
22
LongLights OP @tifang 他劫持的就是 ip 类似 8.8.8.8 在江苏 ping 只有二十几 ms 然后结果都是污染的
|
![]() |
23
WizardLeo 32 天前
软路由为什么要从本地解析代理 dns ,不通过代理服务器解析吗?
|
![]() |
24
LGA1150 32 天前
试试开 TFO 之后的 TCP 8.8.8.8:53
|
![]() |
25
LongLights OP @WizardLeo 1. 规则外的域名分流 2. 解析节点本身的 ip
|
![]() |
26
WizardLeo 32 天前
@LongLights
规则外(也就是国内网站)dns 可以用代理服务器进行 google dns+ecs 设置国内的 dns 解析。 解析节点本身 ip 可以直接用运营商 dns ,因为节点对于运营商来说只是普通未知国外域名,并不在黑名单列表内。 顺带一提,可以试试看 9.9.9.9 |
![]() |
27
bjzhou1990 32 天前
opendns 和 4 个 9 的 dot 应该能通,但是不稳定
|
![]() |
28
LongLights OP @bjzhou1990 我这里现在 1.1.1.1 的 dot 和 https://v.recipes/dns-query 这俩可以用
|
![]() |
29
williamszz 32 天前 ![]() fallback:
- 'https://8.8.8.8/dns-query#Proxy' - 'tls://8.8.8.8:853#Proxy' - 'tls://1.1.1.1:853#Proxy' - 'https://1.1.1.1/dns-query#Proxy' 设置 dns 走代理,clash-meta 适用 |
![]() |
30
LongLights OP @williamszz 🐮
|
![]() |
31
LongLights OP @williamszz 这个最好用,感谢层主。
后面有人要是看到这里: 1. fallback 中 dns 添加后缀(如:tls:8.8.8.8#节点选择) 2. dns 配置中增加一个 proxy-server-nameserver (用来解析代理节点本身) |
![]() |
32
M5tuA 32 天前
@LongLights #31 要不楼主再更新下附言?看下最终版本
|
![]() |
33
LongLights OP @M5tuA ok 贴了
|
![]() |
34
M5tuA 31 天前
@LongLights #33 谢谢
|
35
daisyfloor 31 天前
既要防止 DNS 泄露,又不想分流里里给 ip 规则设置 no-resolve 。那就这么来,非常简单:
dns: enable: true ipv6: false enhanced-mode: fake-ip fake-ip-filter: - "+.lan" - "+.local" nameserver: - https://8.8.8.8/dns-query#Proxy - https://1.1.1.1/dns-query#Proxy nameserver-policy: 'geosite:cn': [223.5.5.5, 运营商 dns, 119.29.29.29] - 直连的域名直接走运营商或者国内公共 DNS - 海外的规则内的域名,直接通过分流规则到远端节点解析 - 没有命中规则的域名(可能是国内,也可能是国外),通过 ip 规则兜底,但为了避免 dns 泄露,通过远端代理解析。 so easy 而且'geosite:cn' 这部分 你还可以更灵魂,按需使用 rule-set 都可以。 对了,建议用 tun 模式,一劳永逸。 |
36
daisyfloor 31 天前
fallback 是一种落后的逻辑,后续估计开发者会去掉
|
![]() |
37
PROJECT 31 天前
直接用国内的云主机自建 DOH ,比较保险
|
38
Kacxxia 31 天前 via Android
@daisyfloor policy 的 geosite cn 的国内 dns 也可以放 direct-nameserver 里,这样如果有 geosite cn 以外的直连规则话也会走这解析
|
![]() |
39
zhu327 31 天前
fakeip 可解
|
![]() |
40
Sekai 31 天前
几年前就自建 dns 了
|
![]() |
41
pauluswanggang 31 天前 ![]() 江苏的宽带运营商是最恶心的运营商,无论移动电信还是联通,统统都有 dns 劫持,在其他省能上的网站到了江苏很多都不能上,真不想再去江苏了
|
![]() |
42
feikaras 31 天前 via iPhone
应该说移动拦截了 N 多年了。你终于通网了。
但 这种事情你又有什么可以 care 的,用运营商 dns 是最佳配置,干一些事也不走运营商 dns |
![]() |
43
xiamy1314 31 天前
不是没 fallback 了吗
|
![]() |
44
fcoo 31 天前 ![]() 江苏真是墙中墙,一个大省居然恶心到这样,而且江苏的网站备案好像还要视频朗读什么声明保证书之类的才能备案,这样的环境难怪也没有什么互联网大厂
|
![]() |
45
superht 31 天前
fallback 查询的目的,只是为了匹配 ip 规则,匹配到走节点的规则时,最终发送的还是域名,所以为啥不一开始匹配域名规则——直接发域名远端解析
|
46
tifang 31 天前
这也太狠了啊,连 AliDNS 都要走代理了。
|
![]() |
48
bclerdx 31 天前 via Android
@pauluswanggang 骂骂咧咧没用,投诉反抗是真理。
|
49
Hephaistos 31 天前
clash 的话,加上 respect-rules ,需要走代理的全部丢到远端去做 dns
respect-rules: true proxy-server-nameserver: - https://dns.alidns.com/dns-query nameserver-policy: "geosite:cn,private": - 223.5.5.5 nameserver: - https://dns.google/dns-query - https://dns.cloudflare.com/dns-query direct-nameserver: - 223.5.5.5 |
![]() |
50
JensenQian 28 天前
@fcoo 几年前不用的
22 年开始要的 |
51
fred649 28 天前
河南🙊
|
52
acaiplus 27 天前
@Danswerme
正确的配置 1.1.1.1 和 8.8.8.8 就是应该走代理的,不然还是会被污染或无法访问。但是节点的域名需要用境内的先解析出来,或者配置反向 DNS 跳过解析。不然会因为节点域名默认走 1.1.1.1 解析导致无法使用。 |
![]() |
53
cqhtyi 25 天前
把以下内容写进 Clash Verge 的全局扩展覆写配置:
# Profile Enhancement Merge Template for Clash Verge profile: store-selected: true dns: enable: true prefer-h3: true use-system-hosts: true listen: :53 ipv6: true enhanced-mode: normal default-nameserver: - 119.29.29.29 - 182.254.116.116 - 180.76.76.76 - 114.114.114.114 nameserver: - https://doh.pub/dns-query - https://dns.alidns.com/dns-query fallback: - https://cloudflare-dns.com/dns-query - https://dns.google/dns-query fallback-filter: geoip: true geoip-code: CN ipcidr: - 240.0.0.0/4 - 2001::1/128 - ::1/128 - 221.228.32.13/32 |