# 中转服务免费托管方案 > 起因:中转跑在一台 4G 随身 WiFi 上,链路丢包率 30%, > 导致 `relay.xxmxxs.top` 间歇性 1033 / 502 / 530。 > 用户问:网上有没有免费的托管方式。 --- ## 一、先说结论 **能,而且换过去之后,隧道那一整套问题会从根上消失。** 原因是这两件事: 1. **你的协议全是 HTTP 长轮询**,没有裸 TCP: ``` POST /v1/agent/register POST /v1/agent/poll ← 长轮询,最多 25 秒 POST /v1/agent/send POST /v1/agent/bye ``` 这意味着托管选择面很宽,不限于「支持自定义 TCP 端口」的商家。 2. **一旦有了公网 IP,就完全不需要 Cloudflare 隧道了。** 现在所有 1033 / 502 / 530 都是隧道这一跳出的问题。 直接 `A 记录 → 服务器 IP` 之后,这一跳消失。 ### 资源需求(实测,很小) | 项目 | 实测值 | |---|---| | relay.py 内存 | 23 MB | | relay.py CPU | 0.1% | | cloudflared 内存 | 38 MB(有公网 IP 后不需要) | | 代码体积 | 150 KB | | 数据目录 | 19 MB(含 15 MB 安装包) | | 请求量 | 约 6000 次/天(按 2 台设备 × 25 秒轮询算) | | 第三方依赖 | **零**(纯 Python 标准库) | **结论:最小的免费实例都绰绰有余。** --- ## 二、方案对比 | 方案 | 永久免费 | 独立公网 IP | 要信用卡 | 亚洲节点 | 免掉隧道 | 稳定性 | |---|---|---|---|---|---|---| | **Oracle Cloud Always Free** | ✅ 永久 | ✅ | ✅ 实体卡 | 东京/大阪/首尔 | ✅ | 高 | | **ClawCloud Run** | ✅ $5/月 | ❌ 容器 | ❌ 只要 GitHub | 有 | ❌ 仍需隧道 | 中 | | **Google Cloud e2-micro** | ✅ | ✅ | ✅ | ❌ 只有美国 | ✅ | 高 | | **Cloudflare Workers + Durable Objects** | ✅ | ✅ | ❌ | 全球 | ✅ | 高(但要重写) | | **Hugging Face Spaces** | ✅ | ❌ | ❌ | 有 | ❌ | 低(会休眠) | | 现状(4G 随身 WiFi) | — | 隧道 | — | — | — | **低(丢包 30%)** | --- ## 三、推荐方案 ### 🥇 第一选择:Oracle Cloud Always Free **规格(真·永久免费,不是试用):** | 资源 | 配置 | |---|---| | CPU | 4 核 Ampere A1(ARM) | | 内存 | 24 GB | | 存储 | 200 GB | | 月出口流量 | 10 TB | | 价格 | **$0,不限期** | 另外还附带 2 台 AMD x86 小机器(各约 1 核 1 GB),当备用。 **为什么最合适:** - 有真实公网 IP → **彻底不用隧道了** - 10 TB/月流量 → 流量完全不是问题 - 东京 / 大阪 / 首尔区域 → 国内延迟约 50~100 ms (比现在的公网 690 ms 快 7 倍) **注册要点(社区总结的风控规律):** - 需要**实体信用卡**(Visa/Mastercard,招行/工行/中行/浦发都行;**不接受虚拟卡和预付卡**) - 国内 +86 手机号可以直接用 - **必须关掉代理、用手机热点注册** —— Oracle 校验 IP 来源和信用卡发卡国是否一致 - 账单地址填中国地址 - 主区域**选完不能改**,想清楚再点 **唯一难点:亚洲区的 ARM 实例经常「Out of Capacity」** 社区有自动抢机脚本,挂在 GitHub Actions 上自动重试: - [oci-free-arm-instance](https://github.com/maoucodes/oci-free-arm-instance)(GitHub Actions 版) - [oracle-freetier-instance-creation](https://github.com/mohankumarpaluru/oracle-freetier-instance-creation)(Python 版) **保活**:Oracle 会检查闲置(CPU/内存/网络利用率连续 7 天低于 20% 可能回收)。 **我们的中转一直在长轮询,永远不会闲置** —— 这条风险天然规避,不需要额外保活脚本。 参考:[Oracle 白送 4 核 24G 服务器,注册到跑起来一次讲清](https://byronfinn.github.io/oracle-free-vps-guide/) --- ### 🥈 第二选择:ClawCloud Run(不用信用卡) | 项目 | 规格 | |---|---| | 免费额度 | **$5 / 月**(连接 GitHub 账号领取) | | 容器 | 4 核 8 GB / 10 GB 磁盘 / 10 GB 流量 | | 信用卡 | **不需要** | | 注册 | GitHub 一键登录 | **优点**:零门槛,不绑卡。 **缺点**: - 是**容器**,没有独立公网 IP → **仍然需要 Cloudflare 隧道** - 有「定期活跃检查 + 长期闲置释放」机制 不过我们一直在轮询,不会闲置,这条影响很小 - 仍需自己算好 $5 额度(按最低配 0.16 刀/天算,一个月约 $4.8,够但没余量) 参考:[永久免费的高配容器 ClawCloud](https://cloud.tencent.com.cn/developer/article/2516945) --- ### 🥉 第三选择:Cloudflare Workers + Durable Objects **完全免费、不用信用卡、全球节点、天然免隧道。** Cloudflare 的 Durable Objects 就是为「有状态的长连接中转」设计的, 社区已经有人用 Worker + DO 做中转([openchamber-relay](https://github.com/openchamber/openchamber-relay))。 **代价**:Workers 跑不了 Python,**整个中转要用 JavaScript 重写**。 你现在的 150 KB Python 代码用不上。 除非以后想彻底脱离服务器,否则不值得。 --- ## 四、搬到新服务器要改什么 **好消息:被控端和手表一个字都不用改。** 它们只知道一个域名。 ### 服务器上要做的事 ```bash # 1. 装 Python(Debian/Ubuntu 自带) apt update && apt install -y python3 # 2. 把 relay/ 目录拷过去 scp -r relay/ root@<新服务器IP>:/root/lanremote-relay/ # 3. 写 systemd 服务 cat > /etc/systemd/system/lanremote-relay.service <<'EOF' [Unit] Description=ykxmz 中转服务器 After=network.target [Service] Type=simple WorkingDirectory=/root/lanremote-relay Environment=RELAY_BIND=0.0.0.0 Environment=RELAY_PORT=8080 Environment=RELAY_DATA=/root/lanremote-relay ExecStart=/usr/bin/python3 /root/lanremote-relay/relay.py Restart=always RestartSec=3 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable --now lanremote-relay ``` **只改一处环境变量**:`RELAY_BIND` 从 `127.0.0.1` 改成 `0.0.0.0` (现在绑本地是因为前面有隧道;有了公网 IP 要直接对外) ### Cloudflare 后台要做的事 1. 进 DNS,把 `relay` 这条记录的**类型从 Tunnel 改成 A** 2. 值填新服务器 IP 3. 橙云(代理)**建议保持开启** —— 免费 DDoS 防护 + 隐藏真实 IP 4. SSL/TLS 模式设为 **Full** 或 **Full (Strict)** ### 可以删掉的东西 - ❌ `cloudflared` 隧道服务(`lanremote-tunnel`) - ❌ 看门狗(`lanremote-watchdog`)—— 没有隧道就不需要看门狗 - ❌ 网络调优脚本(`lanremote-nettune`)—— 那是为 4G 的 MTU 问题写的 - ❌ 那个 4G 随身 WiFi 设备本身 **代码里有两处要顺手改掉:** - `relay.py:267` 写死了 `/root/lanremote-relay/public_url.txt` → 改用 `RELAY_PUBLIC_URL` 环境变量 - `relay.py:1245` 读隧道 metrics → 没有隧道了,直接返回「直连模式」 --- ## 五、代价与风险(说实话) | 风险 | 说明 | 缓解 | |---|---|---| | Oracle 注册失败 | 风控严,IP/卡/地址三者要一致 | 按上面的清单来,用手机热点 | | ARM 实例抢不到 | 亚洲区热门,常见 Out of Capacity | 挂自动抢机脚本,等几小时到几天 | | Oracle 可能回收闲置实例 | 连续 7 天利用率 <20% | **我们一直轮询,不会闲置** | | 商家政策变化 | 任何免费服务都可能改条款 | 代码无依赖,随时能搬走 | | 国内访问延迟 | 取决于线路,绕路可能反而变慢 | 选东京/大阪/首尔,实测再定 | | 换 IP 期间的过渡 | 手表里填的是域名,不用改 | 但切换那一刻会有短暂中断 | **最坏情况**:Oracle 用不了,就退回 ClawCloud(不用信用卡),或者继续用现在的 4G 设备 —— 现在的 watchdog 已经能自愈,只是没那么稳。 --- ## 六、我的建议 **先试 Oracle。** 理由: 1. 唯一一个「永久免费 + 真公网 IP」的组合 → **能把隧道问题从根上解决** 2. 配置高到离谱(4 核 24G),跑 100 个中转都够 3. 东京/首尔延迟比现在好一个数量级 **如果 Oracle 注册不顺利**,就退到 ClawCloud(不用信用卡), 但那仍然要隧道,稳定性提升有限 —— 只是把「4G 链路」换成「机房链路」。 --- ## 附:判断依据来源 - [Oracle Cloud Free Tier 官方文档](https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier.htm) - [Oracle 白送 4 核 24G 服务器,注册到跑起来一次讲清](https://byronfinn.github.io/oracle-free-vps-guide/) - [永久免费的高配容器 ClawCloud](https://cloud.tencent.com.cn/developer/article/2516945) - [Cloudflare Durable Objects 定价](https://developers.cloudflare.com/durable-objects/platform/pricing/) - [openchamber-relay(Worker + DO 中转实例)](https://github.com/openchamber/openchamber-relay) - [ClawCloud Run 控制台](https://console.run.claw.cloud/) > 注:免费服务的条款随时会变,落地前请再确认一次当时的政策。