用阿里云 CDT 的免费流量开了一台香港节点

· 网安 · #服务器, #折腾, #Xray, #阿里云

今天在阿里云香港开了一台抢占式实例当代理节点,流量走 CDT 每月的免费额度,整月大概 5 块钱。

整个过程照着 NodeSeek 上 leitbogioro 的帖子做:【补档】使用阿里云CDT 享受每月200G/4元高速流量。这篇是他对一篇更早的教程的补档(原站证书过期打不开了),也修订了里面过时的内容。下面的步骤基本按原帖的顺序写,我自己改动的地方和踩的坑单独标出来。截图和细节以原帖为准。

文中不写服务器地址、域名和密钥。

先放一下现在手上在用的机器,阿里-香港是今天新加的这台:

机器 位置 配置 系统 价格 用来干什么
Sadidc-LA 洛杉矶 4 核 / 4 GB / 50 GB Ubuntu 22.04 ¥85/季 博客生产机,主力代理节点
GCP-free-OR 俄勒冈 2 共享核 / 1 GB / 30 GB Ubuntu 22.04 免费层 代理节点,兼做 Google 流量的出口
Azure-free-Tokyo 东京 2 核 / 1 GB / 64 GB Ubuntu 24.04 学生订阅,免费 代理节点
QQG-LA 洛杉矶 1 核 / 1 GB / 30 GB Ubuntu 22.04 $12.99/年 代理节点
Raksmart-SV 圣何塞 1 核 / 1 GB / 50 GB HDD Debian 13 $1.81/月 落地机(家宽 IP),也是代理节点
V6VPS-hk 香港 1 核 / 512 MB / 1 GB,NAT Alpine 3.24 $4.8/年 代理节点,只有 IPv6 能进
阿里-香港 香港 2 核 / 0.5 GB / 3 GB Alpine 3.24 约 ¥5/月(按量) 代理节点,走 CDT 免费流量
华为-北京 北京 2 核 / 2 GB / 40 GB Ubuntu 24.04 ¥36/年 国内机,现在只跑监控探针

八台都装了监控探针,面板长这样:

监控面板

思路

原帖的思路是:阿里云每个账号每月送一份 CDT(云数据传输)免费流量,原帖写的是内地 20 GB、非内地 200 GB。开一台最便宜的抢占式实例,再绑一个按 CDT 计费的 EIP,香港出口的流量就从这 200 GB 里扣,自己只付实例和系统盘的钱。

零、开通 CDT

在控制台搜「CDT」进到云数据传输,确认账号下的各项 CDT 子功能都已开通,没开的点「一键升级」。

一、开通 OSS,上传 Alpine 镜像

  1. 开通对象存储 OSS,建一个 Bucket,地域必须选中国香港。
  2. 从 Alpine 官网下载 alpine-virt 的 x86_64 iso,上传到这个 Bucket。
  3. 在文件详情里复制这个 iso 的链接,下一步导入镜像要用。

二、导入成自定义镜像

到 ECS 的「镜像」页面(地域选香港),点「导入镜像」:

等它导入完成。

三、创建抢占式实例

在 ECS 实例页面创建,付费类型选「抢占式实例」,地域选香港:

不分配自带公网 IP 的原因原帖也写了:抢占式实例停机后再启动,自动分配的公网 IP 会变,用 EIP 才能固定下来。

四、创建并绑定 EIP

  1. 到「弹性公网 IP」创建:按量付费,地域香港,线路类型选 BGP(多线),原帖特别提醒 BGP 多线精品不享受 CDT 免费额度;计费方式选「按 CDT 计费」;带宽峰值原帖拉到 200 Mbps,也就是这个规格的上限。
  2. 回到实例列表,在实例的操作菜单里选「绑定弹性公网 IP」,绑上刚建的 EIP。

原帖还提到,可以把 EIP 加入共享带宽,把出口带宽提高到 2 Gbps。不过国际站要先过 KYC 认证,我这次没做这一步。

另外,EIP 绑在实例上时不收保有费;机器不要了,记得把 EIP 一起删掉,闲置的 EIP 是要扣钱的。

五、安装系统

进实例的 VNC,用户名 root、密码为空登录,运行:

setup-alpine

大部分选项直接回车,需要改的有:

第一个坑:装盘那一步选错了

装到「Disk & Install」时,提示是:

No disks available. Try boot media /media/vda? (y/n) [n]

原帖这里写的是改成 y,我手快直接回车,用了默认的 n,结果装不下去。

原因是 Alpine 的镜像就写在 vda 上,系统也是从 vda 启动的。安装脚本会把正在用的启动盘排除在外,所以说找不到盘,再问你要不要装到启动盘本身。选 y 就是把镜像覆盖掉,装成正式系统。

选错了也不用从头再来。按 Ctrl+C 退出 setup-alpine,单独跑装盘这一步:

setup-disk -m sys

这次照原帖:启动盘那里选 y,盘选 vda,确认擦除再选 y(我用了 -m sys,就不会再问安装方式):

重新装盘

中间会出一行 opening /media/vda/apks/...: No such file or directory,因为启动盘已经卸载了,镜像里自带的软件包找不到了。前面已经配好阿里云的镜像源,软件包从网上下载,这行可以不管。

装完 reboot。原帖在开头加粗写了三遍:一定要先重启。重启前的系统还在内存里跑,那时候改 DNS、改源都会在重启后丢掉。

重启之后

按原帖的顺序:

  1. setup-dns 设置 DNS,然后 ping 一个域名,确认能解析;
  2. apk update,装上常用的 curl、vim;
  3. 在 /etc/apk/repositories 里把 community 源前面的 # 去掉,再 apk update 一次。原帖不推荐加 edge 源,容易出依赖问题。

然后回控制台,把 OSS 里的 iso 和导入的自定义镜像删掉,免得一直扣存储费。

接下来是我自己加的,跟其他几台机器保持一致:建一个普通用户 lwl 给免密 sudo,SSH 只允许钥匙登录,开 BBR,再装代理(VLESS + REALITY)和监控探针。这些跟原帖无关,就不展开了。

六、保活

抢占式实例在阿里云资源紧张时会被回收。选了节省停机,实例只是关机,不会被删,但它不会自己开回来。另外 200 GB 用完以后开始按量收钱,也得有人盯着。

原帖的做法是:

  1. 在 RAM 访问控制里建一个子用户,生成 AccessKey,授权 AliyunECSFullAccess 和 AliyunCDTFullAccess;
  2. 用阿里云的 Python SDK 写一个脚本:查本月 CDT 流量,低于 180 GB 就确保实例在运行,超过就关机;
  3. 用 crontab 每分钟跑一次。原帖强调要放在另一台机器上跑,放在这台自己身上没用,它被关机了就没法把自己开起来。

我按同样的逻辑做了两处改动:

另外,Worker 只统计非内地的流量,内地机器用的那 20 GB 不算进 180 GB 里。上线前先让它跑了一阵只读模式,只查不动;开关机权限用 API 的 DryRun 参数验证过,两个接口都返回 DryRunOperation,确认没问题后才切到正式模式。

第二个坑:学生券抵不了,欠 0.01 元被停机

账户里没有现金,我以为会从一张 300 元的学生代金券里扣,券的说明里写着适用「按量付费账单」。

开机三个小时以后机器断了。实例是停止状态,锁定原因是 financial。头三个小时产生的 0.01 元没有走券,直接记成欠费,余额变成 -0.01,实例就被锁了。

充了 32 块钱,锁马上解了,Worker 一分钟内把机器重新开了起来。所以这台账户里要放点现金。

第三个坑:开机后服务没起来

机器开回来以后能 SSH 上去,但代理、Nginx 和探针都没启动。rc-update show 里能看到它们,rc-status default 里却没有。

查下来是时钟的问题。装系统那会儿时钟快了几个小时,留下一批修改时间在「未来」的文件,其中就有 OpenRC 的依赖缓存。OpenRC 一直认为缓存比后来加的服务还新,从没重建过,开机时也就不知道还要启动这几个服务。装完服务后一直没重启过,所以之前没发现。

把这些文件的修改时间改回现在,再跑一次 rc-update -u 重建缓存就好了。查「未来」文件可以用:

touch /tmp/now; find / -xdev -newer /tmp/now ! -path "/proc/*" ! -path "/sys/*" ! -path "/tmp/*"; rm /tmp/now

改完重启测了一次,三个服务开机后十秒左右都起来了。

花了多少

今天的账单明细:实例跑了三个小时,原价 0.086 元,抢占式优惠后 0.0103 元;系统盘 0.0062 元;EIP 保有费、CDT 流量、镜像费都是 0。

按这个算,实例每小时约 0.0046 元,盘约 0.0028 元,一个月 720 小时,加起来 5 块钱出头,跟原帖说的「4 元」差不多。抢占式的价格会浮动,这只是个估算。

从探针看,这台到国内三网的延迟是电信 16 ms、联通 7 ms、移动 21 ms。最后提醒一下:香港的节点用不了 Claude、ChatGPT 和 Gemini。

← 全部文章