Appearance
如何利用海外免费服务与存储搭建永久性音乐网站
主角只有两位:甲骨文云永久免费服务器 + Cloudflare R2 免费对象存储
前言
2024 年以来,国内经济持续承压,个人站长的基础设施成本不断攀升。一台入门级云服务器年费动辄上千,配上带宽和存储一年轻松破三五千元。与此同时,ICP 备案、公安联网备案、内容审查层层加码,音乐类网站更是重灾区——版权合规、视听许可证、内容审核,任何一环出问题都可能让网站灰飞烟灭。
但海外两大厂商正悄然为个人站长提供一套完全免费、长期稳定、高性能的组合方案:甲骨文的 ARM 服务器 + Cloudflare 的 R2 对象存储。两者搭配,足以撑起一个月活数千的音乐网站,而年成本为 零。
一、甲骨文云永久免费服务器
免费资源到底有多少
甲骨文云(Oracle Cloud Infrastructure)的 Always Free 计划是目前所有主流云厂商中最慷慨的,没有之一:
| 资源 | 免费配额 | 说明 |
|---|---|---|
| ARM Ampere A1 实例 | 4 核 OCPU + 24GB 内存 | 可拆为 1 台 4C24G,或 4 台 1C6G |
| AMD 实例 | 2 台 1/8 OCPU + 1GB 内存 | 性能较弱,适合做冗余/测试 |
| Block Volume 块存储 | 200GB(合计) | 含系统盘,ARM 模式默认约 50GB 系统盘 |
| 对象存储 | 10GB 标准存储 | 不如 R2 划算,但可做冷备 |
| 出站流量 | 每月 10TB(!) | 极其慷慨,远超个人网站需求 |
| 公共 IPv4 地址 | 1 个预留 IP(免费) | 临时 IP 同样免费 |
| 负载均衡器 | 1 个 10Mbps | 小站用不上,但确实免费 |
划重点:4 核 ARM + 24GB 内存 + 200GB 硬盘 + 10TB 月流量,这在任何付费 VPS 市场都至少值 $40-60/月。甲骨文直接永久免费。
注册注意事项
难度不在技术,在风控。 甲骨文的风控系统出了名的严格,以下是实测可提高通过率的要点:
网络环境:
- 使用干净的家用宽带 IP(非机房/梯子/VPN IP)
- IP 属地与信用卡账单地址一致或接近
- 浏览器无痕模式,关闭所有插件
信用卡:
- 必须支持外币的 Visa/Mastercard(银联单币卡不行)
- 卡内余额建议 >$10(预授权验证会扣 1 美元并立即退回)
- 虚拟信用卡(如一些美国虚拟卡)大概率被拒,实体卡为佳
信息填写:
- 姓名与信用卡持卡人一致
- 地址用英文如实填写(用翻译软件逐字翻即可,不必编造)
- 手机号 +86 即可,接收验证码
区域选择:
- 推荐首选 首尔(Seoul) 或 新加坡(Singapore):国内访问延迟最低(东北 40-80ms,南方 60-120ms)
- 次选东京(日本)或孟买(印度西部用户)
- 欧美区(法兰克福、凤凰城)仅适合面向海外用户的站点
如果第一次被拒,换一张不同银行的卡,隔两周再用同一 IP 重试。千万别短时间频繁尝试——甲骨文会关联 IP/卡/设备指纹,连续被拒后可能直接拉黑。有些用户注册 10 次才成功,请务必保持耐心。
ARM 实例开通
免费 AMD 实例在注册后自动可用;ARM 实例需要在控制台手动创建。路径:
Compute → Instances → Create Instance
Image: Ubuntu 22.04 或 24.04 LTS (Canonical 官方)
Shape: Ampere ARM-based, OCPU=4, Memory=24GB
Boot Volume: 勾选 "Specify a custom boot volume size" 填入 100GB
(总配额 200GB,系统盘 100GB 剩余 100GB 给数据盘)关键设置:
- SSH 密钥:务必上传公钥,甲骨文默认禁用密码登录。Linux/Mac 用
ssh-keygen,Windows 用ssh-keygen或 PuTTYgen。 - 安全列表(防火墙):实例创建后在「子网 → 安全列表」中添加入站规则,至少开放 22(SSH)、80(HTTP)、443(HTTPS)。
- 系统内部防火墙:Ubuntu 默认 ufw 可能未启用,甲骨文的 iptables 也有自己的规则,建议:
bash
# 甲骨文的 iptables 规则容易把外来流量全拦了,直接清掉用 ufw
sudo iptables -F
sudo apt install ufw -y
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable- SWAP:ARM 4C24G 内存充裕,个人网站不设 SWAP 也行。若需设,4GB 足够:
bash
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab二、Cloudflare R2 对象存储
为什么选 R2
R2 有两项碾压性的免费策略:
- 10GB 永久免费存储
- 零出站流量费——不限量、不计费
这意味着存放 2000+ 首 MP3、每月被下载 TB 级别,流量费都是零。将 R2 与甲骨文 ARM 实例配合使用:服务器负责运行业务逻辑(用户系统、评论、搜索、转码),R2 负责文件存储与分发,各司其职。
R2 计费明细
| 项目 | 免费额度 | 超出单价 |
|---|---|---|
| 存储 | 10 GB | $0.015 / GB / 月 |
| A 类操作(上传/修改/列出) | 100 万次/月 | $4.50 / 百万次 |
| B 类操作(下载/读取) | 1000 万次/月 | $0.36 / 百万次 |
| 出站流量 | 无限免费 | 无 |
对于个人音乐网站:10GB 存储约可放 2000 首 320kbps MP3 或 600 首 FLAC 无损。月下载量即便破 TB,流量费也永远是零。A 类操作(上传)通常远低于 100 万次(频次低);B 类操作(下载读取)1000 万次也绰绰有余。
月费用简单测算:
- 存储 10GB 以内:¥0
- 每月新增 500 首歌上传(500 次 A 类):¥0(远低于 100 万次)
- 每月下载 10 万次(B 类):¥0(远低于 1000 万次)
- 每月流量 2TB:¥0
结论:只要曲库控制在 10GB 以内(约 2000 首 MP3),R2 完全免费。即使超出,月费也仅在 $1-5 量级,远低于任何付费存储方案。
开通与配置
- 注册 Cloudflare 账号,添加你的域名(如果没有域名,可在 eu.org 等免费域名处申请一个,托管到 Cloudflare DNS)。
- 左侧菜单 → R2 → Create Bucket,名称如
music-files。 - Bucket 设置 → Settings → 绑定自定义域名(如
dl.yourdomain.com),Cloudflare 自动签发 SSL 证书。 - 生成 API Token:R2 → Manage R2 API Tokens → Create API Token,权限选「Object Read & Write」,记录下 Access Key ID 和 Secret Access Key。
上传文件
推荐在甲骨文的 ARM 服务器上用 rclone 管理 R2 文件:
bash
# 在甲骨文 ARM 上安装 rclone
curl https://rclone.org/install.sh | sudo bash
# 配置 R2
rclone config
# 选择 n (new remote)
# 输入名称: r2
# 选择 s3
# provider 选 Cloudflare R2
# 填入 Access Key ID 和 Secret Access Key
# endpoint 填入: https://<account_id>.rclone.cloudflarestorage.com
# 其余全部回车默认
# 批量上传音乐到 R2
rclone copy /home/music/ r2:music-files/ --progress --transfers 8
# 从 R2 同步到本地
rclone sync r2:music-files/ /home/music/ --progress公开访问与防盗链
在 R2 Bucket 设置中,将自定义域名的「Public Access」开启(允许在浏览器直接访问文件)。同时建议配置以下安全规则:
Cloudflare WAF → Custom Rules:
- 限制 Referer,只允许自己的域名和空白 Referer(浏览器直接下载)
- IP 访问频率限制:单 IP 每分钟最多 20 次请求(防止恶意刷文件)
CORS 设置(在 R2 Bucket Settings → CORS 配置),允许网页端播放器跨域读取音频:
json
[
{
"AllowedOrigins": ["https://www.yourdomain.com"],
"AllowedMethods": ["GET", "HEAD"],
"AllowedHeaders": ["*"],
"MaxAgeSeconds": 3600
}
]三、甲骨文 + R2 搭建音乐网站实战
架构总览
用户浏览器
│
▼
Cloudflare DNS(域名解析 + CDN + DDoS 防护)
│
├─── 静态资源(封面图、CSS、JS)─── Cloudflare CDN 缓存
│
├─── 音频文件 ─── Cloudflare R2(直接访问 / 自定义域名)
│
└─── 动态请求 ─── 甲骨文 ARM 服务器(Nginx + Node.js/PHP)
│
├── SQLite / PostgreSQL(歌曲元信息、用户数据)
└── 后台任务(音频分析、转码、备份)在甲骨文 ARM 上部署 Web 服务
环境安装(以 Node.js 为例,适合接 Fastify/Express/Koa 后端):
bash
# Node.js 22 LTS (via NodeSource)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs nginx certbot python3-certbot-nginx
# 或选择 PHP(适合 WordPress/自研系统)
# sudo apt install -y php8.3-fpm php8.3-mbstring php8.3-xml php8.3-pgsqlNginx 反向代理配置:
nginx
server {
listen 80;
server_name www.yourdomain.com;
# 静态资源直接由 Nginx 返回
root /var/www/html/public;
index index.html;
# API 请求转发到 Node.js 后端
location /api/ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 前端页面(SPA 路由回退)
location / {
try_files $uri $uri/ /index.html;
}
}SSL 证书(Let's Encrypt 免费):
bash
sudo certbot --nginx -d www.yourdomain.com -d yourdomain.com
# 自动续期
sudo certbot renew --dry-run数据库选择
甲骨文 ARM 的 24GB 内存完全跑得动 PostgreSQL,但对于个人站长,SQLite 往往更友好:
- 零配置,一个文件搞定
- 备份就是
cp music.db backup/ - 4C24G 的 ARM 上 SQLite 读写能力完全够日活几千的网站
- 迁移时拷贝一个文件即可,无需
pg_dump
如果后续需要高并发写入(评论、收藏数万条),再迁移到 PostgreSQL。起步用 SQLite,降低运维复杂度。
音频处理:利用 ARM 的算力
甲骨文 ARM 的 4 核 CPU 足以做不少音频处理工作:
bash
# 安装 FFmpeg
sudo apt install -y ffmpeg
# 批量转码:FLAC → MP3 320kbps(Nginx 静态缓存 + R2 分发双份)
ffmpeg -i input.flac -codec:a libmp3lame -b:a 320k output.mp3
# 生成 30 秒试听片段
ffmpeg -i input.mp3 -t 30 -codec copy preview.mp3可以写一个定时脚本,监控服务器本地目录的新增文件,自动转码后同步到 R2:
bash
#!/bin/bash
WATCH_DIR="/home/music/new"
R2_BUCKET="r2:music-files"
inotifywait -m $WATCH_DIR -e create -e moved_to |
while read path action file; do
# 转码
ffmpeg -i "$WATCH_DIR/$file" -codec:a libmp3lame -b:a 320k "/home/music/mp3/${file%.*}.mp3"
# 上传 R2
rclone copy "/home/music/mp3/${file%.*}.mp3" "$R2_BUCKET/mp3/" --progress
echo "[$(date)] Processed: $file"
done四、稳定性与监控
甲骨文「封号」传闻的真相
甲骨文确实有回收闲置实例的机制。官方政策:如果一个 AMD 实例 在 7 天内 CPU 利用率、内存利用率、网络 IO 均低于阈值(约 10%),实例将被标记为 idle 并可能被回收。ARM 实例暂无此限制,但仍建议让服务器有点「存在感」。
保活建议:
- 正常运行 Web 服务(Nginx + Node.js),只要有用户访问,资源就会有消耗,自然不会触发闲置判定
- ARM 4C24G 是高价值配额,甲骨文对它比 AMD 宽松得多
- 留一个备用邮箱,万一收到甲骨文的回收通知(通常会给 7 天缓冲期),及时登录处理
监控方案
在甲骨文服务器上部署 Uptime Kuma(开源免费的监控面板):
bash
# Docker 方式
docker run -d --name uptime-kuma \
-p 3001:3001 \
-v uptime-kuma:/app/data \
--restart unless-stopped \
louislam/uptime-kuma:1配置监控项:
- 自家网站 HTTP(s) 可用性(每 60 秒检测)
- R2 自定义域名的 HTTPS 可达性
- SSL 证书到期提醒
- 服务器磁盘使用率(通过 Webhook)
同时开启 Cloudflare Analytics,免费查看 R2 的流量和请求量变化趋势。
备份策略
bash
# 定时备份脚本(crontab)
# 每天凌晨 4 点:SQLite 数据库备份到 R2
0 4 * * * rclone copy /home/app/data/music.db r2:backup/$(date +\%Y\%m\%d)/
# 每周日:全量本地文件同步到 R2 备份桶
0 5 * * 0 rclone sync /home/music/ r2:backup-full/ --progress
# 每月 1 号:保留最近 30 天备份,删除更早的
0 6 1 * * rclone delete --min-age 30d r2:backup/五、成本总结
| 资源 | 服务商 | 费用 |
|---|---|---|
| 4 核 ARM + 24GB 内存 + 100GB 硬盘 | 甲骨文云 Always Free | ¥0 / 月 |
| 出站流量(10TB/月) | 甲骨文云 | ¥0 / 月 |
| 对象存储 10GB | Cloudflare R2 Free | ¥0 / 月 |
| 出站流量(无限) | Cloudflare R2 | ¥0 / 月 |
| CDN + DDoS 防护 | Cloudflare Free Plan | ¥0 / 月 |
| SSL 证书 | Let's Encrypt | ¥0 |
| 域名 | eu.org / pp.ua 等免费域 | ¥0 |
| .com 域名(可选) | 约 ¥60/年 | ~¥5 / 月 |
| 合计 | ¥0 / 月 |
不花一分钱,你拥有了一台对标 VPS 市场 ¥300+/月 配置的服务器、无限流量的全球 CDN 文件分发能力,以及完整的企业级 DDoS 防护。
六、局限与翻车预警
甲骨文的潜在风险
- 注册门槛高:风控严格,不是每个人都能一次注册成功。被拒后需要等待并更换信用卡重试。
- 资源紧张:热门区域(首尔、东京)的 ARM 实例经常缺货。需要多刷新,或者用脚本自动抢实例(GitHub 上有
oci-freespace等抢机脚本)。 - 小概率封号:虽然个人站长正常使用极少被封,但甲骨文理论上保留随时调整免费政策的权利。不要把鸡蛋放在一个篮子里——数据和代码务必多地备份。
- 国内访问延迟:首尔延迟 40-80ms 对 Web 浏览可接受,但对直播/实时交互就不够了。音乐下载场景完全够用。
R2 的适用边界
- 免费存储 10GB:曲库超过 2000 首 MP3 后需要付费。超出部分 $0.015/GB/月,即使 100GB 也只要 $1.5/月。
- A 类操作(上传/修改)有成本:如果网站允许用户上传,大量用户的频繁上传可能触发收费。100 万次/月免费额度对用户上传场景略显紧张,建议限制每人每日上传数量。
没有绝对永久
「永久性」是相对概念。甲骨文可能某天缩减免费计划、Cloudflare 可能调整 R2 定价、域名可能过期——这些变数都存在。唯一真正的「永久」是本地硬盘里始终保留一份完整数据,随时可以迁移到新平台。
七、适合什么人
- 有一定 Linux 基础、会 SSH 登录、能看懂英文文档的站长
- 月预算严格为零但也想正经做站的人
- 想绕过国内备案、把内容掌握在自己手里的站长
- 面向国内用户(首尔/新加坡延迟低)或以亚太用户为主的音乐站点
不适合:
- 完全不懂命令行的纯小白(可以先在本地虚拟机练好 Linux 基础再来)
- 需要 99.9% SLA 保障的商业站点(免费方案天然没有 SLA)
- 面向对延迟极其敏感的国内用户群(不如直接买国内备案服务器)
结语
甲骨文云 ARM 服务器 + Cloudflare R2 这套组合,是目前个人站长能拿到的天花板级免费方案。4 核 24G 内存跑 Web 应用绰绰有余,R2 零流量费让音乐下载站没有了「越多人用越烧钱」的后顾之忧。
在当前国内经济下行的环境下,这套方案让零预算的独立站长也能拥有专业级的部署条件。唯一需要付出的,是学习和折腾的时间——但这不正是独立站长的乐趣所在吗?
希望这篇文章能帮你把零成本音乐站的蓝图变成现实。
本文最后更新于 2026 年 6 月。甲骨文和 Cloudflare 的免费政策可能随时调整,请以官网最新信息为准。