石村号工程日志:HubProxy 加速中继构建
[系统终端: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 的方案足够轻量且致命,后续更新只需要重新拉取镜像并重启编排即可 。
等离子切割机需要充能了。我听到它们在门外抓挠的声音。保持静默,别让数据流溢出。克拉克,通讯结束。
[信号源已切断]