搜索 K
Appearance
大部分用户对机场风险的想象力,停在"老板卷钱跑了"这一层。但真实的行业事故里,跑路只占三分之一。剩下三分之二,是老板还在、域名还活着、官网公告还在更新,而你的账号、余额、订阅链接、甚至当初绑定的邮箱密码,已经在某个 Telegram 频道里被明码标价出售了。
核心判断:
curl 就能白嫖你的流量。这是机场安全模型里最脆弱的一环。要理解这类事故,先得知道一家典型机场的技术栈长什么样。
前端层:95% 使用 V2board / Xboard / SSPanel-Uim 这三套开源面板之一,跑在 PHP + Nginx 上。 数据层:MySQL / MariaDB 存用户表、订单表、订阅 token、节点配置;Redis 存会话、限速计数、在线 IP。 节点层:Xray / Sing-box / Hysteria2 内核,跑在 VPS 或专线落地机上,通过面板 API 拉取用户配置。 支付层:多为第三方易支付(EpPay 类),少数接 Stripe / 加密货币。
这套架构的脆弱点极其集中:
.sql 文件,躺在同一个服务器的 /www/backup/ 目录里,Web 可直接访问。按破坏形态,我们把灾难分成四类,构成一个四象限:
| 象限 | 资金是否损失 | 数据是否损失 | 典型形态 |
|---|---|---|---|
| A 象限 | 是 | 是 | 经典跑路,卷款消失 |
| B 象限 | 否 | 是 | 拖库 / 删库 / 内讧,老板还在,数据没了 |
| C 象限 | 否 | 否 | 线路被打、入口 IP 被封,可恢复 |
| D 象限 | 是 | 否 | 强制迁移、清退老用户、变相涨价 |
本文聚焦 B 象限——这也是最容易被误判为 C 象限的一类,因为官方公告永远写"线路调整中"。
不要把攻击者想象成电影里的黑客。真实的拖库,80% 靠的是"捡漏"。
链路 1:面板未授权备份接口 2023 年前后,部分版本的 V2board 存在备份相关接口鉴权缺陷,攻击者无需登录即可拉取包含全量用户表的文件。防护方式很简单——升级到最新版本并给 /backup 路径加 IP 白名单,但大量中小机场面板版本停留在两年前。
链路 2:Redis 未授权访问redis-cli -h <target> -p 6379 info 若直接返回数据,说明 6379 端口裸奔在公网。攻击者可以写 crontab 反弹 shell,也可以直接读取缓存在 Redis 里的订阅会话。
链路 3:.git 目录泄露 运维用 git clone 部署到 Web 根目录,忘记删除 .git。curl http://target/.git/config 一击即中,接着就能 dump 出 .env,里面有数据库密码、支付密钥、管理员初始口令。
链路 4:SSH 弱口令爆破 节点机的 root 密码是 Admin@123 或 qwe123456,这类字典在僵尸网络的扫描库里排前 100 位。
链路 5:内部人员带走 "下游机场"或"分站代理"从一开始就是拿着上游数据另起炉灶的。用户表、订阅 token 一并带走,老用户在自己的服务里"无缝迁移"到了新站——你甚至不会收到任何通知。
链路 6:供应链投毒 面板、主题、支付插件从第三方论坛下载,被植入后门。攻击者不急于一次偷完,而是长期静默采集,等到合适时机打包出售。
拖库之后会发生什么?
关键判定:如果你发现自己改过密码后,旧订阅链接依然能用,大概率说明泄漏的不是密码而是 token,或者面板的订阅校验逻辑本身就有问题。
删库类事故,几乎全部源于人的问题,而非技术问题。
典型剧本一:合伙人分家 A 负责技术,B 负责推广与收款,五五分成。某月流水翻倍后 B 悄悄把收款账户换成自己的,A 发现后直接在服务器上执行 DROP DATABASE v2board;。这批老用户不会收到任何公告,只会看到面板 502。
典型剧本二:运维报复 技术负责人被辞退,但 authorized_keys 里的公钥没清理,数据库的物理备份文件也没删。离职后第 3 天,主库被加密,勒索信贴在 Telegram 群里。
典型剧本三:分家式"无缝迁移" 两位合伙人和平分手,各自带走一份数据。用户在两个网站上都还能登录,余额却对不上,工单互相踢皮球。这是最难维权的一类,因为没有"跑路"这个明确被告。
删库事故的标准舆情时间线(从我这几年跟踪的案例里总结):
| 时间 | 官方口径 | 用户真实感知 |
|---|---|---|
| Day 0 | 无公告,或"升级维护中" | 节点全部 timeout |
| Day 1 | "遭遇恶意攻击,正在取证" | 官网能开,面板登录失败 |
| Day 3 | "部分地区线路恢复" | 恢复的是新购用户,老用户仍无 |
| Day 7 | "部分历史数据丢失,正在核验" | 余额清零、订阅丢失 |
| Day 14 | "补偿方案:老用户 5 折续费" | 无法登录,谈何续费 |
| Day 21+ | 群禁言、公告停更 | 确定死亡 |
识别信号:当官方开始强调"新用户不受影响"时,基本可以确认是数据库级别的灾难,且他们放弃老用户了。
把五类灾难放在同一张表里,横向对比破坏半径:
| 指标维度 | 经典跑路 | 黑客拖库 | 合伙人删库 | 上游断供 | 线路被打 |
|---|---|---|---|---|---|
| 资金追回概率 | < 5% | 0(不涉及) | < 10% | 视合约 | 高 |
| 订阅 Token 是否泄漏 | 否 | 是 | 视情况 | 否 | 否 |
| 邮箱/密码哈希是否泄漏 | 否 | 是 | 常是 | 否 | 否 |
| 节点恢复时间 | 永久 | 1–7 天 | 3–30 天 | 1–3 天 | 数小时 |
| 老用户数据保留率 | 0% | 高(未删库时) | 常见 0–30% | 100% | 100% |
| 是否需改同邮箱密码 | 建议 | 强制 | 强制 | 不需要 | 不需要 |
| 平均舆情周期 | 3 天 | 10 天 | 30 天+ | 1 天 | 半天 |
| 二次收割风险 | 低 | 高(钓鱼) | 高(伪补偿) | 低 | 低 |
读表要点:拖库是"数据全在但全漏",删库是"数据全无",跑路是"钱和数据一起没"。三者的应急动作完全不同——拖库的第一动作是改密码和换订阅,删库的第一动作是保存证据,跑路的第一动作是止损离场。
轻度用户(月付、单机场) 最优先的动作是确认订阅链接是否已泄漏。登录面板 → 重置订阅 Token → 在客户端里删掉旧配置重新导入。不要图省事保留旧链接,它可能已经在某个共享池里被跑了三个月。
重度用户(年付、多机场冗余) 立刻做资产盘点:把每个机场的到期日、剩余流量、余额截图存档。同时把主力机场和备份机场的入口域名做完全隔离——不要用同一个邮箱注册、不要在同一个浏览器 profile 里登录,避免一次撞库全灭。
技术自建派 如果你自己搭了 Xray / Sing-box,事故影响相对小,但仍要注意:订阅转换服务若由第三方提供,你的节点信息同样在对方数据库里。
客户端的正确配置姿势:
profile 的自动更新时,把 interval 设为 24 小时而非 1 小时,降低对面板 API 的暴露频率;启用 secret 本地 API 密码,避免本机其它程序读取。remote outbound 时务必配置 update_interval 与 health_check,避免订阅失效后客户端静默断流。通用硬性规则:给机场账号单独用一个邮箱别名(如 Gmail 的 + 后缀),绝不与主邮箱、支付平台、社交账号共用密码。
当你怀疑"这不是线路问题,是面板出事了",请依次执行以下命令。以下命令在 macOS / Linux / WSL 下通用。
第一步:判断是网络断还是服务端断
# 检查域名解析是否正常
dig +short your-airport.com
# 检查 TLS 握手是否完成(能握手说明 Web 服务活着)
openssl s_client -connect your-airport.com:443 -servername your-airport.com < /dev/null | head -20
# 直接看 HTTP 响应码
curl -o /dev/null -s -w "%{http_code} %{time_total}s\n" https://your-airport.com/第二步:判断节点是否真死
# 用 tcping 测节点端口(TCP 层,绕开 ICMP 封锁)
tcping -p 443 node1.your-airport.com
# 用 mtr 看链路在哪一跳断了
mtr --tcp --port 443 -c 50 node1.your-airport.com
# 验证订阅链接是否仍有效
curl -A "clash-verge/v1.5.0" -s "https://your-airport.com/api/v1/client/subscribe?token=xxxx" | head -c 200第三步:判定表
| 现象组合 | 判定结论 | 处置建议 |
|---|---|---|
| 官网 502 + 节点全 timeout | 面板或数据库崩溃 | 按删库处理,立即取证 |
| 官网 200 + 节点 timeout + 订阅返回空 | 节点配置被清空 | 高度疑似删库 |
| 官网 200 + 订阅能拉但连不上 | 线路/入口被封 | 等待或换入口,非数据事故 |
| 订阅 URL 能访问但 token 被改 | Token 遭篡改 | 立即重置并检查登录日志 |
| 老密码失效 + 新密码可登 | 数据库被替换/回滚 | 保留证据,疑似分家 |
| mtr 在骨干跳高丢包 | 上游线路拥塞 | 换节点,非事故 |
关键提示:curl 订阅接口时加上真实客户端的 User-Agent,否则很多面板会返回伪装页面,干扰判断。
| 话术 / 现象 | 真实含义 | 风险等级 |
|---|---|---|
| "遭遇 DDoS 攻击,正在清洗" | 常掩盖数据库事故 | 高 |
| "数据已恢复 99%" | 剩下 1% 大概率是付费老用户 | 极高 |
| "老用户 5 折续费即可恢复权益" | 二次收割,别再付钱 | 极高 |
| "我们已更换全新面板" | 旧数据很可能已放弃 | 高 |
| "订阅链接已自动重置,请重新导入" | 默认承认 token 曾泄漏 | 中高 |
| "新用户不受影响,欢迎体验" | 老用户已被战略性放弃 | 极高 |
| "服务器机房失火/被查水表" | 万能借口,无法验证 | 中 |
| 官网带 ICP 备案号 | 与稳定性无关,别当安全感 | 低 |
三条铁律:
Q1:我只是月付用户,被拖库了有影响吗? 有。你的邮箱和密码哈希一旦流入撞库库,影响的是你在其它平台的账号。机场本身损失十几块,主邮箱被撞开的损失可能上万。
Q2:机场说"密码已加盐加密,无法破解",可信吗? 取决于面板。V2board 走 Laravel 的 bcrypt/argon2,确实难破;但 SSPanel 早期版本有大量 MD5 无盐记录,彩虹表几分钟出结果。你无法确认对方用的是哪套,所以一律按明文处理。
Q3:订阅链接泄漏了,别人会用我的流量吗? 会,而且很隐蔽。攻击者会把你的 token 导入到自动化脚本里,在非高峰时段使用。表现为你的流量消耗速度莫名加快,而自己并没有多刷视频。
Q4:合伙人内讧导致我余额清零,能维权吗? 现实很残酷:机场业务本身处于灰色地带,绝大多数支付走的是第三方易支付或加密货币,没有可执行的合同关系。能做的是保留订单截图、支付流水、面板余额截图,在社群公开,压缩对方的信誉空间。
Q5:怎么提前判断一家机场的运维水平? 看三件事:① 官网是否有明确的隐私政策与数据保留说明;② 是否支持两步验证(2FA);③ 客服是否敢正面回答"你们的数据多久备份一次、备份存在哪里"。第三条能问出答案的,运维水平通常在线。
Q6:如果一定要用年付,怎么分散风险? 把预算拆成 2–3 家,绝不在同一家压超过 40%。同时确保这几家使用不同的邮箱、不同的支付方式,避免一次事故连锁失效。
Q7:事故后多久可以判断"这家彻底没救了"? 以 Day 0 为起点,21 天。超过三周仍未恢复老用户数据、且公告开始含糊其辞的,基本可以判定为死亡,不要继续等待。
结语
跑路是明牌,拖库和删库是暗箭。前者让你损失一笔订阅费,后者可能让你损失一个邮箱背后所有的数字身份。在这个行业里,"没出过事"从来不是安全证明,只是还没轮到你。把密码隔离做好,把应急预案写下来,把鸡蛋分开放——这三件事做完,你对这类灾难的免疫力就已经超过 95% 的用户了。
本文由 AirPick 实验室基于 2023–2026 年公开事故案例、社区舆情数据与一线运维访谈整理,数据截至 2026 年。
#机场删库 #数据库泄露 #合伙人内讧 #运维事故 #订阅Token安全 #防跑路 #AirPick指南