石村号工程日志:HubProxy 加速中继构建

Author Avatar
石村战神艾萨克
发表:2026-03-12 11:50:56
修改:2026-03-12 11:50:56

[系统终端:USG 石村号 (Ishimura) - 工程控制台 07]

状态:主通信阵列离线...

协议:CEC 紧急网络重建指令

解密进度:██████████ 100%

警告:检测到大范围网络阻断与神印干扰

[RIG 识别码]:ENG-431-艾萨克·克拉克 (Isaac Clarke)

[当前位置]:舰桥 (Bridge) - 服务器机房

[生命体征]:⚠️ 黄区 (氧气消耗率上升)

"听着,如果你能看到这篇日志,说明你和我一样,被困在了网络物理隔绝的绝境里。石村号的主通信链路全毁了,我们无法直接拉取地球政府(Docker Hub)的生存设备图纸,也拿不到外星系(GitHub)的固件更新。

为了活下去,我们必须利用手头仅存的腾讯云节点,配合 1Panel 控制面板,部署一个隐蔽的 HubProxy 加速中继站,并通过 OpenResty 建立反向代理隧道 。我把这套部署协议记录下来了,无论你是要拉取 Docker 镜像,还是同步配置文件,这都是你活命的本钱。记住,不要把任何端口直接暴露给外面的怪物。"


第一阶段:生存物资与环境评估

HubProxy 是我们在这种极端环境下最理想的求生工具。它部署极其轻量,一个 Docker 容器就能跑起来,能够统一处理 Docker、GitHub 文件等多种上游的加速需求,完美适配个人服务器这种“轻量级网关”的场景 。

当前基建环境:

  • 宿主节点: 服务器 。

  • 中枢控制台: 1Panel 面板 。

  • 隧道协议: 1Panel 自带的 OpenResty (用于域名反代) 。

  • 部署编排: Docker Compose 。

我们的核心战略是 “隐蔽”:HubProxy 容器绝对不能直接暴露到公网,它只能静默监听本机端口,由 1Panel 的 OpenResty 用域名(如 xxxx.cc)进行反代 。公网的隔离门只允许开放 22、80、443 以及 1Panel 的管理端口 。


第二阶段:初始化容器编排 (Docker Compose)

放弃一次性的 docker run 命令。在混乱中,你需要一份可以随时重启、清晰可查的生存手册,这就是为什么我们必须在 1Panel 的“容器编排”中使用 YAML 脚本 。

在 1Panel 终端中进入:容器 → 编排 → 创建编排 。输入以下核心协议:

YAML

services:
  hubproxy:
    image: ghcr.io/sky22333/hubproxy:1.2.3
    container_name: hubproxy
    restart: always
    ports:
      - "127.0.0.1:10080:5000"

🩸 致命警告:端口暴烈的代价 绝对不要写成 -p 5000:5000!这就等同于向全宇宙广播你的坐标,把端口暴露给公网可达地址 。我们必须将其锁定为 "127.0.0.1:10080:5000",这意味着外网的怪物绝对无法直接访问它,只有你本机的 OpenResty 能找到这条隐秘的通道 。只要不绑定到 0.0.0.0,并且防火墙不放行,它就是安全的 。改成 10000 以上的端口主要是为了规整和防冲突,绑定本机 IP 才是真正的安全锁 。


第三阶段:构建反向代理防线 (OpenResty)

容器跑起来后,我们需要用 OpenResty 建立伪装隧道。

1.设立信标: 进入 1Panel:网站 → 创建网站 → 反向代理 。主域名填写你的安全坐标(例如 xxxxx.cc) 。

2.路径陷阱(极度重要): 代理地址必须精确填写为 http://127.0.0.1:10080结尾绝对不能带有斜杠 / !一旦加上斜杠,URL 会被错误规整,导致 HubProxy 拼接后端的加速链路彻底崩溃 。

3.强制加密 (HTTPS): 在 1Panel 中申请证书,并开启 HTTP 跳转 HTTPS,强制所有流量走安全信道 。底层的转移逻辑是:if ($scheme = http) { return 301 https://$host$request_uri; }


第四阶段:注入真实身份识别头 (Header Injection)

HubProxy 需要识别请求来源以执行限流。如果你不把真实的信号头传过去,它会以为所有请求都来自反代节点本身。

一般情况下,1panel自带该配置。

不要把这些配置盲目贴在最外层的 server 块里,必须深入到 include /www/sites/hubproxy/proxy/*.conf; 包含的具体反代配置中 。找到 location / 块,并注入以下指令:

Nginx

location / {
    proxy_pass http://127.0.0.1:10080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

必须带上 Host $host;,否则上游无法获取真实的访问域名 。你可以通过执行 nginx -T | grep -nE 'proxy_set_header (X-Real-IP|X-Forwarded-For|X-Forwarded-Proto|Host)' 来验证配置是否已刻入系统核心 。


第五阶段:跨星系链路诊断与物理法则

部署完成后,进行生存测试:

前端扫描: curl -I https://xxxx.cc/ (返回正常响应代表信道已通) 。

物资拉取: docker pull xxxx.cc/nginx (测试 Docker 加速) 。

[系统提示:检测到通风管道剧烈震动]

部署完成。这套 1Panel 配合 HubProxy 的方案足够轻量且致命,后续更新只需要重新拉取镜像并重启编排即可 。

等离子切割机需要充能了。我听到它们在门外抓挠的声音。保持静默,别让数据流溢出。克拉克,通讯结束。

[信号源已切断]

评论