# Hermes部署到VPS与双BOT实战教学
**作者**: AnchorNode
**日期**: 2026-04-21T07:24:30.000Z
**来源**: [https://x.com/AnchorNode/status/2046490243650720104](https://x.com/AnchorNode/status/2046490243650720104)
---

很多人以为,把 Hermes 装到 VPS 上,
看到 hermes --version 有输出, 这事就算成了。
其实完全不是。
Hermes 部署最难的, 从来不是装上它。
而是:
- 让它稳定跑起来
- 让 Telegram 真正接进来
- 让 systemd 接管住
- 让双 Bot 不互相打架
我这次把 Hermes 跑到 VPS, 顺手还做了双 Bot。
过程里踩了不少坑。 但也正因为踩坑, 才把真正稳定的方案跑出来。
如果你也准备做:
- Hermes + VPS
- Telegram Bot 常驻
- 双 Bot 隔离
这篇会帮你少走很多弯路。
1)为什么一定要上 VPS?
原因很简单。
本地跑 Hermes,天然有 4 个问题:
- 关电脑就停
- 断网就停
- 不能 24 小时在线
- Telegram Bot 没法长期常驻
如果你只是本地临时用, CLI 当然够。
但只要你的目标变成下面这些:
- Hermes 长期在线
- Telegram 随时可调用
- 后面还想扩成双 Bot
- 重启后自动恢复服务
那 VPS 就是必选项,这里很多人第一步就想错了。
他们以为自己在解决安装问题。
其实你真正要解决的是:
运行环境问题。
2)第一步很简单:先把 Hermes 装上
官方脚本就够了:
只要 hermes --version 正常,
说明 Hermes 本体装成功了。
但这里最容易出现的误判就是:
CLI 能用 ≠ Bot 已上线。
这两个不是一回事。
很多人卡住, 不是因为不会装。
而是因为把本体装好误当成服务上线。
3)第一个坑:网页 SSH 不适合正式部署
我最开始直接在SSH的网页终端里搞。
结果很快就遇到:
Connection lost. Reconnecting...
很多人对这个问题的理解太浅了。
他们会觉得:“断一下而已,重新连不就好了?”
其实不是。
网页终端真正的问题,不是断。
而是它会让你的排错质量大幅下降。
我的实际问题包括:
- 长命令粘贴失败
- 输出和输入混在一起
- 中间断线后上下文断掉
- 你输错了都不一定意识到
所以我的建议非常明确:
正式部署不要用网页终端。直接上本地 SSH 工具。
用FinalShell、Termius 都行。
这一步 实际上是在先把施工环境稳定住。
环境不稳,后面所有判断都会失真。
4)第二个坑:APT 镜像源 404,不是 Hermes 坏了
我安装时遇到过这种报错:
E: Failed to fetch http://mirrors.tencentyun.com/ubuntu/... 404 Not Found
E: Unable to fetch some archives
很多人看到这种报错, 第一反应是“Hermes 安装脚本出问题了。”
其实不是。
这类报错本质上说明一件事:
系统软件源有问题。
也就是说,
坏的是依赖链,
不是 Hermes 本体。
我的处理方式很直接,
把腾讯云镜像源换成 Ubuntu 官方源:
sudo sed -i 's|mirrors.tencentyun.com|archive.ubuntu.com|g' /etc/apt/sources.list
sudo apt update && sudo apt upgrade -y
sudo apt install -y ripgrep ffmpeg
这里你要记住一个判断逻辑:
- 如果 apt update 都不正常
- 那后面很多 Hermes 问题都只是表象
所以顺序一定别错:
先修系统源,
再谈 Hermes。
5)第三个坑:Hermes 能用,不代表 Gateway 已经上线
这是最常见的误判点。
我当时的状态很典型:
- hermes --version 正常
- 但 Telegram Bot 完全不回消息
很多人这时候会立刻怀疑:
- Token 错了?
- 配置错了?
- Telegram 抽风了?
但我后来确认,
这些都不是主因。
真正的问题是:
Gateway 没真正安装成 systemd 服务。
我还遇到过两个典型报错:
System gateway install requires root. Re-run with sudo.
sudo: hermes: command not found
第一个说明:
安装 system service 需要 root。
第二个说明:
sudo 环境里找不到 Hermes 路径。
因为 Hermes 实际装在这里:
/home/ubuntu/.local/bin/hermes
所以正确做法不是:
sudo hermes gateway install --system
而是:
sudo /home/ubuntu/.local/bin/hermes gateway install --system
sudo systemctl enable hermes-gateway
sudo systemctl start hermes-gateway
sudo systemctl status hermes-gateway
你最后只看一个结果:
Active: active (running)
没有这句, 就不算真正上线。
这里一定要建立一个清晰认知:
Hermes 部署有三层:
CLI 可用
Gateway 可运行
服务可托管
真正稳定部署,
看的永远是第三层。
6)第四个坑:Bot 不回消息,不一定是 Token 错了
Bot 不回消息时, 很多人会本能地先怀疑 Token。
但实际排下来, 高频原因通常就 4 个。
没先点 Start
Bot 私聊里如果没先点一次 Start,
可能根本不会响应。
这不是 Hermes 的问题。
是 Telegram 的交互前置动作。
Allowed User ID 配错
如果你开了允许用户限制,
但发消息的人不是那个 ID,
Bot 一样不会回。
然后你就会误以为:
“服务明明在线,为什么没反应?”
Gateway 根本没跑
这一步不要猜,
直接查:
sudo systemctl status hermes-gateway
journalctl -u hermes-gateway -f
Token 格式错
我也碰到过:
Invalid token format
Telegram Bot Token 正常格式一般是:
123456789:AAxxxxxxxxxxxxxxxxxxxxxxxx
所以正确排查顺序应该是:
先查服务。
再查日志。
最后再查 Token。
顺序反了,
排错效率会很低。
7)第五个坑:双 Bot 不是多建几个目录就行
这是这次部署里最关键的认知转折。
我一开始以为双 Bot 很简单:
- 同一个用户
- 不同目录
- 两套配置
- 两个 gateway
比如:
- /home/ubuntu/.hermes
- /home/ubuntu/hermes-trader
看起来像是做了隔离。
其实没有。
最后直接报:
Gateway already running
这句话背后的意思非常明确:
你撞的不是目录,你撞的是运行实例。
你以为自己做了文件层隔离,
但运行层根本没隔离开。
这就是很多人做双 Bot 一直搞不定的真正原因。
8)双 Bot 真正稳定的方案:用户级隔离
最后我验证下来最稳的方案是:
Bot1
- 用户:ubuntu
- 服务:hermes-gateway
- 用途:技术 / 部署 / 内容助手
Bot2
- 用户:trader
- 服务:hermes-trader-gateway
- 用途:交易员 / 市场分析助手
重点在:
双 Bot 要做用户级隔离。
所以第二个 Bot 的正确做法是:
先建第二个用户:
sudo adduser trader
sudo usermod -aG sudo trader
sudo -iu trader
然后在 trader 用户下重新安装 Hermes:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
which hermes
hermes --version
hermes setup
第二个 Bot 必须有自己独立的:
- Token
- Allowed User ID
- 频道 / 权限配置
到了这一步,
两个 Bot 才算真正分开。
9)第二个 Bot 的 service 也必须单独建
第二个 Bot 如果也要长期常驻,
那就不要复用第一套 service。
直接给它单独建一个。
例如:
[Unit]
Description=Hermes Trader Gateway
After=network.target
[Service]
Type=simple
User=trader
WorkingDirectory=/home/trader
ExecStart=/home/trader/.local/bin/hermes gateway run --replace
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
保存到:
/etc/systemd/system/hermes-trader-gateway.service
然后执行:
sudo systemctl daemon-reload
sudo systemctl enable hermes-trader-gateway
sudo systemctl start hermes-trader-gateway
sudo systemctl status hermes-trader-gateway
你最终还是只看一个结果:
Active: active (running)
这才算第二个 Bot 真正活了。
10)第一次部署,最稳的顺序就 6 步
很多人部署会乱,
不是因为不会命令。
而是顺序错了。
如果你是第一次部署,
我建议直接按这个顺序走:
Step 1:先连稳定 SSH
ssh ubuntu@你的VPS_IP
Step 2:安装 Hermes 本体
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
hermes --version
Step 3:检查并修系统依赖
sudo apt update
sudo apt upgrade -y
sudo apt install -y ripgrep ffmpeg
如有镜像源 404,再执行:
sudo sed -i 's|mirrors.tencentyun.com|archive.ubuntu.com|g' /etc/apt/sources.list
sudo apt update && sudo apt upgrade -y
Step 4:执行 Hermes 配置
hermes setup
Step 5:安装 Gateway 为 systemd 服务
sudo /home/ubuntu/.local/bin/hermes gateway install --system
sudo systemctl enable hermes-gateway
sudo systemctl start hermes-gateway
sudo systemctl status hermes-gateway
Step 6:做两个最终测试
- 关闭 SSH 后 Bot 还能不能回复
- VPS 重启后服务能不能自动恢复
顺序别反。
反了就会一直返工。
11)部署完成后,至少过这几关
单 Bot 必过项
- hermes --version 正常
- which hermes 能返回路径
- sudo apt update 无 404
- ripgrep、ffmpeg 安装成功
- sudo systemctl status hermes-gateway 为 active (running)
- Bot 已先点 Start
- Allowed User ID 配置正确
- Token 格式正确
- 关闭 SSH 后 Bot 仍可回复
- VPS 重启后服务自动恢复
双 Bot 额外必过项
- 第二个 Bot 使用独立系统用户
- 第二个用户单独安装 Hermes
- 第二个 Bot 有独立 Telegram 配置
- 第二个 Bot 有独立 systemd service
- 两个服务都为 active (running)
- 两个 Bot 可同时正常回复
12)双 Bot 最常见的 5 个问题
问题 1:报 Gateway already running
原因:同一个用户下试图跑两个 gateway。
解决:改成用户级隔离。
问题 2:第二个用户下 hermes 不存在
原因:Hermes 安装在用户目录,不会自动共享给第二个用户。
解决:切到第二个用户后重新安装。
问题 3:第二个 Bot 服务启动失败
先查:
sudo systemctl status hermes-trader-gateway
journalctl -u hermes-trader-gateway -f
重点看:
- User=trader
- ExecStart=/home/trader/.local/bin/hermes gateway run --replace
- WorkingDirectory=/home/trader
问题 4:两个 Bot 都在线,但回复混乱
原因:两个 Bot 没有真正独立配置。
解决:第二个用户下单独执行 hermes setup,分别配置自己的 token、user ID 和频道权限。
问题 5:重启后只活了一个 Bot
原因:第二个 service 没 enable,或者 systemd 配置没重载。
解决:
sudo systemctl daemon-reload
sudo systemctl enable hermes-trader-gateway
sudo systemctl start hermes-trader-gateway
sudo systemctl status hermes-trader-gateway
最后总结
这次部署给我最大的体会不是某一条命令。
而是一个更底层的结论:
Hermes 真正难的,不是装上它。
而是让它稳定、持续、可隔离地运行。
很多坑看起来像命令坑。
本质上其实都是架构坑。
所以我最后只留下这句话:
单 Bot 看安装。
双 Bot 看隔离。
生产可用,看 systemd。
如果你也在折腾:
- Hermes
- VPS
- Telegram Bot
- 双 Bot 常驻
希望这篇能帮你少踩几个真正浪费时间的坑。
## 相关链接
- [AnchorNode](https://x.com/AnchorNode)
- [@AnchorNode](https://x.com/AnchorNode)
- [1.9K](https://x.com/AnchorNode/status/2046490243650720104/analytics)
- [http://mirrors.tencentyun.com/ubuntu/](http://mirrors.tencentyun.com/ubuntu/)
- [mirrors.tencentyun.com](https://mirrors.tencentyun.com/)
- [archive.ubuntu.com](https://archive.ubuntu.com/)
- [network.target](https://network.target/)
- [multi-user.target](https://multi-user.target/)
- [mirrors.tencentyun.com](https://mirrors.tencentyun.com/)
- [archive.ubuntu.com](https://archive.ubuntu.com/)
- [Upgrade to Premium](https://x.com/i/premium_sign_up)
- [3:24 PM · Apr 21, 2026](https://x.com/AnchorNode/status/2046490243650720104)
- [1,987 Views](https://x.com/AnchorNode/status/2046490243650720104/analytics)
---
*导出时间: 2026/4/21 18:58:47*