使用 Docker 轻松运行 EFB (EhForwarderBot)
什么是 EFB?为什么要用 Docker?
EFB (EhForwarderBot) 是一个强大的工具,可以帮你把微信消息转发到 Telegram 等其他聊天平台,也可以让你在 Telegram 里直接回复微信消息。简单来说,就是让你在一个地方管理多个聊天工具的消息。
Docker 又是什么呢?你可以把它想象成一个“魔法集装箱”。我们把 EFB 和它运行需要的所有东西都打包到这个集装箱里。这样,无论你的服务器是什么环境,只要装上 Docker,就能轻松运行 EFB,省去了很多复杂的安装和配置步骤。
这篇教程会教你如何使用 Docker 来运行 EFB。
背景小故事:之前我用的微信网页版登录方式 (uos 补丁) 失效了,而且账号还收到了警告,所以我切换到了一个叫做
comwechat
的新方案。下面会介绍这两种方案的区别。
微信接入方案:comwechat
vs wechat web
EFB 连接微信主要有两种方式,你需要根据自己的情况选择一种:
wechat web
(微信网页版)- 优点:占用资源少,对服务器要求低,小内存 VPS 也能跑。
- 缺点:功能相对较少,而且只有部分老微信账号(大约 2017 年前注册)才能登录网页版(我的账号就不行了 O.O)。你需要自己测试一下你的账号是否还能登录 wx.qq.com。
- 原理:模拟浏览器登录微信网页版。
comwechat
- 优点:功能更全,支持发送高清图片和 Telegram 贴纸。
- 缺点:占用资源较多(内存建议 2GB 以上),因为它背后运行了一个模拟的 Windows 微信客户端环境。
- 原理:基于一个开源项目,模拟了 Windows 微信客户端。
主要功能区别:
功能 | wechat web (网页版) | comwechat (模拟客户端) |
---|---|---|
查看撤回消息 | ✅ 支持 | ❌ 不支持 |
回复消息样式 | 普通文本样式 | 部分支持原生样式 |
发送 Telegram 贴纸 | 可能会被压缩 | ✅ 支持 |
发送高清图片 | 大图会被压缩 | ✅ 支持 |
选择建议:
- 如果你的微信账号还能登录网页版,并且对资源占用比较敏感,可以选择
wechat web
。 - 如果你的账号无法登录网页版,或者你需要更完整的功能(如发送高清图、贴纸),并且服务器资源充足(建议 2GB 内存以上),请选择
comwechat
。
第一步:安装 Docker
如果你的服务器上还没有安装 Docker,需要先安装它。Docker 是我们运行 EFB 的基础环境。
打开服务器的终端(命令行界面),复制并运行以下命令:
# 这个命令会下载 Docker 的官方安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
# 这个命令会执行脚本来安装 Docker
sudo sh get-docker.sh
# 安装完成后,删除下载的脚本(可选)
rm get-docker.sh
提示:
sudo
表示需要管理员权限来执行安装。根据系统提示,可能需要输入你的服务器密码。
第二步:下载 EFB 配置模板
为了方便大家使用,我已经准备好了一份包含常用配置的模板。你只需要把它下载到你的服务器上。
继续在终端里运行:
# 这个命令会从 GitHub 下载配置模板,并存放到名为 ehforwarderbot 的文件夹里
git clone https://github.com/jiz4oh/ehforwarderbot.git ehforwarderbot
下载下来的 ehforwarderbot
文件夹里大概是这样的结构(你暂时不需要完全弄懂每个文件的作用):
.
├── Dockerfile # Docker 构建镜像的说明书 (一般不用管)
├── README.md # 项目说明文件
├── docker-compose.web.yaml # 用于启动 wechat web 版本的配置文件
├── docker-compose.yaml # 用于启动 comwechat 版本的配置文件
├── entrypoint.sh # Docker 容器启动时运行的脚本 (一般不用管)
├── profiles/ # 核心配置文件夹!存放不同账号的配置
│ ├── comwechat/ # 第一个 comwechat 账号的配置
│ │ ├── ... (一些中间件配置,可以先忽略)
│ │ ├── blueset.telegram/
│ │ │ └── config.yaml # !! Telegram 配置,需要修改 !!
│ │ ├── config.yaml # EFB 主配置 (一般不用改)
│ │ └── honus.comwechat/
│ │ └── config.yaml # comwechat 配置 (一般不用改)
│ ├── comwechat2/ # 如果你有第二个微信账号想用 comwechat,可以复制 comwechat 文件夹并改名
│ │ └── ...
│ └── default/ # wechat web 版本的配置 (网页版只需这一个)
│ ├── blueset.telegram/
│ │ └── config.yaml # !! Telegram 配置,需要修改 !!
│ ├── blueset.wechat/
│ │ └── config.yaml # 微信网页版配置 (可选修改)
│ └── config.yaml # EFB 主配置 (一般不用改)
└── run2.py # (comwechat 辅助脚本,一般不用管)
关键点:你需要关注的是
profiles
文件夹里的配置,特别是blueset.telegram/config.yaml
文件。
第三步:修改你的专属配置
现在,我们需要修改一些配置,主要是告诉 EFB 如何连接你的 Telegram 账号。
进入配置目录
cd ehforwarderbot
修改 Telegram 配置
如果你选择
comwechat
方案:你需要修改profiles/comwechat/blueset.telegram/config.yaml
文件。如果你选择
wechat web
方案:你需要修改profiles/default/blueset.telegram/config.yaml
文件。使用你熟悉的编辑器(如
nano
或vim
)打开对应的config.yaml
文件。例如,使用nano
编辑comwechat
的 Telegram 配置:nano profiles/comwechat/blueset.telegram/config.yaml
你需要修改文件里的
token
和admins
两个地方:token
: 填入你从 @BotFather 那里申请到的 Telegram Bot Token。admins
: 填入你的 Telegram User ID (纯数字)。你可以发/getid
给 @userinfobot 来获取。修改完成后,保存并关闭文件(
nano
编辑器中按Ctrl+X
,然后按Y
,再按Enter
)。
(可选) 修改微信配置
- 如果你使用
wechat web
方案,可以按需修改profiles/default/blueset.wechat/config.yaml
文件中的一些选项,但通常默认配置就可以工作。 - 如果你使用
comwechat
方案,通常不需要修改profiles/comwechat/honus.comwechat/config.yaml
。
- 如果你使用
第四步:启动 EFB!
配置完成!现在可以启动 EFB 了。请根据你选择的方案运行对应的命令:
如果你选择 comwechat
方案:
# 确保你当前在 ehforwarderbot 文件夹内
# 这个命令会根据 docker-compose.yaml 文件在后台启动 EFB
docker compose up -d
如果你选择 wechat web
方案:
# 确保你当前在 ehforwarderbot 文件夹内
# 这个命令会根据 docker-compose.web.yaml 文件在后台启动 EFB
# 注意这里用 -f 指定了不同的配置文件
docker compose -f ./docker-compose.web.yaml up -d
提示:
up -d
的意思是“启动并在后台运行”。
首次启动:登录微信
- **
comwechat
**:启动后,你需要查看容器日志来扫码登录。运行docker compose logs -f
,你会看到一个二维码链接或二维码图片(取决于你的终端支持情况)。用手机微信扫描该二维码进行登录。登录成功后按Ctrl+C
退出日志查看。 - **
wechat web
**:同样运行docker compose -f ./docker-compose.web.yaml logs -f
查看日志,扫描日志中出现的二维码登录。
登录成功后,EFB 就会开始工作了!你的 Telegram Bot 应该会给你发送消息,并且微信消息也会开始转发过来。
后续管理
- 查看日志:
comwechat
:docker compose logs -f
wechat web
:docker compose -f ./docker-compose.web.yaml logs -f
- 停止 EFB:
comwechat
:docker compose down
wechat web
:docker compose -f ./docker-compose.web.yaml down
- 重启 EFB:
comwechat
:docker compose restart
wechat web
:docker compose -f ./docker-compose.web.yaml restart
- 更新 EFB 镜像和配置:
- 进入
ehforwarderbot
目录。 git pull
# 更新配置模板docker compose pull
或docker compose -f ./docker-compose.web.yaml pull
# 拉取最新的 Docker 镜像docker compose down
或docker compose -f ./docker-compose.web.yaml down
# 停止旧容器docker compose up -d
或docker compose -f ./docker-compose.web.yaml up -d
# 使用新镜像和配置启动
- 进入
现在,你应该可以通过 Docker 顺利运行 EFB 了!