go-cqhttp
go-cqhttp copied to clipboard
[Bug]: 1.2.0版本gocq在linux下出现:invalid byte: U+002F '/'
请确保您已阅读以上注意事项,并勾选下方的确认框。
- [X] 我已经仔细阅读上述教程和 "提问前需知"
- [X] 我已经使用 dev分支版本 测试过,问题依旧存在。
- [X] 我已经在 Issue Tracker 中找过我要提出的问题,没有找到相同问题的ISSUE。
- [X] 我已知晓并同意,此处仅用于汇报程序中存在的问题。若这个 Issue 是关于其他非程序本身问题,则我的 Issue 可能会被无条件自动关闭或/并锁定。(这些问题应当在 Discussion 板块提出。)
go-cqhttp 版本
1.2.0
运行环境
Linux
运行架构
AMD64
连接方式
WebSocket (反向)
使用协议
6 | aPad
重现步骤
1.docker pull xzhouqd/qsign:core-1.1.9 拉取最新镜像 2.docker run -d --restart=always --name qsign -p 8000:8080 -e BASE_PATH=/srv/qsign/qsign/txlib/8.9.73 xzhouqd/qsign:core-1.1.9 使用8.9.73协议 3.启动gocq(linux下其存在于单独的一个容器中) 4.查看log
期望的结果是什么?
正确签名
实际的结果是什么?
qsign侧的签名无报错但仅有几条日志,而后gocq就报错
简单的复现代码/链接(可选)
No response
日志记录(可选)
**linux**下qsign侧日志:
Using base path /srv/qsign/qsign/txlib/8.9.73
FEBond sum = 7680
Load Package = Protocol(qua=V1_AND_SQ_8.9.73_4416_YYB_D, version=8.9.73, code=4416, packageName=com.tencent.mobileqq)
...
...
...
15:59:30.388 [DefaultDispatcher-worker-1] INFO ktor.application - Responding at http://0.0.0.0:8080
15:59:45.689 [eventLoopGroupProxy-3-1] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkAccessible: true
15:59:45.689 [eventLoopGroupProxy-3-1] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkBounds: true
15:59:45.690 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@55ccab54
15:59:45.741 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 4096
15:59:45.741 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
15:59:45.741 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.chunkSize: 32
15:59:45.741 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.blocking: false
15:59:45.741 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.batchFastThreadLocalOnly: true
----------------
到这里gocq就会报错然后后续就无了
**linux**下gocq侧日志:
2023-10-13 00:06:35] [INFO]: 当前版本:v1.2.0
[2023-10-13 00:06:35] [INFO]: 将使用 device.json 内的设备信息运行Bot.
[2023-10-13 00:06:35] [INFO]: 使用签名服务器:http://192.168.174.130:8000
[2023-10-13 00:06:35] [WARNING]: 自动注册实例已关闭,请配置 sign-server 端自动注册实例以保持正常签名
[2023-10-13 00:06:35] [INFO]: 开始尝试登录并同步消息...
[2023-10-13 00:06:35] [INFO]: 使用协议: Android Pad 8.9.63.11390
[2023-10-13 00:06:35] [INFO]: 每 30 分钟将刷新一次签名 token
[2023-10-13 00:06:35] [INFO]: 从文件 data/versions/6.json 读取协议版本 Android Pad 8.9.73.11945.
[2023-10-13 00:06:37] [INFO]: Protocol -> connect to server: 183.47.99.24:8080
[2023-10-13 00:06:37] [WARNING]: 获取T544 sign时出现错误: encoding/hex: invalid byte: U+002F '/' (data: /custom_energy?data=810_9&salt=00000000001095cc922c0de46b240c9bd8d839d40e4f000a362e302e302e323535330000000900000000&uin=210215127&android_id=8d4915579b3e3361&guid=95cc922c0de46b240c9bd8d839d40e4f)
[2023-10-13 00:06:37] [WARNING]: token 已过期, 总丢失 token 次数为 1
[2023-10-13 00:06:37] [INFO]: 正在刷新 token
[2023-10-13 00:06:37] [WARNING]: 刷新 token 出现错误: code=1, msg: Uin is not registered.. server: http://192.168.174.130:8000
[2023-10-13 00:06:37] [WARNING]: 登录失败: 登录失败,请前往QQ官网im.qq.com下载最新版QQ后重试,或通过问题反馈与我们联系。 Code: 45
[2023-10-13 00:06:37] [WARNING]: 你的账号被限制登录, 请配置 SignServer 后重试
[2023-10-13 00:06:37] [INFO]: 按 Enter 继续....
**该问题仅出现于linux上,在windows平台使用最新版qsign+gocq1.2.0+两端协议8.9.73是可以正常签名的**
**经测试应该与协议版本无关,尝试8.9.63,8.9.71,和8.9.73在linux上均是签名到同一位置报同样错误**
补充说明(可选)
No response
另外我本地有一个5db03c7的dev版本,可以正常签名8.9.63(linux下不会报错),但是8.9.73好像会直接挂掉 不过现在8.9.63已经被废了,登不上去了,会直接要我下载最新QQ(报45错误)
gocq作者团队已经无力维护了,建议迁移到其他项目。 https://github.com/Mrs4s/go-cqhttp/issues/2471
目前gocq就是运气好能用,运气不好就这样了。我自己的机器人8.9.63还能上,我朋友用的手表协议还苟着。
gocq作者团队已经无力维护了,建议迁移到其他项目。 #2471
目前gocq就是运气好能用,运气不好就这样了。我自己的机器人8.9.63还能上,我朋友用的手表协议还苟着。
我linux的服务器没图形界面而且就2G内存,Shamrock跑不起。。。chronocat还是等他们协议完善了再说吧 幸亏挂的是副bot号,我调低了版本可以正常签名但是会45,换一个号就不会,可能是被盯上了吧,哎
没有注册实例,qsign配置里的auto_register改成 true应该就好了
我遇到过68协议报这个错误,改成70协议就好了。
gocq作者团队已经无力维护了,建议迁移到其他项目。 #2471
目前gocq就是运气好能用,运气不好就这样了。我自己的机器人8.9.63还能上,我朋友用的手表协议还苟着。
我linux的服务器没图形界面而且就2G内存,Shamrock跑不起。。。chronocat还是等他们协议完善了再说吧 幸亏挂的是副bot号,我调低了版本可以正常签名但是会45,换一个号就不会,可能是被盯上了吧,哎
可以试试复制device.json里面的AndroidID,然后删除device.json,重新生成,将ID改成原来的。我每次被封都会45。每次这样都可以