← 中文首页

Hermes 网络配置

Hermes Agent + Tailscale:无需端口转发的安全远程访问指南

不想在路由器上开放端口,又需要在外面访问家里的 Hermes?用 Tailscale 把自己的设备连进私有网络,也可以让远程自建 Hermes 通过加密连接调用家中 GPU 上的 Ollama。

本文根据站内英文指南改写,重点介绍自建 Hermes 的私网访问。托管实例的 SSH 接入与模型接口有不同限制,下文分别说明。中国用户使用前,建议在实际网络中测试登录、设备互联和连接延迟。

Tailscale 是什么?

Tailscale 是基于 WireGuard 的组网工具。加入同一个私有网络的设备可以通过加密连接互相访问,这个网络称为 tailnet。每台设备会获得一个稳定的私有地址,通常形如 100.x.x.x,换到其他网络后仍可用这个地址联系它。

与把所有流量绕经一台中心服务器的传统 VPN 不同,Tailscale 会尽量让设备直接建立点对点连接;无法直连时再使用加密中继。它会自动处理 NAT 穿透,包括双重 NAT 或运营商级 NAT(CGNAT)场景,通常不需要手动配置路由器端口转发,也不要求设备拥有公网 IP。

为什么给 Hermes Agent 配 Tailscale?

Hermes 运行在家用电脑、NAS 或 VPS 上时,离开这台机器后,怎样安全访问它就成了实际问题。英文指南使用 localhost:8642 作为浏览器网关示例;仅监听本机的服务不能直接从其他设备访问。Tailscale 提供设备之间的私网通路,具体服务仍需允许来自这个通路的连接。

  • 在外面访问网关:手机或笔记本加入同一个 tailnet 后,通过服务器的私网地址打开 Hermes,无需把管理界面公开到互联网。
  • 让远程 Hermes 使用家中 GPU:Ollama 在家里的高性能机器上推理,远程自建 Hermes 负责智能体逻辑,通过 Tailscale 调用模型接口。
  • 减少网络配置:不用为每台机器安排公网地址、动态 DNS 或路由器端口转发。
  • 连接加密、地址稳定:WireGuard 保护设备间的流量,稳定的设备地址也减少了因网络切换而修改配置的需要。

如果只是想随时与机器人聊天,OpenClaw Launch 托管的 Hermes 已提供 HTTPS 地址、网页聊天,以及 Telegram、Discord 或 WhatsApp 等入口。需要命令行管理时,可以从机器人卡片把实例加入自己的 tailnet,使用 Tailscale SSH;这与下面的私网模型接口配置是两回事。

适合哪些场景?

在外面访问家中的 Hermes

家里的服务器或 NAS 运行 Hermes,外出的笔记本也安装 Tailscale。两端联网后,用服务器的 Tailscale IP 和网关端口访问,例如 http://100.x.x.x:8642,就像访问私有网络中的另一台机器。

家中 GPU 推理,云端 Hermes 执行任务

家里的电脑运行 Ollama,云端的小型 VPS 运行 Hermes。把模型接口指向家用电脑的 Tailscale 地址,就能让远程自建 Hermes 调用本地 GPU,不产生云模型按 token 收费的 API 用量。硬件、电费和 VPS 等运行成本仍需自行承担。

这条私网模型路径适用于自行部署的 Hermes。OpenClaw Launch 托管机器人虽然支持加入 tailnet 进行 SSH 访问,但模型接口要求公网 HTTPS 地址,不能填 100.x.x.x。如果要让托管机器人使用家中 GPU,需要先给模型服务配置带 API 密钥的公网 HTTPS 地址,再在 API Keys 页面添加自定义 API 提供商,具体参见英文 Ollama 配置指南。

多台服务器之间私网通信

如果网关、推理服务或中继运行在不同机器上,可以用稳定的 tailnet 地址连接它们,并在 Tailscale 管理控制台设置访问控制列表(ACL),限制哪些设备能访问哪些服务端口。

第一步:在需要互联的设备上安装 Tailscale

  1. 在 tailscale.com 注册账号。个人用途可以从免费方案开始,设备和用户额度以注册时的方案说明为准。
  2. 在第一台机器上安装客户端。Linux(Debian / Ubuntu)可使用下面的命令;macOS 和 Windows 则从 tailscale.com/download 下载图形客户端并登录。
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
  1. 在另一台设备上重复安装并加入同一个 tailnet。家用服务器、VPS、笔记本和手机都应按实际访问需要加入。
  2. 在每台设备运行 tailscale ip 查看地址,或在 login.tailscale.com/admin/machines 的设备列表中确认。
  3. 从一台机器运行 ping 100.x.x.x,将示例替换为另一台设备的地址。收到响应说明基本网络通路已连通,之后再检查目标服务是否可访问。

第二步:通过 Tailscale 连接 Ollama 与远程 Hermes

下面以家用 GPU 机器运行 Ollama、另一台机器运行自建 Hermes 为例。Ollama 的 /v1 路径提供 OpenAI 兼容接口;完整的模型提供商配置可对照Hermes + Ollama 指南。

1. 在 GPU 机器准备 Ollama 和模型

先按上面的步骤连接 Tailscale,再安装 Ollama,下载支持工具调用的模型。英文指南使用以下示例:

ollama pull qwen3:32b
ollama serve

2. 记下 GPU 机器的 Tailscale IP

tailscale ip
# 示例输出:100.64.1.42

后续示例中的 100.64.1.42 都要换成你的实际地址。

3. 让 Ollama 监听 Tailscale 地址

Ollama 默认只监听 localhost,远程 Hermes 无法通过私网 IP 连接。按原文说明,将 Ollama 的监听地址设为自己的 Tailscale 接口,例如 OLLAMA_HOST=100.64.1.42,让设置在启动 Ollama 服务时生效。

优先绑定具体的 Tailscale 地址。0.0.0.0 会监听所有网络接口,包括局域网和可能存在的公网接口;若必须这样监听,应通过主机防火墙只允许从 tailscale0 进入的连接。隧道加密与限制外部访问分别需要处理。

4. 修改 Hermes 的模型接口地址

在 Hermes 的 config.yaml 中,把模型提供商的 OpenAI 兼容接口地址从 localhost 改为 GPU 机器的 Tailscale 地址,并选择 Ollama 已下载的模型。下面延续英文原文的注释示例,只说明要填的地址,不是一段完整的 YAML 配置:

# 在 Hermes config.yaml 的模型提供商配置中
# 将 OpenAI 兼容接口的 base URL 指向 GPU 机器:
#   http://100.64.1.42:11434/v1
# 再选择 Ollama 提供的模型,例如 qwen3:32b。

5. 重启并应用配置

按自己的部署方式重启 Hermes 网关;使用 Docker 时重启对应容器。配置生效后,模型请求会通过加密的 Tailscale 通路发送到家中 GPU。

第三步:通过私网访问 Hermes 网关

  1. 在运行 Hermes 的机器上执行 tailscale ip,记下它的私网地址。
  2. 确认网关监听地址允许 Tailscale 连接,访问策略也允许当前设备连接该端口。服务若只监听 localhost,仅安装 Tailscale 还不能让它通过私网 IP 可达。
  3. 在同一个 tailnet 的另一台设备上打开 http://100.x.x.x:8642。地址和端口都要按实际部署替换,8642 是英文指南中的示例。
  4. 完成网关本身的身份验证。连接通过 WireGuard 隧道传输,不需要在路由器或云防火墙上公开这个应用端口。

如果希望使用域名,可结合 Tailscale 的 MagicDNS 与 HTTPS 支持,按相应配置访问类似 https://my-server.tail1234.ts.net:8642 的地址。需要完成 HTTPS 配置,不能只把浏览器地址中的 HTTP 改成 HTTPS。

安全方面还要注意什么?

  • 传输加密:WireGuard 保护 tailnet 设备之间的流量;无法点对点直连时,加密中继也无法读取业务数据。
  • 减少公网入口:不再需要把 Hermes 网关端口暴露给公网扫描,但仍要检查服务的监听地址与防火墙。
  • 管理设备准入:控制哪些设备能加入 tailnet,不把私网当作匿名访问入口。
  • 限制服务访问:用 ACL 指定哪些设备能访问 Hermes 或 Ollama 的端口,避免默认让所有设备都能连接。
  • 处理设备丢失和密钥到期:在管理控制台管理设备与访问权限,及时撤销丢失或疑似被入侵设备的访问。

Tailscale、端口转发和其他隧道怎样选?

比较项Tailscale端口转发Cloudflare TunnelNgrok
配置难度较低,设备安装客户端中等,需要路由器与防火墙配置较低较低
是否需要公网入站端口无需公开应用端口需要不需要不需要
传输加密WireGuard 端到端加密取决于应用是否配置 TLS经 Cloudflare 的 TLS 连接经 Ngrok 的 TLS 连接
流量路径优先点对点,必要时加密中继直接连接经过 Cloudflare经过 Ngrok
运营商级 NAT支持通常无法直接使用支持支持
费用有免费方案,注意设备与用户额度无需另付隧道服务费有免费层有免费层,存在限制
延迟特点直连时通常较低直接连接,通常较低受边缘节点路径影响受中继路径影响
适合场景自己的设备之间私网访问简单、固定的公网部署对外提供 HTTP 服务快速建立临时测试隧道

只让自己的设备访问 Hermes,优先考虑 Tailscale。确实需要公开 HTTP 服务时,可以评估 Cloudflare Tunnel,同时认真配置认证。端口转发会公开 IP 和服务端口,需要自己承担入口防护;Ngrok 更适合原文提到的短期测试。实际延迟应以自己的网络测试为准。

常见问题

可以用 Tailscale 远程访问自建 Hermes Agent 吗?

可以。在运行 Hermes 的机器和用来访问它的设备上安装 Tailscale,加入同一个 tailnet。确认网关监听地址与访问策略允许连接后,就能通过服务器的 Tailscale IP 和实际网关端口访问,无需把应用端口开放到公网。英文指南以 http://100.x.x.x:8642 为例。

怎样把家里的 Ollama GPU 接到远程 Hermes?

在 GPU 机器和自建 Hermes 所在机器上安装 Tailscale,让 Ollama 监听 GPU 机器的 Tailscale 地址,例如 OLLAMA_HOST=100.64.1.42,再把 Hermes 的 OpenAI 兼容模型接口地址设为 http://100.64.1.42:11434/v1,选择 Ollama 已下载的模型。

OpenClaw Launch 托管的 Hermes 也能直接使用 Tailscale 模型地址吗?

不能直接这样配置。托管机器人可以加入 tailnet,用于 Tailscale SSH,但模型接口必须使用公网 HTTPS 地址,100.x.x.x 私网 IP 会被拒绝。使用家中 GPU 时,需要为模型服务提供带 API 密钥的公网 HTTPS 接口,再添加为自定义 API 提供商。

Tailscale 可以免费使用吗?

Tailscale 提供免费方案,可用于个人 Hermes 设备互联。英文指南列出的免费额度为最多 100 台设备、3 名用户;方案可能调整,注册前请以 Tailscale 当时公布的设备和用户额度为准。模型推理使用自有 GPU,不代表硬件、电费和服务器运行成本也为零。

Tailscale 如何保护 Hermes 的连接?

设备之间的流量通过 WireGuard 加密,能直连时优先点对点通信;无法直连时可回退到无法解密业务数据的 DERP 中继。还应管理加入网络的设备,用 ACL 限制服务访问,并保留 Hermes 自身的认证。丢失设备后,可在 Tailscale 管理控制台撤销访问权限。

相关阅读

先确定 Hermes 运行在哪里

自建环境适合需要连接家中 GPU、自己管理网络的人。只想随时与助手聊天,也可以考虑 OpenClaw Launch 托管:原文介绍的托管实例已有 HTTPS 地址和聊天入口,不必先配置 Tailscale。

查看 Hermes 中文入门