家用 Hermes 公网访问指南:内网穿透 + Cloudflare Tunnel 实操

N100 小主机部署 Hermes Agent,通过内网穿透或 Cloudflare Tunnel 实现公网访问,再接入飞书微信推送。实测踩坑全记录。

家用 Hermes 公网访问指南:内网穿透 + Cloudflare Tunnel 实操 封面图

核心结论

本地部署 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 飞书机器人配置

  1. 在飞书开放平台创建应用:https://open.feishu.cn/
  2. 启用「机器人」能力
  3. 记录 App ID 和 App Secret
  4. 配置事件订阅,回调地址指向你的 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 应该能收到并回复。


AI助手多平台接入:同时连接飞书、微信等消息平台

五、接入微信推送

微信接入比飞书复杂一些,因为微信没有官方的免费机器人 API。Hermes 用的是第三方 adapter 方案。

5.1 weixin-wechat-adapter 方案

# 加载技能
skill_view(name='weixin-wechat-adapter')

核心思路是通过网页微信协议桥接 Hermes 和微信。需要:

  1. 配置 weixin-wechat-adapter 技能
  2. 扫码登录绑定微信账号
  3. 在 config.yaml 中启用

5.2 注意事项

  • 一个微信账号同一时间只能绑定一个平台。如果 OpenClaw 也绑了这个微信,需要先解除 OpenClaw 的绑定
  • 网页微信协议存在封号风险,建议用小号测试
  • 稳定性不如飞书机器人,但胜在个人用户也能用

六、方案对比

方案难度成本HTTPS稳定性推荐场景
Cloudflare Tunnel★★☆免费✅ 自动★★★★首选方案
frp 内网穿透★★★VPS ~20元/月❌ 需手动★★★有公网 IP
路由器端口映射★★★★需公网 IP❌ 需手动★★★技术玩家
ngrok★★☆免费版有限制✅ 自动★★☆临时测试

七、总结

一句话:N100 + Cloudflare Tunnel + 飞书机器人,这三件套组合起来就是一个 24 小时在线的个人 AI 助手,月成本为零。

具体操作顺序:

  1. 装好 Hermes Agent
  2. 用 cloudflared tunnel 暴露到公网
  3. 配置飞书机器人接入
  4. (可选)用微信 adapter 做个人推送

整个过程实测 30 分钟内可以搞定。遇到问题先看日志:journalctl -u hermes-agent -f 和 journalctl -u cloudflared -f 基本能定位 90% 的问题。

← 返回文章列表