Oracle Cloud Always Free ARM 实例全自动抢购教程(从零开始)
适用场景:甲骨文云 Always Free 额度中的 ARM 实例(VM.Standard.A1.Flex)经常提示 “Out of host capacity”,手动创建很难成功。本教程教你用官方 OCI CLI + 开源脚本实现全自动挂机抢购,断 SSH 后也能持续运行。
当前免费额度提醒(2026 年 6 月后):
Always Free 账户总计最多 2 OCPU + 12 GB 内存。建议直接按此规格申请。
推荐脚本:alexpua/oci-arm-catcher(轻量、基于官方 CLI、逻辑清晰)。
一、准备工作
- 已有甲骨文云账号并开通 Always Free。
- 已有一台可 SSH 登录的服务器(推荐用现有的 Always Free AMD 小机挂脚本)。
- 准备好 SSH 密钥对(没有的话后面会教生成)。
二、获取必要的身份信息(控制台操作)
登录 Oracle Cloud 控制台。
1. 获取 Tenancy OCID(租户 ID)
点击右上角头像 → Tenancy: 你的租户名
在 Tenancy Information 区域找到 OCID,点击 Copy
格式类似:ocid1.tenancy.oc1..aaaaaaaaxxxxxxxxxxxxxxxxxxxxxxxx
2. 获取 User OCID(用户 ID)
点击右上角头像 → User settings
找到 OCID,点击 Copy
格式类似:ocid1.user.oc1..aaaaaaaaxxxxxxxxxxxxxxxxxxxxxxxx
3. 生成并添加 API Key
仍在 User settings 页面
左侧点击 API Keys
点击 Add API Key
选择 Generate API key pair
点击 Download private key(请妥善保存 .pem 文件)
点击 Add
记录生成的 Fingerprint(指纹)
4. 确认 Region
右上角当前区域代码,例如:ap-tokyo-1、ap-singapore-1 等。
三、在服务器上安装并配置 OCI CLI
SSH 登录服务器后执行:
# 更新系统 |
配置 OCI CLI
oci setup config |
按提示填写:
Config 位置:直接回车(默认 ~/.oci/config)
User OCID:粘贴刚才复制的
Tenancy OCID:粘贴刚才复制的
Region:输入你的区域代码(如 ap-tokyo-1)
是否生成新密钥:如果已下载私钥选 n,并输入私钥路径;否则选 y
修复私钥权限(重要)
# 替换为你的实际私钥文件名 |
验证配置成功
oci iam region list |
能正常输出区域列表即表示配置成功。
四、下载抢购脚本
cd ~ |
五、获取剩余配置信息
1. 生成 SSH 密钥(如果没有)
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519 |
2. 查询 Availability Domain
oci iam availability-domain list --query "data[].name" --output table |
记录输出的 AD 名称(例如 XXXX:AP-TOKYO-1-AD-1)。
3. 查询 Subnet OCID
oci network subnet list \ |
选择 prohibit-public-ip-on-vnic = false 的公有子网。
4. 查询 IMAGE_ID(推荐 Ubuntu ARM)
oci compute image list \ |
推荐选择最新的完整版 Ubuntu aarch64 镜像(非 Minimal)。
也可查询 Oracle Linux:
oci compute image list \ |
六、配置 .env 文件
cp .env.example .env |
将以下内容填入(替换为你自己的实际值):
COMPARTMENT_ID="ocid1.tenancy.oc1..aaaaaaaaxxxxxxxxxxxxxxxxxxxxxxxx" |
保存退出(Ctrl+O → 回车 → Ctrl+X)。
七、后台启动抢购(断 SSH 后继续运行)
推荐使用 nohup:
cd ~/oci-arm-catcher |
确认进程正在运行:
ps aux | grep oci-arm-catcher |
八、日常监控与管理
实时查看日志:
tail -f ~/oci-arm-catcher/catcher.log |
查看最新日志:
tail -n 50 ~/oci-arm-catcher/catcher.log |
停止脚本:
pkill -f oci-arm-catcher.sh |
正常运行时输出示例:
[日期时间] Attempt #X |
成功后会自动停止,日志中会出现:
SUCCESS! Instance created: ocid1.instance.oc1.xxxxxx |
九、抢到后操作
- 登录控制台 → Compute → Instances,确认实例已创建。
- 使用对应私钥登录:(Ubuntu 默认用户为
ssh -i ~/.ssh/id_ed25519 ubuntu@公网IP
ubuntu,Oracle Linux 通常为opc)
重要提示
重试间隔建议保持 300 秒(5 分钟),避免触发限流。
热门区域(如东京、新加坡)可能需要挂机数小时到数天。
成功后请及时停止脚本,避免重复创建。
本教程仅调用官方 API,符合正常使用规范,请勿恶意高频请求。
祝大家早日抢到!