核心结论
本地部署 Hermes Agent(N100 小主机)后,Cloudflare Tunnel 是最省心的公网暴露方案——零端口转发、免公网 IP、自带 HTTPS。配合 weixin-wechat-adapter 和飞书接入,就能把 AI 助手推送到手机和办公平台。
如果你没有公网 IPv4,或者不想折腾路由器端口映射,这条路径基本是零门槛。
一、前置条件
先确认你的硬件和环境:
- N100 小主机:4 核 8G,功耗 6W,适合 7×24 运行
- Hermes Agent:已在本机部署并正常运行(
hermes status显示 green) - Cloudflare 账号:免费注册即可
- 域名:至少一个已注册并托管到 Cloudflare 的域名(免费买一个 .top 也行)
如果你的网络环境有公网 IPv4 并且路由器能改端口映射,内网穿透方案(frp/ngrok)也可以,但 Cloudflare Tunnel 更简单,下面重点讲。
二、Cloudflare Tunnel 方案(推荐)
2.1 安装 cloudflared
在 N100 上(Ubuntu/Debian):
# 下载安装
wget -qO- https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb \
-O cloudflared.deb
sudo dpkg -i cloudflared.deb
# 验证
cloudflared --version
macOS 用户直接用:brew install cloudflared
2.2 创建 Tunnel
# 登录 Cloudflare(会打开浏览器授权)
cloudflared tunnel login
# 创建隧道
cloudflared tunnel create hermes-tunnel
执行完后会在 ~/.cloudflared/ 下生成一个 JSON 配置文件,里面包含你的 Tunnel UUID 和证书路径。记下这个 UUID,后面要用。
2.3 配置路由
编辑 ~/.cloudflared/config.yml:
credentials-file: /home/woodt/.cloudflared/<UUID>.json
# 将隧道流量转发到本地 Hermes 服务
ingress:
- hostname: hermes.yourdomain.com
service: http://localhost:3000
- service: http_status:404
关键点:
hostname换成你自己的域名子域名service指向 Hermes Agent 的实际端口(默认 3000,以你的配置为准)- 最后一条是兜底规则,不匹配的请求返回 404
2.4 启动 Tunnel
# 前台运行(测试用)
cloudflared tunnel run hermes-tunnel
# 后台运行(生产用)
sudo cloudflared service install hermes-tunnel
sudo systemctl start cloudflared
sudo systemctl enable cloudflared
验证:浏览器打开 https://hermes.yourdomain.com,应该能看到 Hermes WebUI。
三、内网穿透方案(备选)
如果你有公网 IP 但不想用 Cloudflare,frp 是另一个选择。
3.1 需要准备一台有公网 IP 的 VPS
阿里云/腾讯云轻量服务器都行,月付 20 元左右的就够。
3.2 VPS 端配置 frps
# frps.toml
bindPort = 7000
token = "your-secret-token"
./frps -c frps.toml
3.3 N100 端配置 frpc
# frpc.toml
serverAddr = "你的VPS_IP"
serverPort = 7000
token = "your-secret-token"
[[proxies]]
name = "hermes-web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3000
remotePort = 8000
启动后,通过 http://你的VPS_IP:8000 就能访问本地的 Hermes。
踩坑:frp 走的是 TCP 穿透,没有自动 HTTPS。如果需要 HTTPS,得在 frps 前面再加一层 Nginx 反代 + Let’s Encrypt 证书,比 Cloudflare Tunnel 麻烦不少。
四、接入飞书推送
公网通了之后,下一步是把 Hermes 的消息推送到飞书。
4.1 飞书机器人配置
- 在飞书开放平台创建应用:https://open.feishu.cn/
- 启用「机器人」能力
- 记录
App ID和App Secret - 配置事件订阅,回调地址指向你的 Hermes 公网地址
4.2 Hermes 侧配置
在 config.yaml 中添加飞书配置:
lark:
app_id: "cli_xxxxxxxx"
app_secret: "xxxxxxxx"
verification_token: "xxxxxx"
重启 Hermes:
sudo systemctl restart hermes-agent
4.3 验证
在飞书群里 @机器人 发消息,Hermes 应该能收到并回复。
五、接入微信推送
微信接入比飞书复杂一些,因为微信没有官方的免费机器人 API。Hermes 用的是第三方 adapter 方案。
5.1 weixin-wechat-adapter 方案
# 加载技能
skill_view(name='weixin-wechat-adapter')
核心思路是通过网页微信协议桥接 Hermes 和微信。需要:
- 配置
weixin-wechat-adapter技能 - 扫码登录绑定微信账号
- 在 config.yaml 中启用
5.2 注意事项
- 一个微信账号同一时间只能绑定一个平台。如果 OpenClaw 也绑了这个微信,需要先解除 OpenClaw 的绑定
- 网页微信协议存在封号风险,建议用小号测试
- 稳定性不如飞书机器人,但胜在个人用户也能用
六、方案对比
| 方案 | 难度 | 成本 | HTTPS | 稳定性 | 推荐场景 |
|---|---|---|---|---|---|
| Cloudflare Tunnel | ★★☆ | 免费 | ✅ 自动 | ★★★★ | 首选方案 |
| frp 内网穿透 | ★★★ | VPS ~20元/月 | ❌ 需手动 | ★★★ | 有公网 IP |
| 路由器端口映射 | ★★★★ | 需公网 IP | ❌ 需手动 | ★★★ | 技术玩家 |
| ngrok | ★★☆ | 免费版有限制 | ✅ 自动 | ★★☆ | 临时测试 |
七、总结
一句话:N100 + Cloudflare Tunnel + 飞书机器人,这三件套组合起来就是一个 24 小时在线的个人 AI 助手,月成本为零。
具体操作顺序:
- 装好 Hermes Agent
- 用
cloudflared tunnel暴露到公网 - 配置飞书机器人接入
- (可选)用微信 adapter 做个人推送
整个过程实测 30 分钟内可以搞定。遇到问题先看日志:journalctl -u hermes-agent -f 和 journalctl -u cloudflared -f 基本能定位 90% 的问题。
