注:本文使用了 comwechat 服务作为从端,使用 API 为微信桌面端,如有使用需求请自行斟酌
要求:
1. 一台在国外的 VPS,最好架构为 X86,ARM 也许存在 Bug
推荐系统发行版本为 Ubuntu20 下文也会以此系统作为例子
服务器要求 ROM 不小于 2G,且最好再开启 2G 的 swap 内存
具有一个固定公网 iPv4 地址
2. 一台最好系统为 Windows 的电脑 (需要使用 VNC 服务,依据个人能力判断)
3. 一部拥有微信的手机或能进行微信扫码的设备
4. 两个 Telegram 账号,要求互为好友且至少有一个能正常登陆
5. 一个正常的大脑,一双正常的眼睛,一个善于举一反三的思维
6. 在提出问题之前请仔细、反复地再阅读一遍说明
1. 前期准备
第一步 —— 创建机器人 Token:
首先在手机 Telegram 或桌面端 Telegram 应用程序中进行如下操作
1. 对 @BotFather 或点击 这条链接 来对 BotFather 进行私聊
发送指令
/newbot
然后依据提示进行机器人的用户名、昵称等配置(机器人用户名必须以 bot 结尾)
在创建完毕之后,你将获取到一串 Bot 的 API Token,将之保存在一处地方,并不要将他泄露给其他人,因为通过 Token 任何人都可以控制你的 Bot
然后进行两项基础配置,继续向 BotFather 发送下列命令
/setprivacy #选择 “Disable” /setjoingroups #选择 “Enable”
接着进行最后一项配置,发送
/setcommands
然后发送如下内容
link - 将会话绑定到 Telegram 群组 chat - 生成会话头 recog - 回复语音消息以进行识别 update_info - 更新群组名与头像 extra - 获取更多功能
第二步 —— 获取用户 ID:
与 @get_id_bot 私聊或点击 这条链接 来对 get id bot 进行私聊
接着发送
/start
获取用户 ID,将之保存到一处地方
2. 环境配置
0. 服务器初始化
sudo apt update
1. 安装 Docker
curl -fsSL https://get.docker.com | bash
2. 安装 Docker-compose
apt -y install docker-compose
3. 创建配置文件 docker-compose.yaml
cd ~ touch docker-compose.yaml
使用 nano 编辑该文件
nano docker-compose.yaml
输入以下内容(大部分 SSH 客户端可以使用右键粘贴)
version: '3.3' services: wechatpchook: container_name: comwechat environment: - VNCPASS=YourPassword - COMWECHAT=https://github.com/ljc545w/ComWeChatRobot/releases/download/3.7.0.30-0.1.0-pre/3.7.0.30-0.1.0-pre.zip volumes: - "/root/WeChat/Files/:/home/user/.wine/drive_c/users/user/My Documents/WeChat Files/" - "/root/WeChat/Data/:/home/user/.wine/drive_c/users/user/Application Data/" privileged: true network_mode: host image: tomsnow1999/docker-com_wechat_robot:latest
将其中 “- VNCPASS=YourPassword” 中 YourPassword 改为一个你自己喜欢的密码并记住
使用 Ctrl + X 退出编辑 并不要修改文件名 若提示 Y/N 请输入 Y 修改文件名界面回车即可退出
使用 cat 命令检查内容(后文所有编辑的文件均建议检查,但我不再赘述,nano 编辑器的用法同样不再赘述)
cat docker-compose.yaml
4. 启动 Docker 镜像
docker-compose up -d
等待下载完成即可,中途不要关闭 SSH 窗口,耐心等待即可
3.VNC 登录微信
1. 在网络上下载并安装 VNC Viewer(安装软件方法我拒绝解释)
2. 在上方 “Enter a VNC Server address or search” 处 填入
#你的服务器公网ip:5905 #例如 123.123.1.2:5905 #注意「:」是英文字符 不要使用中文字符的「:」
点击连接到此地址,此时你将会看到一个微信登录二维码,使用手机扫码登录
注意,将此二维码截图后用手机微信的相册内扫码是不行的,必须使用摄像头扫码
4. 安装、创建必要文件及依赖
apt-get install libopus0 ffmpeg libmagic1 python3-pip git libssl-dev pip3 install -U git+https://github.com/ehForwarderBot/efb-telegram-master.git pip3 install -U git+https://github.com/0honus0/python-comwechatrobot-http.git pip3 install -U git+https://github.com/0honus0/efb-wechat-comwechat-slave.git pip3 install lottie pip3 install cairosvg #请一行一行依次执行 而不要全部一次输入
然后进行配置文件的创建,此处可以一次性全部输入,但记得将最后一行发送出去
mkdir -p ~/.ehforwarderbot/profiles/ComWeChat mkdir -p ~/.ehforwarderbot/profiles/ComWeChat/blueset.telegram mkdir -p ~/.ehforwarderbot/profiles/ComWeChat/honus.comwechat touch ~/.ehforwarderbot/profiles/ComWeChat/config.yaml touch ~/.ehforwarderbot/profiles/ComWeChat/blueset.telegram/config.yaml touch ~/.ehforwarderbot/profiles/ComWeChat/honus.comwechat/config.yaml
完成后,你的文件结构应该如下所示
~/.ehforwarderbot/profiles/ComWeChat/ ├── blueset.telegram │ ├── config.yaml ├── config.yaml └── honus.comwechat └── config.yaml
使用 cat 命令进行确认,或自认为没有问题之后,进入主端的配置
5. 主从端配置
nano ~/.ehforwarderbot/profiles/ComWeChat/blueset.telegram/config.yaml #在其中写入 token: "写机器人token" admins: - 写管理员telegram用户ID #将token和用户ID替换掉上文中的说明文字 #例如 token: "ABC123QWE:123ADW123AWD" admins: - 1234567654321
nano ~/.ehforwarderbot/profiles/ComWeChat/config.yaml #在其中写入 master_channel: blueset.telegram slave_channels: - honus.comwechat
nano ~/.ehforwarderbot/profiles/ComWeChat/honus.comwechat/config.yaml #在其中写入 dir: "/root/WeChat/Files/"
6. 启动 EFB
screen -S wechat #使用screen功能保证关闭SSH连接后 服务仍在运行 #在弹出的新终端窗口中输入 ehforwarderbot -p ComWeChat
后记
由于 VPS 一般位于海外,所以第一次登录后几天内被登出是正常的,因为 IP 地址不受信任
微信掉线或重启服务器后再次开启服务的方法
首先请重启你的服务器,排除意外因素
(如果不愿意重启,请自行关闭之前打开的 screen 会话和 docker 镜像)
然后执行
docker-compose up -d
此时再次打开 VNC Viewer 再次扫码登录或点击登录
接着执行
screen -S wechat #在弹出的新终端窗口中输入 ehforwarderbot -p ComWeChat
若无报错即可继续正常使用
关于机器人用法
在此不进行详细说明,仅做简单解释
假如你不做任何工作,所有信息都将从机器人私聊中发送到你的 Telegram
为了解决这个问题,我们需要使用准备阶段准备的两个 Telegram 账号新建群组,将另一个账号踢出群组,将机器人添加至群组
然后在群组内使用
/link
接着回到机器人的私聊,选择你要绑定的对话,则该对话将被绑定至指定的群组
建议使用
/update_info
来更新头像及名称
此时你在此群组说话,将自动以你登录的微信为发言人在微信发送相同消息,接收到的消息则由机器人发送(其他使用相关不再赘述,自行查阅其他教程或说明文档等)
若有问题请仔细阅读后提问,本人知识水平有限,不保证能解决每个人的问题,也不一定有时间解决,请尽量提问一些有价值的问题
大佬,怎么样在一台机子上运行多个efb
Korea的vps,成功登录,消息收发也正常,唯一疑惑的是:vnc显示疑似风险登录,wechat给我强制踢下线了,这是常态还是仅仅前期会这样啊?
海外VPS第一次使用由于IP问题一定会因为IP风控强制下线一次,我个人第一次坚持了2天就被下线,然后至今没有再被下线过,ComWechat服务属于真正意义上的使用一个桌面端微信,因此风控概率很小
谢谢回答
想问下docker-compose文件中可不可以加代理地址?
不清楚,详情查阅docker-compose相关说明
详细教程,小白用户表示很赞!!