Skip to content

如何利用海外免费服务与存储搭建永久性音乐网站

主角只有两位:甲骨文云永久免费服务器 + 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 给数据盘)

关键设置

  1. SSH 密钥:务必上传公钥,甲骨文默认禁用密码登录。Linux/Mac 用 ssh-keygen,Windows 用 ssh-keygen 或 PuTTYgen。
  2. 安全列表(防火墙):实例创建后在「子网 → 安全列表」中添加入站规则,至少开放 22(SSH)、80(HTTP)、443(HTTPS)。
  3. 系统内部防火墙: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
  1. 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 MP3600 首 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 量级,远低于任何付费存储方案。

开通与配置

  1. 注册 Cloudflare 账号,添加你的域名(如果没有域名,可在 eu.org 等免费域名处申请一个,托管到 Cloudflare DNS)。
  2. 左侧菜单 → R2 → Create Bucket,名称如 music-files
  3. Bucket 设置 → Settings → 绑定自定义域名(如 dl.yourdomain.com),Cloudflare 自动签发 SSL 证书。
  4. 生成 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-pgsql

Nginx 反向代理配置

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 / 月
对象存储 10GBCloudflare 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 防护。


六、局限与翻车预警

甲骨文的潜在风险

  1. 注册门槛高:风控严格,不是每个人都能一次注册成功。被拒后需要等待并更换信用卡重试。
  2. 资源紧张:热门区域(首尔、东京)的 ARM 实例经常缺货。需要多刷新,或者用脚本自动抢实例(GitHub 上有 oci-freespace 等抢机脚本)。
  3. 小概率封号:虽然个人站长正常使用极少被封,但甲骨文理论上保留随时调整免费政策的权利。不要把鸡蛋放在一个篮子里——数据和代码务必多地备份。
  4. 国内访问延迟:首尔延迟 40-80ms 对 Web 浏览可接受,但对直播/实时交互就不够了。音乐下载场景完全够用。

R2 的适用边界

  1. 免费存储 10GB:曲库超过 2000 首 MP3 后需要付费。超出部分 $0.015/GB/月,即使 100GB 也只要 $1.5/月。
  2. A 类操作(上传/修改)有成本:如果网站允许用户上传,大量用户的频繁上传可能触发收费。100 万次/月免费额度对用户上传场景略显紧张,建议限制每人每日上传数量。

没有绝对永久

「永久性」是相对概念。甲骨文可能某天缩减免费计划、Cloudflare 可能调整 R2 定价、域名可能过期——这些变数都存在。唯一真正的「永久」是本地硬盘里始终保留一份完整数据,随时可以迁移到新平台。


七、适合什么人

  • 有一定 Linux 基础、会 SSH 登录、能看懂英文文档的站长
  • 月预算严格为零但也想正经做站的人
  • 想绕过国内备案、把内容掌握在自己手里的站长
  • 面向国内用户(首尔/新加坡延迟低)或以亚太用户为主的音乐站点

不适合

  • 完全不懂命令行的纯小白(可以先在本地虚拟机练好 Linux 基础再来)
  • 需要 99.9% SLA 保障的商业站点(免费方案天然没有 SLA)
  • 面向对延迟极其敏感的国内用户群(不如直接买国内备案服务器)

结语

甲骨文云 ARM 服务器 + Cloudflare R2 这套组合,是目前个人站长能拿到的天花板级免费方案。4 核 24G 内存跑 Web 应用绰绰有余,R2 零流量费让音乐下载站没有了「越多人用越烧钱」的后顾之忧。

在当前国内经济下行的环境下,这套方案让零预算的独立站长也能拥有专业级的部署条件。唯一需要付出的,是学习和折腾的时间——但这不正是独立站长的乐趣所在吗?

希望这篇文章能帮你把零成本音乐站的蓝图变成现实。


本文最后更新于 2026 年 6 月。甲骨文和 Cloudflare 的免费政策可能随时调整,请以官网最新信息为准。

Released under the MIT License.