vernesong/OpenClash

[Bug] 绕过**大陆IP功能对一些网站无效

missing233 opened this issue · 26 comments

Verify Steps

  • Tracker 我已经在 Issue Tracker 中找过我要提出的问题
  • Branch 我知道 OpenClash 的 Dev 分支切换开关位于插件设置-版本更新中,或者我会手动下载并安装 Dev 分支的 OpenClash
  • Latest 我已经使用最新 Dev 版本测试过,问题依旧存在
  • Relevant 我知道 OpenClash 与 内核(Core)、控制面板(Dashboard)、在线订阅转换(Subconverter)等项目之间无直接关系,仅相互调用
  • Definite 这确实是 OpenClash 出现的问题
  • Contributors 我有能力协助 OpenClash 开发并解决此问题
  • Meaningless 我提交的是无意义的催促更新或修复请求

OpenClash Version

v0.46.020-beta

Bug on Environment

Official OpenWrt

OpenWrt Version

OpenWrt 23.05.2

Bug on Platform

Linux-amd64(x86-64)

Describe the Bug

如同此issue #3990
设置绕过**大陆后百度、小红书、qq.com等一系列常见国内网站流量都会走clash核心。
一些不常用的网站反而没有此问题,例如whois.pconline.com.cn反而正常直连了,即使订阅的配置文件中有此网站规则也不会进入核心
海外回国模式正常,观察控制面板中的连接没有出现过非大陆IP的连接

To Reproduce

启用绕过**大陆IP功能。
v0.46.014-beta到v0.46.020-beta,也更换过Meta内核版本,此问题仍然复现。

OpenClash Log

https://bin.disroot.org/?31e17415982f889e#FsDvVkSCv7YYhEyo8YRYUCA5RDQ7qZHycw4DqB4jS6tP

OpenClash Config

china_ip_route=1
china_ip6_route=1

Expected Behavior

修复此问题

Additional Context

测试环境宽带为日本au one net,无论是更新过海外回国模式的dev版本还是没更新的master分支版本都存在此问题,绕过**大陆模式对部分网站无效,海外回国模式一切正常
怀疑与DNS有关,我的网络环境中DNS为谷歌和cloudflare以及ISP的DNS,没有指定国内的DNS服务器
由于暂时不在国内,无法测试此问题是否会出现在国内宽带环境中。

确实是这样,我发现似乎是META内核的问题,更新到alpha-gc4660e1,ip138显示在走代理,百度等国内网站延时非常高,甚至断网。更换了之前我备份的alpha-g09be5cb,更换后一切又正常了

PS:刚刚更新到v0.46.020-beta,发现在版本更新选项只有META内核了,Dev和tun没有了吗?

确实是这样,我发现似乎是META内核的问题,更新到alpha-gc4660e1,ip138显示在走代理,百度等国内网站延时非常高,甚至断网。更换了之前我备份的alpha-g09be5cb,更换后一切又正常了

PS:刚刚更新到v0.46.020-beta,发现在版本更新选项只有META内核了,Dev和tun没有了吗?

我这边换成alpha-g09be5cb也无效,控制面板里一直都能看到百度小红书ip138。
DEV和tun内核是clash premium的吧?都删库outdated了

我wegame加载巨慢,LOL玩不了一直提示断开连接。关掉clash立马恢复正常

确实是这样,我发现似乎是META内核的问题,更新到alpha-gc4660e1,ip138显示在走代理,百度等国内网站延时非常高,甚至断网。更换了之前我备份的alpha-g09be5cb,更换后一切又正常了
PS:刚刚更新到v0.46.020-beta,发现在版本更新选项只有META内核了,Dev和tun没有了吗?

我这边换成alpha-g09be5cb也无效,控制面板里一直都能看到百度小红书ip138。 DEV和tun内核是clash premium的吧?都删库outdated了

重启一次看看

还以为就我这有问题,英雄联盟一直站在泉水提示正在连接,但我把clash关了还是这样,总感觉是被修改了防火墙规则,导致游戏数据不知道被转发到哪去了

还以为就我这有问题,英雄联盟一直站在泉水提示正在连接,但我把clash关了还是这样,总感觉是被修改了防火墙规则,导致游戏数据不知道被转发到哪去了

我这个问题经过一天的排查找到原因了,跟openclash无关,原因出在linux内核上,最近两版6.6的内核有异常,6.6.47和6.6.46,导致游戏一致掉线重连

我是iStoreOS 内核5.10.221,关掉插件一切正常,开起来就不行

库更新一下

image
ipset的情况看不到,看是不是依赖问题

image ipset的情况看不到,看是不是依赖问题

安装了ipset-lists包后可以看到了:
https://bin.disroot.org/?430635285dfc2222#3CDveju7Yhg6p3Wrza8cqwZUWPdMLbbDJYME6WfGMZuT
这是新的日志

root@OpenWrt:~# ipset list -t
Name: china
Type: hash:net
Revision: 7
Header: family inet hashsize 2048 maxelem 65536 bucketsize 12 initval 0x21f4b966
Size in memory: 158784
References: 0
Number of entries: 5595

Name: local
Type: hash:net
Revision: 7
Header: family inet hashsize 1024 maxelem 65536 bucketsize 12 initval 0x8c2c50b6
Size in memory: 696
References: 0
Number of entries: 5

你先把v6关了

你先把v6关了

我这边v4是走4in6隧道的,关V6就断网了。。

/etc/openclash/china_ip6_route.ipset

看看这个文件

分别执行下面两个命令看看

nft 'flush set inet fw4 china_ip6_route'
nft -f '/etc/openclash/china_ip6_route.ipset'

/etc/openclash/china_ip6_route.ipset

看看这个文件

分别执行下面两个命令看看

nft 'flush set inet fw4 china_ip6_route'
nft -f '/etc/openclash/china_ip6_route.ipset'

https://bin.disroot.org/?d29ec4d07d1059c2#852SAs1mrH5tncGdzThSvQ3Qo9Ptz8JAh1Tpxy2fLkjL
内容上看起来没什么问题,下面两条命令也执行了

那应该不是插件问题

那应该不是插件问题

好吧。回去看看大陆宽带的情况,不清楚这个诡异问题的原因。。反向回国是没有问题的

确实是这样,我发现似乎是META内核的问题,更新到alpha-gc4660e1,ip138显示在走代理,百度等国内网站延时非常高,甚至断网。更换了之前我备份的alpha-g09be5cb,更换后一切又正常了

PS:刚刚更新到v0.46.020-beta,发现在版本更新选项只有META内核了,Dev和tun没有了吗?

是我的也是更新到v0.46.020-beta,Dev和tun没有了,有什么影响嘛

v0.46.022-beta依然存在此问题

应该是内核的问题,dns处理逻辑有误,用新内核再试试吧

应该是内核的问题,dns处理逻辑有误,用新内核再试试吧

image
会不会跟openwrt补丁有关系,我更新了修复后的linux内核后没有这个问题了

应该是内核的问题,dns处理逻辑有误,用新内核再试试吧

我的系统内核还是5.15.137
这个也会影响吗?
@vernesong @OldCoding

clash内核,固件一般没人天天换

clash内核,固件一般没人天天换

检查更新里没有新版本,应该是最新内核alpha-g08ac9a3了。这个问题一直存在

可能是ipv6绕过大陆ip没生效,我的dashboard里查看链接大部分都是走tproxy的ipv6直连链接。原来版本东北大学测速网显示的ipv6地址是测速设备的,现在变成路由器的地址了

可能是ipv6绕过大陆ip没生效,我的dashboard里查看链接大部分都是走tproxy的ipv6直连链接。原来版本东北大学测速网显示的ipv6地址是测速设备的,现在变成路由器的地址了

我这里V4V6绕过大陆均有存在失效情况,主要集中在百度小红书qq.com之类的网站。反而类似whois.pconline这种非热门网站能正常绕过

已验证,退回v0.46.020后恢复正常