我使用的是基于 clash.meta 内核的 tpclash ,配置文件是基于 rule-set 编写的,rules 部分的内容如下:
rules:
# 开始匹配规则
## 直连
- RULE-SET,cndirect,DIRECT
- RULE-SET,direct,DIRECT
- RULE-SET,applecn,DIRECT
- RULE-SET,applications,DIRECT
- RULE-SET,mtracker,mtracker
- RULE-SET,mpt,mpt
## geo 直连
- GEOSITE,cn,DIRECT
- GEOIP, cn, DIRECT
- RULE-SET,mdirect,mdirect
- RULE-SET,mproxy,mproxy
# 代理匹配
- RULE-SET,gscholar,gscholar
- RULE-SET,openai,openai
- RULE-SET,microsoft,microsoft
- RULE-SET,youtube,youtube
- RULE-SET,google,google
- RULE-SET,github,github
- RULE-SET,apple,apple
- RULE-SET,bili_us,bilius
- RULE-SET,spotify,spotify
- RULE-SET,telegram,telegram
- RULE-SET,emby,emby
- RULE-SET,gfw,PROXY
- GEOSITE,geolocation-!cn,PROXY
- RULE-SET,reject,REJECT
- SRC-IP-CIDR,192.168.6.155/32,DIRECT
- MATCH,PROXY
但是今天我发现,当我的 mac 用浏览器访问 google 时,并没有匹配到 google 对应的 rule-set ,而是匹配到了最后的 MATCH ,访问 youtube 也没有匹配到 youtube 对应的 rule-set ,不知道有没有 V 友碰到过类似的问题?
Firefox 和 Edge 浏览器都测试过了,均关闭了安全 DNS 功能。
webui 中查看连接时,感觉就像域名的访问请求被提前出来了 ip ,clash 只接管了 ip 的请求。
1
devswork 2023-12-18 18:48:08 +08:00 2
把 geoip 这一行放倒数第二行
|
4
565656 2023-12-18 20:04:41 +08:00
用- DOMAIN-KEYWORD,google,google 试试看,我用的是 parser 里面没问题
|
5
EEXII 2023-12-18 20:50:51 +08:00
用的 rule-providers?
|
6
malagebidi 2023-12-18 20:54:35 +08:00
我的 clash.meta 配置没使用 RULE-SET ,直接 geosite 和 geoip 就行了。
|
7
devswork 2023-12-18 21:56:37 +08:00
你的 DNS 配置是什么? clash 上做了劫持了吗,如果你的 DNS 指向不是到 clash 上,而是到了别的 DNS ,那么浏览器会从你设定的 DNS 上直接解析出 IP ,然后对 IP 发起链接,这些链接又会经过 clash (因为 IP 非 CN 地区),对于 clash 角度而言,你的这些 RULE 没什么用,因为到 clash 这里已经都是 IP 的链接了,而不是基于域名,因为 DNS 不是经过 clash 。
你可以浏览器上安装 SwitchyOmega ,然后在 SO 里把所有的类型的都指向到你的 clash 上,看看是否正常( SO 会接管所有请求包括 DNS 查询)。 |
8
zwyyy456 OP @devswork clash 上是有做 dns 劫持的,就是有时候日志中能看到是匹配了域名的请求,有时候又变成了全都是 ip 。
|
10
zwyyy456 OP @devswork
dns 配置如下 ```yaml dns: enable: true # 关闭将使用系统 DNS prefer-h3: true # 开启 DoH 支持 HTTP/3 ,将并发尝试 listen: 0.0.0.0:1053 # 开启 DNS 服务器监听 ipv6: false # 如果需要 ipv6 设置为 true default-nameserver: # - 192.168.6.1 fakeip 模式不使用内网地址作为 dns # defautl dns 需要是纯 IP - https://223.5.5.5/dns-query - https://1.12.12.12/dns-query # - https://doh.pub/dns-query # - 223.5.5.5 # - 1.12.12.12 enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 fake-ip-filter: #这里可以填写不使用 fakeip 的域名 - "*.jd.com" ``` |
11
zwyyy456 OP 还发现了一个现象,我在家里的 windows 的笔记本上 ping tracker.x.com 时,返回的是 fakeip 生成的一个虚假 ip ,而在实验室上 ping tracker.x.com 时,返回的是 tracker.x.com 对应的真实 ip ;
实验室和家里都有一台运行 tpclash 的 n1 当旁路由,win 和 mac 的网关分别指向了这两台 n1 。 |
12
zwyyy456 OP 家里的主路由是刷了 padavan 的小米,实验室的主路由是刷了 openwrt 的 360t7 ,windows 和 mac 都是网关指向 n1 的 ip ,dns 都是填的 223.5.5.5 和 1.1.1.1 ;根据 tpclash 原先作者的说法,这里这个 dns 只要不填 n1 本身的 ip 就行
,所有的 dns 解析都会被运行在 n1 上的 tpclash 劫持。 |
13
israinbow 2023-12-19 08:34:43 +08:00 via Android
geoip 服务挂了, 上次集体跑路的时候一起跑路了, 这条规则删了吧.
|
14
zwyyy456 OP 直接将主路由重置了,现在看起来正常了。。。
|