Clash_Meta

Interstellar
Interstellar
发布于 2024-03-13 / 38 阅读
1
0

Clash_Meta

本文记录个人对Clash_Meta一些设置和工作原理的理解

虚空终端 Docs

DNS 解析

嗅探是在输入前完成的,因此无法使用规则

![[…/…/…/Utility/Excalidraw/openclashDNS.excalidraw]]

nameserver 解出为国外的地址,或者被污染的地址,或命中fallback-filter 中配置,决则会采用 fallback 的解出结果,然后再确定是否代理
Fallback 组的 DNS 查询是由代理服务器完成的,因为 Fallback 组的作用是处理被墙网站的 DNS 查询。而 Nameserver 组的 DNS 查询则可以由用户自行配置,解析会按照默认 DNS 解析的方式进行解析,即先查询本地缓存、再查询 hosts 文件、一般情况下是由本地 DNS 服务器或者公共 DNS 服务器进行解析的或系统默认的 DNS 服务器进行解析


ipleak 不在规则中,进行 DNS 解析

首先有两组上游 DNS 配置,分别是 nameserver 和 fallback ,在 redir-host 模式下,当客户端 DNS 请求到达 clash 时,其会同时向两组中的 DNS 服务器并发请求,并以 nameserver 中最先返回的结果作为依据,按照 fallback-filter 的配置情况,决定是否需要使用 fallback 的结果作为最终的解析结果,供后续规则判断使用。

遇到 geoip 时, 会为了分流而发起 DNS 请求, 配置了 DNS 服务器并且其他设备使用此 DNS 服务器进行解析时,Clash 工作流程如下: 从 nameserver 和 fallback 里的 DNS 进行并发请求,并且选取 nameserver 中最先响应的结果作为基准使用 GEOIP 判断此 IP 的所属区域,如果属于国内(CN)或保留地址则直接响应给客户端其他情况则把 fallback 中的结果响应给客户端

缺点: 也就意味这访问规则中没有的国外网站,会通过 nameserver 查询地址,如果恰巧被污染为 cn (一般被污染都不会被污染为国内的),则无法访问,绝大多数情况下不会被污染为 cn,走 fallback, 所以所有匹配为 GeoIP: CNmatch 的网站会发生 DNS 泄露

fallback-filter:
  geoip: true    #为真时,不匹配为geoip CN的规则的使用fallback返回结果
  geoip-code: CN
  geosite:      #【Meta专属】设定geosite某分类使用fallback返回结果
      - gfw 
  ipcidr:      #列表中的ip使用fallback返回解析结果
    - 0.0.0.0/8
    - 10.0.0.0/8
    - 100.64.0.0/10
    - 127.0.0.0/8
    - 169.254.0.0/16
    - 172.16.0.0/12
    - 192.0.0.0/24
    - 192.0.2.0/24
    - 192.88.99.0/24
    - 192.168.0.0/16
    - 198.18.0.0/15
    - 198.51.100.0/24
    - 203.0.113.0/24
    - 224.0.0.0/4
    - 240.0.0.0/4
    - 255.255.255.255/32
  domain:       #列表中的域名使用fallback返回解析结果
    - "+.msftconnecttest.com"
    - "+.msftncsi.com"

![[…/…/…/Utility/Excalidraw/Drawing 2023-01-02 14.24.16.excalidraw]]

路由规则

openclash 绕过中国 ip 是路由表实现的,和 clash 无关,如果目的地址是中国 IP 就不转发到 clash

每个 IP-CIDR 都带 no-resolve,因为 IP-CIDR 代表访问的地址范围,为IP

meta

一个 netflix 服务有域名和 IP 多个连接

netflix.com 访问–>域名规则 -->代理
netflix 内部可能直接使用了加密 DNS–>得到的 IP ,本地规则这个 IP 中没有分流到 Netflix 规则中,导致没有 netflix 没有被解锁

解决–>强制嗅探纯 IP

因为 IP 也需要建立 TCP 连接,进行 TLS 握手,此时可以嗅探出 TLS 握手的 SNI 字段,然后确定该 IP 对应的域名,进行分流

sniffer 域名探测

`Meta 内置了 Sniffer 域名嗅器,通过读取握手包内的域名字段,将 IP 还原成域名,有效解决 Mapping 机制的短板

为了解决这个问题,Clash 使用 Mapping 机制,通过在规则中配置一个 IP 与域名的映射关系,将特定 IP 地址的网络流量定向到指定的代理服务,从而提高了域名分流的准确性和效率

捕获到的流量通常只包含目标服务器的 IP 地址,而没有域名信息。Clash Meta内置的Sniffer域名嗅探器可以帮助读取网络包的域名字段,从而将IP地址还原成域名,进一步提升Mapping机制的可靠性和精准性。

skip-domain

在skip-domain列表中,既可以指定域名进行跳过嗅探,也可以指定特定的关键词或字符串进行跳过。

  1. 避免冲突:有些域名可能会与特定的网络流量处理规则冲突。如果已经明确知道不需要对这些域名进行特殊处理,可以将其添加到 skip-domain 列表中,避免冲突和不必要的处理过程。
  2. 绕过嗅探限制:某些域名或服务可能会有反嗅探措施,即阻止嗅探器获取真实的域名信息。在这种情况下,将这些域名添加到 skip-domain 列表中,避免浪费资源进行嗅探。

skip-domain:遇到 SNI 字段为列表中的内容时,保留 Mapping 结果,不使用嗅探的内容覆盖 Mapping 结果(主要解决部分站点 SNI 字段非域名,导致嗅探结果异常的问题,支持通配符)。

在 Clash 中,为了实现域名分流,通常会使用一种称为“mapping”的机制,即将 IP 地址映射到对应的域名上,然后根据域名进行分流。这个映射关系通常是通过配置文件手动添加的。

但是,在某些情况下,服务器在握手过程中发送的 SNI 字段并不是客户端想要访问的域名,导致 mapping 结果和实际域名不匹配,从而无法进行准确的域名分流。这时候,Clash 可以通过嗅探握手包中的域名字段,将 IP 地址还原成正确的域名,从而实现精准的域名分流。

skip-domain 选项可以用于避免对一些特定的 SNI 字段进行嗅探,保留原有的 mapping 结果,以解决某些站点 SNI 字段不是域名导致的嗅探结果异常问题。而嗅探结果和 mapping 结果之间的区别在于,mapping 结果是手动配置的 IP 地址到域名的映射关系,而嗅探结果是通过解析握手包中的 SNI 字段得到的实际域名。举例来说,假设一个站点的 IP 地址为1.2.3.4,但是其 SNI 字段为 example. com,而手动配置中该 IP 地址对应的域名为 abc. com,这时候嗅探结果就会将1.2.3.4还原成 example. com,从而实现精准的域名分流。

握手包

(Handshake Packet)是指在计算机网络中,用于建立安全连接的一种数据包,通常用于 SSL/TLS 协议中。在 SSL/TLS 握手过程中,客户端和服务器端通过交换握手包来协商加密算法、生成密钥、验证证书等步骤,从而确保通信的机密性和完整性。

在网络通信中,握手包通常包含了通信双方的身份认证信息、加密算法、会话密钥等重要数据。因此,在网络安全方面,握手包也扮演了非常重要的角色。

sni 字段

SNI(Server Name Indication)字段是 TLS 协议中的一个扩展,用于在 SSL/TLS 握手过程中,告诉服务器客户端想要访问哪个域名,使得服务器能够选择正确的证书提供给客户端,以完成 SSL/TLS 连接。

拦截HTTPDNS

🚫 HTTPDNS · VirgilClyne/GetSomeFries Wiki


HTTPDNS 绕过了本地 DNS 设置、暴露源 IP、绕过用户分流与规则设置,并且不是标准协议,增加了管理和隐私风险。相比之下,DoH 和 DoT 是标准化的协议,提供更好的隐私保护和安全性。
HTTPDNS不是由IETF(互联网工程任务组)标准化的协议。各大HTTPDNS供应商自行定义接口和使用方法,缺乏统一标准,增加了管理和控制的复杂性。

HTTPDNS会存在以下问题

  1. 绕过系统/路由器/VPN/本地 DNS (类似 DNS 劫持)
  2. 暴露源 IP,查询请求会直接发送到HTTPDNS服务器,而不是通过本地DNS服务器或VPN隧道。这会暴露设备的真实IP地址给HTTPDNS服务提供商,增加隐私泄露的风险。
  3. 绕过用户分流与规则设置,直接获取IP地址并进行连接,绕过了代理工具的域名分流和规则设置
  4. 特殊加密和隐私风险**: 一些 HTTPDNS 服务可能使用特殊的加密算法,发送更多的用户隐私数据。由于 HTTPDNS 服务提供商自行定义接口和使用方法,这些请求可能包含更多的隐私信息。
  5. 广告:些移动应用程序使用HTTPDNS来绕过用户设置的广告和跟踪器屏蔽规则。通过直接解析并连接到IP地址,这些应用程序可以隐藏广告和跟踪请求,使用户的过滤规则失效

也就是直接通过域名得到了 IP 地址,而没有通过 openclash 的 DNS

其他

clash导致局域网内iphone手机待机耗电严重增加
[Bug] R2S 旁路由运行 OpenClash 严重增加局域网内 iPhone 待机耗电 · Issue #2614 · vernesong/OpenClash

客户端指纹

geo_ip

geosite 的值可以是一个或多个地理位置或站点分类名称,以下是一些常见的值:

  • cn:中国大陆
  • tw:台湾地区
  • hk:香港地区
  • jp:日本
  • kr:韩国
  • sg:新加坡
  • my:马来西亚
  • us:美国
  • eu:欧洲
  • gfwlist:基于 GFWList 的网站列表
  • google:谷歌网站和服务
  • facebook:Facebook 网站和服务
  • twitter:Twitter 网站和服务

tun路由表

![[openclash/assets/tun模式(路由表)/image-20230315211231146.png|assets/tun模式(路由表)/image-20230315211231146.png]]
window clash 的 tun 模式自动添加两条路由表, 网络地址包含所有 ipv4 的地址, 意味接管网络所有流量,所有访问将 198.18.0.1 接口的数据传给 198.18.0.2 网关 (虚拟网卡的地址), 为避免环回, clash 会设置出口为物理网卡

![[openclash/assets/tun模式(路由表)/image-20230315211608315.png|assets/tun模式(路由表)/image-20230315211608315.png]]

VPN 加密清晰明了的写明了它就是 VPN 流量, 没有很好的隐藏流量特征, 且分流很不方便
![[openclash/assets/tun模式(路由表)/image-20230315212518621.png|assets/tun模式(路由表)/image-20230315212518621.png]]

win 10 显示没网

因为 fake-ip 返回的地址是私有 IP, win10 系统默认防护,会认为 DNS 被劫持,导致显示没有网络,解决添加 fake-ip-filter, 返回真实 IP 即可

UDP

由于 UDP 必须使用真实 IP, fake-ip 也会发起 DNS 请求,而不适用假 ip
比如启用 quic 协议的 youtube, 会发起 udp 请求,最后 DNS 泄露

由于 udp 是无状态的, redirect 无法帮助我们获取到原始 IP

会使用 tproxy

之后 openclash 能获取到目标 IP, 会进行代理

增强模式 : redirect+tproxy
混合模式 : redirect+tun

本机程序会直接输出无法代理, openclash 会重新路由到路由前

tun 模式,创建虚拟网卡

流量会先转到 tun 网卡,而openclash 可以直接从 tun 读取数据
tproxy 代理可能出现很多问题

发送代理服务器

加密发给节点服务器

假设服务器 IP 和端口 3.3.3.3:8838


# +号前可以有多级域名,*只能有一级域名
*.lan
*.localdomain
*.example
*.invalid
*.localhost
*.test
*.local
*.home.arpa
#放行NTP服务
time.*.com
time.*.gov
time.*.edu.cn
time.*.apple.com
time-ios.apple.com
time1.*.com
time2.*.com
time3.*.com
time4.*.com
time5.*.com
time6.*.com
time7.*.com
ntp.*.com
ntp1.*.com
ntp2.*.com
ntp3.*.com
ntp4.*.com
ntp5.*.com
ntp6.*.com
ntp7.*.com
*.time.edu.cn
*.ntp.org.cn
+.pool.ntp.org
time1.cloud.tencent.com
#放行网易云音乐
music.163.com
*.music.163.com
*.126.net
#百度音乐
musicapi.taihe.com
music.taihe.com
#酷狗音乐
songsearch.kugou.com
trackercdn.kugou.com
#酷我音乐
*.kuwo.cn
#JOOX音乐
api-jooxtt.sanook.com
api.joox.com
joox.com
#QQ音乐
y.qq.com
*.y.qq.com
streamoc.music.tc.qq.com
mobileoc.music.tc.qq.com
isure.stream.qqmusic.qq.com
dl.stream.qqmusic.qq.com
aqqmusic.tc.qq.com
amobile.music.tc.qq.com
#虾米音乐
*.xiami.com
#咪咕音乐
*.music.migu.cn
music.migu.cn
#QQ登录
localhost.ptlogin2.qq.com
localhost.sec.qq.com
+.qq.com
+.tencent.com
#Game
#Nintendo Switch
+.srv.nintendo.net
*.n.n.srv.nintendo.net
#Sony PlayStation
+.stun.playstation.net
#Microsoft Xbox
xbox.*.*.microsoft.com
*.*.xboxlive.com
xbox.*.microsoft.com
xnotify.xboxlive.com
#Wotgame
+.battlenet.com.cn
+.wotgame.cn
+.wggames.cn
+.wowsgame.cn
+.wargaming.net
#Golang
proxy.golang.org
#STUN  Game Service
stun.*.*
stun.*.*.*
+.stun.*.*
+.stun.*.*.*
+.stun.*.*.*.*
+.stun.*.*.*.*.*
#Linksys Router
heartbeat.belkin.com
*.linksys.com
*.linksyssmartwifi.com
#ASUS Router
*.router.asus.com
#Apple Software Update Service
mesu.apple.com
swscan.apple.com
swquery.apple.com
swdownload.apple.com
swcdn.apple.com
swdist.apple.com
#Google
lens.l.google.com
stun.l.google.com
#Netflix
+.nflxvideo.net
#FinalFantasy XIV Worldwide Server & CN Server
*.square-enix.com
*.finalfantasyxiv.com
*.ffxiv.com
*.ff14.sdo.com
ff.dorado.sdo.com
#Bilibili
*.mcdn.bilivideo.cn
#Disney Plus
+.media.dssott.com
#shark007 Codecs 
shark007.net
#Mijia
Mijia Cloud
#招商银行
+.cmbchina.com
+.cmbimg.com
#AdGuard
local.adguard.org
#迅雷
+.sandai.net
+.n0808.com
#game
+.tfogc.com
+.qpic.cn
+.cdn-go.cn
*.douyucdn.cn:
+.gtimg.com
+.ra2.com
+.ramboplay.com
+.douyucdn.cn:
+.wegame.com.cn
+.wegame.gtimg.com
+.anticheatexpert.com
+.qq.com
+.ra2ol.com
+.trace.qq.com
+.ramboplay.com
## 自身下载需返回真实 IP
+.vsean.net
+.github.com
+.kujiale.cn
+.kujiale.com
+.supes.top
#win10本地连接检测
+.msftconnecttest.com
+.msftncsi.com
+.edu.cn
#阿里
+.aliyundrive.com
+.aliyundrive.net
+.aliyun.com
#插件
+.jsdelivr.net
+.jsdelivr.net
+.fastgit.org
+.githubusercontent.com
+.jaist.ac.jp
#12306
+.12306.cn
+.95306.cn
+.95572.com
+.china-railway.com.cn
+.china-ric.com
+.crct.com
+.cre.cn
+.crecc.com.cn
+.creip.cn
+.crscl.com.cn
+.gzrailway.com.cn
+.nntlj.com
+.peoplerail.com
+.rails.cn
+.tdpress.com
 +.xboxlive.com
+ .msftconnecttest.com
+.msftncsi.com
+.xbox.ipv6.microsoft.com
+.riotcdn.com


评论