cloudflare-tunnel-multi-service
Cloudflare Tunnel(多服务入口)
用途:把本机多个服务(如 mt serve)统一暴露到公网,并可通过 Cloudflare Access 做登录保护。
当前状态(2026-02-07)
- 域名:
138000.xyz - Tunnel 名称:
mom-os - Tunnel ID:
<REDACTED_TOKEN> cloudflared版本:2026.2.0- MT 公网地址:
https://mt.138000.xyz
本机配置位置
- Tunnel 配置:
~/.cloudflared/config.yml - Tunnel 凭据:
~/.cloudflared/<REDACTED_TOKEN>.json - Origin 证书:
~/.cloudflared/cert.pem - LaunchAgent:
~/Library/LaunchAgents/<REDACTED_FILENAME> - 运行日志:
~/Library/Logs/<REDACTED_FILENAME>
当前 ingress 配置
tunnel: <TUNNEL_ID>
credentials-file: <REDACTED_PATH><TUNNEL_ID>.json
ingress:
- hostname: mt.138000.xyz
service: http://127.0.0.1:5700
- service: http_status:404
运维命令
# 查看 tunnel 列表
cloudflared tunnel list
# 查看 mom-os 状态(连接边缘节点)
cloudflared tunnel info mom-os
# 查看 launchd 状态
launchctl list | grep cloudflared
# 重启 cloudflared(用户级)
launchctl kickstart -k <REDACTED_LAUNCHCTL_PATH>
# 查看运行日志
tail -f ~/Library/Logs/<REDACTED_FILENAME>
新增一个服务(标准流程)
以 api.138000.xyz -> http://127.0.0.1:8787 为例:
- 在
~/.cloudflared/config.yml添加 ingress:
- hostname: api.138000.xyz
service: http://127.0.0.1:8787
- 添加 DNS 路由到 tunnel:
cloudflared tunnel route dns mom-os api.138000.xyz
- 重启 cloudflared:
launchctl kickstart -k <REDACTED_LAUNCHCTL_PATH>
- 连通性验证:
curl -I https://api.138000.xyz
登录保护(Cloudflare Access)
说明:Tunnel 只负责网络连通;登录验证由 Cloudflare Zero Trust 的 Access 负责。
建议:
- 为每个公开服务创建一个
Self-hostedApplication - 访问策略先允许
<REDACTED_USERNAME>自己的邮箱 - 可叠加 MFA、会话时长等策略
最小策略:
- Include: 指定邮箱(或邮箱域)
- Exclude: 无
- Require: 可选 MFA
迁移与回滚
- 临时停止公网访问:
- 从
config.yml去掉对应hostname,重启 cloudflared - 或在 Cloudflare Dashboard 删除对应 DNS 路由
- 从
- 回滚 tunnel:
cloudflared tunnel delete mom-os(谨慎,会移除 tunnel)
备注
cloudflared service install默认只启动cloudflared可执行文件,不会自动tunnel run指定 tunnel。- 需要在 LaunchAgent 里明确写入:
--config ~/.cloudflared/config.yml tunnel run mom-os