一、挂载简介

Q: 挂载是什么

A: 若果将机器人比做人的机体,那么tomato主服务器便是机器人的大脑,处理所有指令及消息;QQ账号则是机器人的感官,负责从群聊中接收指令并将服务器的处理结果反馈至群聊。

挂载指的是由您提供QQ账号来充当机器人的感官部分。或许可以理解为被tomato夺舍www。

Q: 为什么要进行挂载

A: tomato的四个账号由于群聊过多受限严重,经常被腾讯戴口球(风控及冻结)。因此推出挂载分布式方案以分散单个账号的压力,降低冻结频率,同时也能提升您的使用体验。

二、准备

1. 准备电脑

方案一:Windows操作系统(Win10及以上)
方案二:Linux 或 Windows操作系统

2. 准备账号

挂载tomato需要一个独立的QQ账号作为Bot账号,建议申请小号做为Bot专用号。不要使用您的主账号作为Bot。

所有私聊指令均已屏蔽,请不要私聊测试您的bot是否可用

所有私聊指令均已屏蔽,请不要私聊测试您的bot是否可用

所有私聊指令均已屏蔽,请不要私聊测试您的bot是否可用

三、挂载方案

挂载针对有个人服务器以及无服务器提供两种方案。

方案一:无服务器

如您有服务器,请直接移步至方案二

tomato目前可为挂载代理的个人QQ-bot账号提供服务器资源,以支持不间断运行。

为什么bot运行需要服务器?

bot本身的运行与开发无需服务器,但运行于本地平台的终端会随着设备关闭而停止运行。

1. 完成准备事项

2. 下载tomato挂载助手

3. 运行助手

操作说明

1. 运行自解压文件[tomato_beta.exe],这默认将文件夹解压至桌面
2. 运行解压出的挂载助手,输入Bot账号以及您的QQ账号
3. 点击获取验证码,将发送至您的QQ邮箱,请注意查收
4. 输入验证码,点击登陆上传
5. 使用Bot账号扫码并确认登陆
6. 等待tomato挂载完成

4. 退出程序

测试Bot可用后,即可关闭助手程序。无需进行其他任何操作。

测试发现,QQ有小概率拒绝请求。这将导致tomato助手显示成功后,测试仍无反应,您可以重新申请验证码扫码登陆以解决该问题。

5. 使用相关

正常使用期间请不要使用iPad登录

如遇到故障请先按照 第五节故障处理 排查

Q: 如何拉入群聊

A: 运行成功后您只需要手机登录Bot账号,便可自主决定加入群聊,请您在加入前与群主及管理做好协商,不要滥用Bot。

Q: 如何屏蔽群聊

A: 新版的权限管理仍在测试中,您暂时可以通过QQ消息免打扰中的屏蔽群消息来终止Bot接收群内消息。

Q: 如何管理功能开闭

A: Bot主权限管理即将上线,现版本仅支持群聊管理。

Q: 如何终止挂载

A: 您只需要登录Bot账号,在QQ设备管理中删除 Mirai 设备,即可终止当前账号的代理。

方案二:有个人服务器

如果您有个人服务器,可以选择在您的服务器运行go-cqhttp代理工具,直接使用反向websocket通讯协议连接tomato服务器实现挂载。具体操作流程如下。

1. 完成准备事项

2. 修改服务器配置信息

下拉config文件在底部找到“servers”配置项。

修改这一部分的内容为(直接复制粘贴即可):

servers:
  - ws-reverse:
      universal: wss://yuki.tomato-aoarasi.com:443/ws
      reconnect-interval: 3000
      middlewares:
        <<: *default

保存之后便可关闭该配置文件。

3. 完成本地登陆验证

运行环境:本地电脑

文件夹内右键,选择“Open in Terminal”选项。

以Windows11 x64操作系统为例,在终端面板输入命令“./go-cqhttp_x64”并回车以安全运行。

扫描界面二维码,完成登陆验证。
Open in Terminal

我的右键没有该选项怎么办

直接双击对应版本的go-cqhttp的可执行文件(exe)。

此时您会收到安全性警告,在弹出的窗口中全部点击"确认"。这回在文件夹中生成一份".bat"文件。

双击".bat"文件以运行go-cqhttp。

3. 完成登录

运行环境:本地电脑

如您的运行版本与操作系统一致,您应看到如下信息。
go-cqhttp
受近期腾讯风控加强的影响,请选择验证方式2进行登陆验证。这要求您当前操作的电脑与扫码的手机位于同一局域网下(使用同一Wi-Fi或LAN信号)。

具体的,在出现上述选项后的10s内,输入数字2并回车键确认。

扫描界面二维码,完成登陆验证。当出现“登陆成功”消息后,可以刷新go-cqhttp所在文件夹,观察是否生成了session.token文件。若找到该文件,便可关闭go-cqhttp窗口。
扫描二维码

请在上述操作完成后关闭本地go-cqhttp窗口,否则会与服务器端冲突导致挂载失败。

4. 上传文件至服务器

运行环境:服务器

以Linux服务器,WinSCP文件管理工具为例。
新建文件夹(推荐)以存放bot相关文件,并将前述本地操作所在文件夹中的如下文件上传至该目录:

config.yml
device.json
session.token
go-cqhttp_linux

完成后即可关闭文件管理工具。

5. 服务器端运行

运行环境:服务器

以Linux服务器为例。登录服务器终端,进入bot所在文件夹,输入命令“./go-cqhttp_linux”运行客户端,检查网络连接及服务器通讯是否正常。
若通讯正常,可以退出后键入命令“nohup ./go-cqhttp &”将该服务挂载至后台,如此bot进程便不会随着关闭终端而终止。

为维护服务器安全性,方案二含有IP过滤,如您决定使用方案二挂载,请联系我并发送您的服务器IP地址以获取IP授权。

6. 常见问题

Q:是否可以设置域名白名单

A: 很遗憾,tomato服务器基于IP来源过滤请求,不支持域名绑定。

Q:是否可以用我的电脑作为服务器

A: 很遗憾,基本不能。通常,家用网络采用动态IP地址分配,这决定了您电脑的本地IP是会改变的。您申请的IP白名单会随着运营商改变IP而失效。当然,如果您使用的是网络专线,可以用您的固定IP申请白名单。

Q:服务器端运行go-cqhttp提示Permission Denied

A: 请检查您go-cqhttp的权限,权限设置可以自行百度。如果不清楚权限如何配置,也可以考虑调整权限为777,完成后在指令前加sudo即可正常运行。

Q:连接反向代理提示 bad handshake

A: 这是由于您的客户端无法与tomato反向代理建立通讯导致的,请检查您的服务器IP地址是否与申请授权时的预留IP地址一致。

四、代理机权限说明[仅不同点]

直属Bot代理机
群聊黑名单[1]
Peek
WACCA绑定[2]
WACCA更新[2]
Arcaea猜歌
部分实验功能

[1] 通过代理运行的Bot在拉群上将会解除黑白名单的限制,所加入群聊由Bot账号所有者自行选择。
[2] WACCA相关服务涉及用户隐私,目前WACCA的绑定与数据更新权限依然限制在1-4号由我直接管理的Bot账号中。

五、故障处理

如您的代理无法正常工作,通常可能有如下原因

设备登陆冲突

QQ验证机制不允许同时登录两台相同的设备。
tomato服务器端的模拟登录设备为 iPad,因此若您不慎使用iPad登录了Bot账号,服务器将被迫下线且无法自行恢复。
需要您重新运行挂载助手完成更新。

账号被腾讯风控(最高频)

风控的具体表现为:私聊正常,群聊中可以发送戳一戳但无法发送任何文本或图片消息。

其解决办法为:使用手机登录该Bot账号,在QQ内或在网页(需扫码登陆)打开如下链接完成验证码即可恢复。

https://accounts.qq.com/safe/message/unlock?lock_info=5_5

QQ内只需复制该链接并发送至QQ任一聊天对话中点击即可使用内置浏览器打开。

账号被冻结

如您的账号被冻结,将会自行中断与tomato服务器的通讯。如您使用方案一:只需要解冻后重新运行挂载助手更新云端数据即可;如您使用方案二,需要您解冻后重新重新挂载go-cqhttp客户端。

登录过期

QQ的部分安全校验机制可能使得有些账号无法在tomato云端的维持长期登录状态。
当这种情况发生时,您只需要重新运行挂载助手更新登录即可。

tomato服务器崩溃

由于服务器资源很有限,tomato可能无法保证服务的绝对稳定性,不可避免会出现内存溢出等问题。
如您确认不是上述问题造成的服务停止,可及时与我反馈,我会在力所能及下修复。

如何减少风控及冻结

暂时没有好的解决方法,但是理论上减少群聊规模以及发言频率有助于改善这一情况。
通常在50个群聊一下受限可能性较小。

六、最后

感谢大家长期以来对tomato的支持,上述个人QQ账号挂载方案也仍在测试中,代理权限相关的管理也还不完善,我也会不断尽力优化使用体验。如您在使用中有任何问题,都可以反馈给我,我会在力所能及条件下及时维护与解决。

tomato
2022.09.01

Last modification:October 29, 2023
If you think my article is useful to you, please feel free to appreciate