远程访问
通过 Cloudflare Tunnel 一键把网关开放到公网,在其他设备上使用
Astra 默认只监听本机。打开 设置 → 远程访问,Astra 会运行一个 Cloudflare Tunnel,把网关开放到公网:不需要公网 IP,也不用在路由器上转发端口。
开启前先确认
任何知道地址的人都能访问你的网关入口。远程调用始终需要 Astra 令牌(不受本机「强制令牌」开关影响),请只把地址和令牌分享给信任的人。
工作方式
- Astra 第一次开启远程访问时下载固定版本的
cloudflared,按固定的 SHA-256 校验后放到~/.astra/tools/。下载来源见下一节「cloudflared 从哪里来」。 cloudflared作为 Astra 的子进程运行:断线后自动重连;Astra 退出时一起退出;开关保持开启时,Astra 下次启动会自动重新连接。- 页面底部的「运行日志」显示
cloudflared最近的输出,连接失败时先看这里。
cloudflared 从哪里来
在远程访问页面的「cloudflared」一组里选择:
| 下载来源 | 说明 |
|---|---|
| 自动(默认) | 先从 GitHub 下载;GitHub 失败,或 20 秒内没有任何数据时,改用 Astra 官网镜像 |
| GitHub | 只从 cloudflared 的 GitHub Releases 下载 |
| Astra 官网镜像 | 从 astra-gate.si 下载,GitHub 访问慢的网络(例如中国大陆)通常更快 |
| 自定义地址 | 从你指定的地址下载,例如 GitHub 加速代理。文件按「地址/版本号/文件名」获取,与 GitHub Releases 的目录结构相同 |
无论从哪个来源下载,文件都会按 Astra 内置的 SHA-256 校验,校验不通过就不会使用,所以来源本身不需要可信。
也可以不下载,直接使用这台电脑上已经安装的 cloudflared:点「使用已安装的」,Astra 会在 PATH 中查找,也可以手动填写路径;Astra 会运行 cloudflared --version 确认它能用。这个选项只能在这台电脑上设置,不能通过远程地址修改。环境变量 ASTRA_CLOUDFLARED 的优先级最高,设置后页面上的选项不生效。
连接方式
临时地址(无需账号)
Cloudflare 分配一个随机的 https://xxx.trycloudflare.com 地址,打开开关即可使用。
不适合日常使用
临时地址不支持流式输出(SSE),Claude Code、Codex 等大多数编程客户端会因此无法正常工作。地址在每次启动时都会变化,也没有可用性保证。只适合临时试用。
固定域名(推荐)
使用你在 Cloudflare 上创建的隧道和自己的域名(域名需要托管在 Cloudflare):
- 打开 Cloudflare Zero Trust → Networks → Tunnels,新建一个 Cloudflared 类型的隧道。
- 安装页面给出的命令里,
--token后面那一长串就是隧道令牌,复制它。不需要在电脑上执行那条安装命令,Astra 会自己运行cloudflared。 - 为隧道添加公网主机名(例如
astra.example.com),把服务(Service)设为远程访问页面上显示的服务地址,例如http://127.0.0.1:17321。 - 回到 Astra,选择「固定域名」,填入隧道令牌和公网域名,保存后打开开关。
隧道令牌加密保存,界面和接口只显示是否已设置。
端口要一致
Astra 的端口变化时(例如 17321 被占用后自动换了端口),Cloudflare 后台的服务地址需要同步修改。想让端口保持不变,可以在 ~/.astra/config.json 里设置 port,并设置环境变量 ASTRA_STRICT_PORT=1:端口被占用时启动失败,而不是悄悄换端口。
远程开放范围
| 内容 | 远程访问 |
|---|---|
网关 API(/v1、/v1beta)和令牌自助查询页 /key | 始终开放,必须携带 Astra 令牌 |
| 管理后台和管理接口 | 默认关闭;打开「管理后台」开关后,需要管理员密码登录 |
- 打开「管理后台」之前需要先设置管理员密码,可以在远程访问页面直接设置,也可以用
astra-server set-password。密码只能在这台电脑上设置,不能通过远程地址修改。 - 远程登录失败会按访问者 IP 限速(每 5 分钟 10 次)。登录会话的 Cookie 带有
Secure和SameSite=Strict。 - 管理后台关闭时,通过远程地址打开控制台只会看到「远程管理已关闭」的提示。
请求日志里的远程请求
经 Cloudflare 转发的请求在请求日志的「客户端」一栏带一个地球图标,鼠标悬停显示访问者的 IP;详情里的「来源」也会写明。开启过远程访问后,筛选栏会多出「来源」筛选,可以只看远程或本机的请求。
在其他设备上使用
在客户端里填写远程网关地址(页面上的「远程网关地址」,形如 https://astra.example.com/v1)和一个 Astra 令牌。令牌在控制台的「令牌」页面创建和复制;令牌的用量与限额可以让持有者在 https://你的域名/key 自助查看。
本机的客户端仍然直连 127.0.0.1,开启远程访问不会改动它们的配置。
Docker
容器内不托管 cloudflared,远程访问页面会显示提示。请把 cloudflared 作为 sidecar 容器运行,指向 Astra 容器的地址,并按Docker 部署设置管理员密码。经 Cloudflare 转发的请求同样会被识别为远程请求,网关调用始终需要令牌。
Astra Gate