推荐方法一(Cloudflare Tunnel),不需要公网 IP,也不用担心运营商封 80/443 端口。

方法一:Cloudflare Tunnel(推荐)

  1. 创建隧道:登录 Cloudflare,进入 Zero Trust → Networks → Tunnels → Create a tunnel,选择 Cloudflared,起个名字,然后复制页面里的 Token(一长串以 eyJ 开头的字符)。

  2. 在极空间部署 cloudflared:

    • 打开极空间的 Docker,在镜像中搜索并拉取 cloudflare/cloudflared(拉取慢的话需要配置镜像加速)。

    • 创建容器,网络模式选 host(这样可以直接用 localhost 访问本机端口)。

    • 启动命令填:

     tunnel --no-autoupdate run --token 你的Token
  • 启动后,回到 Cloudflare 页面,看到连接器状态为 Healthy / 已连接 即成功。

  1. 添加 Public Hostname:

    • Subdomain:如 blog,Domain:选你的域名(也可以留空,直接用根域名)

    • Service Type:HTTP

    • URL:localhost:56767(如果容器不是 host 模式,则填 极空间内网IP:56767)

    • 保存后,Cloudflare 会自动创建 DNS 的 CNAME 记录,无需手动添加。

  2. 修改 Halo 外部访问地址:进入 Halo 后台 系统 → 设置 → 基本设置(或 系统设置),把"外部访问地址"改为 https://blog.你的域名.com,否则文章链接、图片等可能还带着端口或 IP。

之后直接访问 https://blog.你的域名.com 即可,HTTPS 证书由 Cloudflare 自动提供。

方法二:有公网 IP 时用 Origin Rules 改端口

适用于你有公网 IPv4,并且已在路由器上把 56767 转发到极空间的情况。

  1. DNS 添加 A 记录,指向你的公网 IP,开启小黄云(代理)。

  2. SSL/TLS 加密模式选 Flexible(源站是 HTTP 时)。

  3. 进入 Rules → Origin Rules → Create rule:

    • 条件:Hostname 等于 blog.你的域名.com

    • 动作:Destination Port → Rewrite to → 56767

  4. 路由器做端口转发:外部 56767 → 极空间内网 IP:56767。

  5. 同样修改 Halo 的外部访问地址。

缺点是需要公网 IP,并且会暴露源站端口,IP 变动时还要配合 DDNS。