libnyanpasu / clash-nyanpasu

Clash Nyanpasu~(∠・ω< )⌒☆​
https://nyanpasu.elaina.moe
GNU General Public License v3.0
9.57k stars 599 forks source link

Service Mode 开启下,系统无法正常进入S0睡眠状态 #208

Closed bill2funny closed 2 months ago

bill2funny commented 11 months ago

复现步骤 / Step to reproduce

Hi

我遇到了TUN/Serivce Mode开启状态下的睡眠问题。以下是排查过程和复现步骤。

Clash Nyanpasu 1.42 开启,开启Service Mode,开启TUN,Windows11系统无法正常进入S0睡眠状态。 经过多次变量控制,发现: 1、关闭Service Mode,开启TUN,系统正常进入睡眠状态。(正常) 2、开启Service Mode,关闭TUN,系统正常进入睡眠状态。(正常) 3、开启Service Mode,开启Proxy,系统正常进入睡眠状态。(正常) 4、开启Service Mode,开启TUN,系统无法进入睡眠状态。(Bug出现) 5、开启Service Mode,开启TUN,开启Proxy,系统无法进入睡眠状态。(Bug出现) 6、使用Clash Verge 1.38,开启Service Mode,开启TUN,无此问题,可以正常进入睡眠模式。(正常)

排除过的问题:排除网卡故障(2个不同版载网卡+usb网卡都测试过),排除配置文件问题(空配置也能触发bug)

这个Bug需要复现的环境是:必须启用S0 Standby睡眠模式。 另外一台设备使用S3 Standby睡眠模式,无法复现此问题。

已经使用过Pre-release版本,问题依旧。

个人初步判断,对Service Mode/TUN的某些改动可能引入了Bug

预期行为 / Expected behaviour

点击Sleep/或10分钟以后,应该正常进入S0睡眠状态.

实际行为 / Actual Behaviour

在Clash Nyanpasu 1.42中,开启Service Mode,点击Sleep/或10分钟以后,无法进入睡眠状态,在SleepStudy中提示TCPIP-DAD Duplicate address detection (DAD) WX20231228 WX20231228-2

在Clash Nyanpasu 1.42中,关闭Service Mode,点击sleep,睡眠正常 在Clash Verge 1.38中,开启Service Mode点击,sleep,睡眠正常

应用日志 / App logs

没有有效日志

备注 / Addition details

No response

Clash Nyapasu 版本号 / Clash Nyapasu

1.42

是否为 Pre-release / Is pre-release version

85bc278

操作系统及版本 / OS version

Windows11 23H2 22631.2861

自查步骤 / Verify steps

bill2funny commented 11 months ago

Hi

我继续定位了一下问题:

Clash Nyanpasu 1.42 使用管理员模式启用TUN,系统可以进入睡眠状态

所以大概率问题出在对Serivce Mode修改的代码上。

greenhat616 commented 11 months ago

需要调查一下,可能和依赖更新引发的问题有关系。 https://github.com/greenhat616/clash-verge-service/commit/37ae0726b56f8560a1a498d05009d52b9353a52c

bill2funny commented 11 months ago

就我一个遇到么,怎么样可以使用低版本的clash verge service,这样我就可以测试是不是clash verge service依赖更新造成的问题了

greenhat616 commented 11 months ago

可以把这个 https://github.com/greenhat616/clash-verge-service/commit/715c331c37791bfb0c528bbbf900624884510c27 手动打给 https://github.com/zzzgydi/clash-verge-service

不打这个补丁的话,1.4.2 下 Meta、Meta Alpha、ClashRS 会无法工作

编译出二进制后,手动替换 resources 目录下相应的文件即可

bill2funny commented 11 months ago

可以把这个 greenhat616/clash-verge-service@715c331 手动打给 https://github.com/zzzgydi/clash-verge-service

不打这个补丁的话,1.4.2 下 Meta、Meta Alpha、ClashRS 会无法工作

编译出二进制后,手动替换 resources 目录下相应的文件即可

这个超出我的能力范围了,我试试吧

bill2funny commented 11 months ago

可以把这个 greenhat616/clash-verge-service@715c331 手动打给 https://github.com/zzzgydi/clash-verge-service

不打这个补丁的话,1.4.2 下 Meta、Meta Alpha、ClashRS 会无法工作

编译出二进制后,手动替换 resources 目录下相应的文件即可

手动替换。然后在线编译失败了,是要在本地搭个环境编译么,还是我改改啥?

image
greenhat616 commented 11 months ago

看起来库炸了,不知道和 rust 版本有没有关系

bill2funny commented 11 months ago

需要调查一下,可能和依赖更新引发的问题有关系。 greenhat616/clash-verge-service@37ae072

我用rust 1.58在本地编译成功了,替换以后,系统依然无法进入睡眠状态,所以应该是其他问题

greenhat616 commented 11 months ago

那就难以调查了,看起来像是内核改动了什么引起的。 使用的是 Mihomo(Meta)内核么?

bill2funny commented 11 months ago

那就难以调查了,看起来像是内核改动了什么引起的。 使用的是 Mihomo(Meta)内核么?

是的,用的是Meta内核,我切换过alpha版本,也有一样的问题

我现在准备用MetaCubeX Fork的那份Clash Verge试试 如果还有问题,那应该是Meta1.17内核问题,如果没问题,那得再找原因了

bill2funny commented 11 months ago

那就难以调查了,看起来像是内核改动了什么引起的。 使用的是 Mihomo(Meta)内核么?

我放弃了,应该是1.17内核有问题,我试了最新alpha内核也不行,meta那里fork的clash verge也不行,今天折腾一天了,明天再去内核那里发个issue吧

greenhat616 commented 11 months ago

行,那我先标记为 Block

greenhat616 commented 2 months ago

目前服务模式已重构,可以重新尝试,如果还有问题新开issue反馈。