三天拉锯战:在 Railway 上搭一个节点,怎么就这么难
Three days, one security incident, eight failed attempts, an expired trial — and a spare proxy node that finally came alive.
这篇记的是一场拉锯战:10 月 21 日到 24 日,我想在一个叫 Railway 的云平台上搭一个自用节点,前后折腾了三天多。事后看,技术本身只占三成,剩下七成是运气、耐心和取舍。还是老规矩:先框架,后细节。
先看框架:三天时间线
- 第一天,起意与连败:选定用 Railway 的 30 天试用(免绑卡)搭节点,部署包都备好了——然后平台出事,建工作区的操作连败约 8 次。
- 第二天,干等:确认平台在处理一起安全事件、构建全线暂停。除了等,无事可做,于是立下规矩:这事悬置,谁也不许反复催。
- 第三天,虚惊与解除:收到平台的安全事件邮件,先核查自己有没有中招(没有);当晚事故解除。
- 第四天,反转与落地:重新登录建好项目,却发现试用已过期、额度为零;三条路里选了最省钱的一条,最后全程手动把节点搭起来,拨测通过,二维码交付。
细节一:为什么选 Railway
当时手里有三个候选:我自己的主力小服务器(最稳,但不想把试验都压在一台机器上)、某云厂商的免费机(流程繁琐)、以及 Railway 的 30 天试用——带 5 美元额度、不绑卡。我的原则一贯是:能不绑卡就不绑卡,能不预付就不预付,Railway 正中下怀。计划很简单:助手把部署包在本地备好(Xray 核心、VLESS + WebSocket + TLS 的配置),我负责登录授权,部署完拨测连通,最后生成一张小火箭二维码,就算完工。预计半天。——现在回头看,这个"预计"非常幽默。
细节二:连败八次,和一封让人心里发毛的邮件
第一天,卡在第一步:创建工作区(Workspace)反复失败,前后约 8 次。页面只给一句含糊的提示,大意是"构建暂时暂停"。起初我以为是自己操作姿势不对,助手也以为是浏览器窗口的问题,来回折腾。后来才查清:就在那天,Railway 出了一起安全事件——有未授权的第三方可能访问了平台存放客户环境变量的存储,平台随即把全部构建和部署暂停,按付费等级从高到低分阶段恢复,免费和试用用户排在最后。
第三天还收到一封平台的安全事件通知邮件,建议用户轮换凭据。看着吓人,但核查完我反而踏实了:事发时我的账号里连工作区都还没建出来,没有任何项目、没有存过任何环境变量——无物可泄,也无密钥可换。这一课值得记:收到"安全事件"邮件先别慌,先盘点自己到底在上面放了什么,暴露面决定了事情的大小。
细节三:干等的日子,立了一条相处规矩
事故处理期间,能做的只有等。催平台没用,催助手更没用——它一催,我就烦。所以我明确交代:这件事就这么悬着,你别惦记着反复提醒我;等有变化再说话。同时只保留一个真正有用的动作:节点真上线之后,每天上午静默巡检一次,地址、配置、额度没变化就一个字别说,变了立刻把新二维码发我。事实证明,好的自动化不是话多,是没消息就是好消息。
细节四:落地日的三道坎
第四天早上,事故解除,我重新走了一遍 Google 登录授权(这类动作永远我亲手),工作区和空项目终于建好。但真正的坎都在后面:
坎一:试用已经过期了。项目建好才发现,所谓的 30 天试用是一个早已过期的限时试用,额度显示为 0。摆在面前三条路:升级付费版(每月 5 美元)、换回我自己的服务器、或者降级到免费计划。当时刚在另一家厂商身上学过 5 美元的教训,我的选择没有悬念:降级免费版——不绑卡、不付款,每月只有 1 美元额度,服务闲时休眠、配置减半、区域随机分配。备胎嘛,能跑就行。
坎二:我没有 GitHub 账号。平台主流的部署方式是连 GitHub 仓库,我没有,也不打算为此注册。改走 Docker 镜像路线:直接拉一个公开维护的 Xray 镜像当服务,变量和启动命令手动填。
坎三:自动化被风控拦下。助手代我在浏览器里操作的那一段,被浏览器平台的安全策略拦了下来。绕不过去,那就人肉上:照着助手给的清单,我自己在页面上一项项建服务、填变量、写启动命令——反而一次通过。有时候最笨的办法就是最快的办法。
细节五:拨测三件套,节点上线
部署完照例验线,我的验收标准和后来那台免费机器是同一套:
- 访问节点根地址,返回 404——不暴露任何特征;
- 普通 GET 访问 WebSocket 路径,返回 400——说明路径活着、但只认正经的协议升级;
- 带上升级头访问,返回 101——协议升级成功,通道真通。
三项全过,真实的小火箭链接和二维码当天发到我手机里。这个节点是 serverless(无服务器)形态:闲时睡觉,有连接进来就醒。区域是平台随机分的,不挑——备胎不讲究出身。
现状与账本
- 支出:0 元(试用过期后降级免费计划,全程没绑卡、没付款);
- 耗时:三天多,其中真正动手的时间加起来不到半天,其余全在等平台恢复;
- 收获一:一个至今在岗的备胎节点,每日静默巡检,配置变了自动换新码;
- 收获二:一条经验——平台级事故面前,个人操作再正确也没用,省下纠结,先核查暴露面,再耐心等;
- 收获三:一条相处规矩——悬而未决的事就让它安静地悬着,别让提醒变成骚扰。
下一篇预告:还是技术探索——给我的主力服务器做一次 IP 纯净度体检,看看一个用了两年的便宜 VPS,在各大风控眼里到底是个什么形象。