国内办理的招商银行万事达借记卡,能不能注册甲骨文云 Oracle Cloud 免费 VPS?我的这次实测结果是:可以。全程使用中国大陆正常网络,没有使用 VPN,资料按本人真实情况填写,最终顺利收到 Oracle Cloud 开通邮件,并创建了一台控制台标记符合免费条件的实例。
验证时银行显示一笔 SGD 1.38、折合人民币约 7.31 元的境外线上预授权,随后同额撤销。这不是购买云服务器的正式消费,而是付款方式验证。Oracle 官方文档说明,注册 Free Tier 时会进行 1 美元或当地等值金额的预授权,并由 Oracle 立即撤销;银行何时解除冻结,以发卡行处理速度为准。
先说清楚:本文只是一次真实成功案例,不代表招商银行同类卡、所有地区或所有申请人都一定成功。Oracle 的风控、可用区域、免费政策和界面都会变化,请以申请时官方页面和控制台显示为准。
本文实测结果
| 项目 | 实测情况 |
|---|---|
| 注册网络 | 中国大陆日常网络,全程未使用 VPN |
| 验证卡片 | 国内办理的招商银行万事达借记卡 |
| 付款验证 | SGD 1.38,约人民币 7.31 元,随后预授权撤销 |
| 云账户 | Oracle Cloud Free Tier 成功开通 |
| 云服务器 | 创建控制台标记符合免费条件的 OCI 实例 |
| 最终系统 | 通过第三方网络重装方案安装 Debian 12 |
| 管理面板 | 原生安装 3x-ui,并配置域名和 ACME HTTPS 证书 |
文中“DD”沿用 VPS 用户常见说法,实际过程是第三方网络重装。它会清空整个系统盘,并非 Oracle 官方重装功能;请先备份,风险自行评估。
一、Oracle Cloud 的“免费”到底是什么
OCI Free Tier 主要包含两部分:
- 初次注册的 Free Trial:可获得一定试用金,通常最长使用 30 天;
- Always Free:在主区域、指定规格和免费配额内长期使用的资源。
常见免费计算规格包括:
- VM.Standard.E2.1.Micro:AMD/x86 架构,最多两台,每台约 1 GB 内存;
- VM.Standard.A1.Flex:Arm 架构,每月前 1,500 OCPU 小时和 9,000 GB 内存小时免费,对纯免费账户约等于持续运行 2 OCPU + 12 GB 内存。
免费资源必须在主区域创建,并以控制台的 Always Free-eligible 或“符合始终免费条件”标识为准。免费容量也不保证,出现 Out of host capacity 代表当前可用域暂时没货,不要为了抢机器误选收费规格。
官方资料:
二、注册前准备
建议准备:
- 本人长期使用、未注册过 OCI 的邮箱;
- 本人真实姓名、地址和手机号;
- 支持国际线上交易及预授权的万事达借记卡;
- 稳定的日常网络;
- 用于保存 SSH 私钥的安全目录;
- 提前选好主区域。
我的经验是:不要使用 VPN,不要频繁切换网络、国家和设备,也不要伪造地址。网络所在地、注册国家、手机号和付款资料应尽量保持真实一致。Oracle 是否接受某张卡由其支付验证和风控系统决定,失败时不要短时间重复轰炸式提交。
三、招商银行万事达借记卡实测
这次使用的是国内办理的招商银行万事达借记卡。提交卡片后,银行出现了:
- 商户:Oracle Singapore;
- 原交易:SGD 1.38;
- 人民币冻结:约 7.31 元;
- 随后状态:预授权撤销、冻结解除。
这与 Oracle 官方所说的 1 美元等值预授权相符。不同日期的汇率、入账币种和显示金额可能不同。若授权长期未撤销,应联系招商银行和 Oracle 支持核查,不要把预授权冻结误认为正式扣费。
四、不用 VPN 的注册流程
- 打开 Oracle Cloud 免费账户注册页;
- 选择真实国家/地区,填写姓名和常用邮箱;
- 打开验证邮件,完成邮箱验证;
- 设置 Cloud Account Name、密码和主区域;
- 填写真实地址与可接收短信的手机号;
- 添加招商银行万事达借记卡,完成小额预授权;
- 阅读并接受条款,提交申请;
- 收到“立即开始使用 Oracle 云”邮件后登录控制台。
主区域注册后通常不能更改。选区域时不要只看延迟,还要考虑 A1 免费实例是否经常缺货。本文演示使用免费规格,不建议在不理解账单规则时升级为 Pay As You Go。
五、创建第一台免费实例
进入:
OCI 控制台 → Compute → Instances → Create instance
建议选择:
- 入门和软件兼容优先:VM.Standard.E2.1.Micro;
- 需要更多内存且软件支持 Arm:VM.Standard.A1.Flex;
- 系统镜像:Oracle Linux 或 Ubuntu;
- 引导卷:默认约 50 GB 即可;
- 网络:公有子网,并分配公网 IPv4;
- SSH:上传自己的公钥,或下载 OCI 生成的私钥。
提交前再次确认费用估算为免费范围。实例创建成功后,在 Security List 或 NSG 中先放行 SSH。管理端口不要直接对全网开放,最好把来源限制为自己的公网 IP /32。
Oracle Linux 默认登录用户通常是 opc:
ssh -i "C:\安全目录\ssh-key.key" opc@服务器公网IP
Ubuntu 默认用户通常是 ubuntu。
六、可选:网络重装为 Debian 12
3x-ui 本身支持 Oracle Linux,因此不是必须重装。以下步骤只适合明确需要 Debian 12 的用户。它会清空整个系统盘,属于第三方网络重装方案,不是 Oracle 官方功能。
新手提示:每次只复制一个代码块,确认执行结束并重新出现命令提示符后,再执行下一块。不要把教程中的 服务器公网IP、你的域名等占位文字原样粘贴。
1. 重装前必须完成的三件事
第一,在 OCI 控制台给当前启动卷创建备份:
OCI 控制台 → Storage → Boot Volumes → 当前启动卷 → Create Backup
第二,记录实例的公网 IP。第三,在实例使用的 Security List 或 NSG 中提前添加:
| 用途 | 协议 | 目标端口 | 来源 |
|---|---|---|---|
| 当前 SSH | TCP | 22 | 仅自己的公网 IP /32 |
| Debian 新 SSH | TCP | 202 | 仅自己的公网 IP /32 |
在确认 Debian 的 202 可以登录之前,暂时不要删除 22 端口规则。
2. 登录原系统并切换 root
Oracle Linux 默认用户通常是 opc。本地 PowerShell 示例:
ssh -i "C:\安全目录\ssh-key.key" opc@服务器公网IP
登录服务器后执行:
sudo -i
看到提示符从类似:
[opc@instance ~]$
变成:
[root@instance ~]#
说明已经取得 root 权限。
3. 检查架构、虚拟化、系统盘和网络
cat /etc/os-release uname -m systemd-detect-virt findmnt / lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT ip -br -4 address ip -4 route free -h
常见结果:
- x86_64:AMD 免费机 VM.Standard.E2.1.Micro;
- aarch64:Ampere A1 Arm 免费机;
- kvm:OCI 虚拟机环境;
- 系统盘常见为 /dev/sda;
- 网卡通常获得 10.x.x.x 私网地址,公网 IP 由 OCI 映射,不会直接显示在网卡上。
检查 EFI:
if [ -d /sys/firmware/efi ]; then
echo "BOOT_MODE=EFI"
else
echo "BOOT_MODE=BIOS"
fi
不要手工把 OCI 公网 IP 写进网卡配置,也不要修改默认网关。
4. 确认 curl 可用
curl --version
如果提示 curl: command not found,Oracle Linux 才需要执行:
dnf install -y curl ca-certificates
1 GB 小机器第一次读取软件仓库元数据可能需要几分钟。只要 dnf 仍有 CPU 占用就耐心等待,不要同时启动多个 dnf。
5. 下载并检查重装脚本
cd /root
curl -fL --proto '=https' --tlsv1.2 \ -o reinstall.sh \ https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh
chmod 700 reinstall.sh bash -n reinstall.sh ls -lh reinstall.sh
bash -n 没有输出就是语法检查通过。ls -lh 应能看到下载好的脚本,而不是 0 字节文件。
6. 设置 Debian 12、root 和 SSH 202
bash /root/reinstall.sh debian 12 --username root --ssh-port 202
安装脚本会询问密码。输入密码时终端不会显示星号或字符,这是 Linux 的正常安全行为;输入完成后直接按 Enter。不要留空,否则脚本可能生成随机密码。
建议使用至少 20 位、包含大小写字母、数字和符号的随机密码,并立即保存到密码管理器。
脚本结束前检查摘要,至少应包含:
debian 12 Username: root SSH port: 202 Reboot to start the reinstallation.
如果出现红色 ERROR,不要重启。若尚未重启并想取消,可以执行:
bash /root/reinstall.sh reset
项目说明:bin456789/reinstall
7. 重启并等待安装
确认摘要正确且密码已经保存后:
reboot
SSH 会立即断开。等待约 10~30 分钟,不要连续强制重启。安装期间短暂出现 Connection refused 或超时通常是正常现象。
8. 在本地连接新的 Debian 12
重装后 SSH 主机密钥会变化。Windows PowerShell 先删除旧记录:
ssh-keygen -R "[服务器公网IP]:202"
然后连接:
ssh -p 202 root@服务器公网IP
首次提示是否信任新指纹时,确认连接的是自己的服务器后输入:
yes
再输入刚才设置的 root 密码。若等待 30 分钟仍无法连接,应查看 OCI 串行控制台的启动日志,不要急着终止免费实例,否则目标区域可能暂时没有容量重新创建。
七、Debian 12 基础优化
1. 先确认确实进入了 Debian 12
cat /etc/os-release uname -m ip -4 route df -hT
/etc/os-release 应包含:
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
2. 更新系统并安装基础工具
apt-get update apt-get full-upgrade -y
DEBIAN_FRONTEND=noninteractive apt-get install -y \ curl wget ca-certificates \ fail2ban nftables unattended-upgrades \ tmux htop
如果 APT 提示锁被占用,先用下面命令确认是否仍有升级进程,不要直接删除锁文件:
ps -ef | grep -E '[a]pt|[d]pkg'
3. 给 1 GB 小机器增加 2 GB Swap
先检查:
free -h swapon --show
若 Swap 为 0,再执行:
fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile
设置开机自动启用:
grep -qF '/swapfile none swap sw 0 0' /etc/fstab || \ echo '/swapfile none swap sw 0 0' >> /etc/fstab
echo 'vm.swappiness=20' > /etc/sysctl.d/99-swap.conf sysctl --system
检查结果:
free -h swapon --show sysctl vm.swappiness
预期看到 /swapfile、大小约 2 GB、vm.swappiness = 20。
4. 设置容易识别的主机名
hostnamectl set-hostname xui-node
if grep -q '^127\.0\.1\.1' /etc/hosts; then
sed -i 's/^127\.0\.1\.1.*/127.0.1.1 xui-node/' /etc/hosts
else
echo '127.0.1.1 xui-node' >> /etc/hosts
fi
重新登录后,提示符会从 root@localhost 变成 root@xui-node。
5. 固化并加固 SSH 202
保留当前 SSH 窗口不要关闭。创建统一配置:
cat >/etc/ssh/sshd_config.d/00-local-security.conf <<'EOF' Port 202 PermitRootLogin yes PasswordAuthentication yes PubkeyAuthentication yes KbdInteractiveAuthentication no PermitEmptyPasswords no MaxAuthTries 3 LoginGraceTime 30 X11Forwarding no EOF
重装脚本可能另外生成 01-port.conf。如果存在,将它移到 root 目录备份,避免 port 202 重复显示:
if [ -f /etc/ssh/sshd_config.d/01-port.conf ]; then
mv /etc/ssh/sshd_config.d/01-port.conf \
/root/01-port.conf.backup
fi
验证语法并重新加载:
sshd -t && systemctl reload ssh
确认最终配置:
sshd -T | grep -E \ '^(port|permitrootlogin|passwordauthentication|pubkeyauthentication|maxauthtries|logingracetime) '
应只看到一个:
port 202
不要关闭当前连接,先在本地另开一个 PowerShell 窗口测试:
ssh -p 202 root@服务器公网IP
新窗口登录成功后再继续。虽然这里为了演示保留了 root 密码登录,更安全的长期方案仍然是 SSH 密钥,并在 OCI 安全组中把 202 端口限制为自己的 IP。
6. 配置 Fail2ban 防止 SSH 爆破
确认目录存在:
install -d -m 0755 /etc/fail2ban/jail.d
cat >/etc/fail2ban/jail.d/99-sshd.local <<'EOF' [sshd] enabled = true port = 202 backend = systemd banaction = nftables-multiport usedns = no maxretry = 5 findtime = 600 bantime = 3600 bantime.increment = true bantime.factor = 2 bantime.maxtime = 604800 EOF
先测试配置:
fail2ban-client -t
看到配置测试成功后再启动:
systemctl enable --now fail2ban systemctl restart fail2ban
systemctl is-active fail2ban fail2ban-client ping fail2ban-client status sshd
正常结果应包含 active、Server replied: pong 和 Status for the jail: sshd。
7. 可选:启用 BBR
BBR 对高延迟网络可能有帮助,但不是运行 3x-ui 的硬性要求。
modprobe tcp_bbr
echo 'tcp_bbr' > /etc/modules-load.d/bbr.conf
cat >/etc/sysctl.d/90-bbr.conf <<'EOF' net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr EOF
sysctl --system lsmod | grep tcp_bbr sysctl net.core.default_qdisc sysctl net.ipv4.tcp_congestion_control
预期最后两项为 fq 和 bbr。如果 modprobe tcp_bbr 提示模块不存在,保持默认 cubic 即可,不要为了 BBR 安装来历不明的内核。
8. 启用自动安全更新
cat >/etc/apt/apt.conf.d/20auto-upgrades <<'EOF' APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1"; APT::Periodic::AutocleanInterval "7"; EOF
禁止无人值守更新自动重启服务器:
cat >/etc/apt/apt.conf.d/52unattended-upgrades-local <<'EOF' Unattended-Upgrade::Automatic-Reboot "false"; EOF
systemctl enable --now apt-daily.timer apt-daily-upgrade.timer
9. 安装面板前做一次验收
free -h swapon --show sshd -t systemctl --failed systemctl is-active ssh fail2ban fail2ban-client status sshd ss -lntup df -hT
此时通常只有 SSH 202 对外监听。若出现陌生服务或失败单元,先查明原因再安装面板。
八、安装 3x-ui 面板
3x-ui 是管理 Xray-core 的开源 Web 面板。请只用于自有设备远程访问、开发测试和合法网络互联,并遵守所在地法律、Oracle 服务条款及资源使用政策。
1 GB 机器建议原生安装,不使用 Docker。官方安装文档:MHSanaei/3x-ui Installation
1. 下载官方安装脚本
cd /root
curl -fL \ -o 3x-ui-install.sh \ https://raw.githubusercontent.com/MHSanaei/3x-ui/master/install.sh
chmod 700 3x-ui-install.sh bash -n 3x-ui-install.sh ls -lh 3x-ui-install.sh
bash -n 没有输出代表语法检查通过。
2. 执行安装
bash /root/3x-ui-install.sh
安装过程中按屏幕提示操作。新版安装器会生成随机的:
- 面板用户名;
- 面板密码;
- 面板监听端口;
- Web Base Path,也就是随机访问路径。
安装结果出现后先暂停,不要急着关终端。把四项内容准确保存到密码管理器,任何一项都不要公开到博客、视频或聊天群。
安装器还可能询问是否立即配置 SSL:
- 已准备好域名:选择域名证书或 Cloudflare DNS 验证;
- 暂时没有域名:可以选择 IP 证书,之后再从 x-ui 菜单更换;
- 证书续期重载命令使用默认的 systemctl restart x-ui 即可;
- 询问是否把证书设置给面板时,选择 y。
3. 检查服务状态
systemctl enable --now x-ui systemctl status x-ui --no-pager
看到 Active: active (running) 才表示服务正常。
查看管理菜单:
x-ui
菜单可以查看当前设置、重置面板账号、更新、重启、备份和管理 SSL。菜单编号会随版本变化,优先看选项文字,不要只记编号。
检查监听端口:
ss -lntup | grep -E 'x-ui|xray'
4. 在 OCI 放行面板端口
回到 OCI 控制台,在实例对应的 Security List 或 NSG 添加:
| 用途 | 协议 | 目标端口 | 来源 |
|---|---|---|---|
| 3x-ui 面板 | TCP | 安装器生成的面板端口 | 仅自己的公网 IP /32 |
面板端口不要对 0.0.0.0/0 开放。以后在面板中新建入站时,再按实际使用的 TCP/UDP 端口逐个添加规则,不要一次开放 1-65535。
5. 登录面板
没有 HTTPS 时,地址形式通常为:
http://服务器公网IP:面板端口/随机路径/
配置 HTTPS 后则为:
https://你的域名:面板端口/随机路径/
若打不开,依次检查:
systemctl is-active x-ui ss -lntup | grep -E 'x-ui|xray' journalctl -u x-ui -n 100 --no-pager
同时检查 OCI 安全规则是否填对协议、目标端口和来源 IP。
6. 首次登录后的安全设置
首次进入面板后建议立即完成:
- 确认管理员用户名和密码不是简单组合;
- 保留随机 Web Base Path,不要改成 /、/admin等容易猜测的路径;
- 开启两步验证;
- 检查面板只允许 HTTPS;
- 不在截图中展示客户端 UUID、订阅地址、密钥或 Reality 私钥;
- 只创建自己实际需要的入站与端口。
7. 备份面板数据库
3x-ui 默认 SQLite 数据库通常位于 /etc/x-ui/x-ui.db。手工备份:
cp /etc/x-ui/x-ui.db \ /root/x-ui-backup-$(date +%F).db
证书通常保存在 /root/cert/。数据库和证书都要再下载到本地或其他存储,不能只留在同一台服务器。官方备份说明:3x-ui Backup & Restore
九、给面板配置域名和 HTTPS
1. 添加 DNS 记录
在域名 DNS 服务商处添加独立子域名,例如:
类型:A 主机记录:panel 记录值:服务器公网 IPv4
最终域名类似 panel.example.com。等待解析生效后,在服务器检查:
getent ahostsv4 panel.example.com
输出的 IP 应与服务器公网 IP 一致。把示例域名替换成自己的真实域名。
2. 方法一:普通域名 HTTP 验证
这种方法最容易理解,但要求公网 TCP 80 能访问服务器,并且没有其他程序占用 80 端口。
在 OCI 临时放行 TCP 80,然后检查本机端口:
ss -lntp | grep ':80 '
没有输出通常表示 80 未被占用。运行:
x-ui
选择 SSL Certificate Management,当前版本通常是菜单 20;再选择 Get SSL (Domain),输入完整域名。证书通常会保存为:
/root/cert/你的域名/fullchain.pem /root/cert/你的域名/privkey.pem
询问是否修改续期后的 reload 命令时选择 n,保留默认 systemctl restart x-ui;询问是否把证书设置给面板时选择 y。
3. 方法二:Cloudflare DNS 验证
如果域名由 Cloudflare 托管、服务器不方便开放 80,或者需要通配符证书,可以使用 DNS-01。
在 Cloudflare 创建仅允许目标域名 Zone:DNS:Edit 的 API Token,不要使用权限过大的 Global API Key。然后运行:
x-ui
选择 Cloudflare SSL Certificate,当前版本通常是菜单 21;选择 API Token 模式并按提示输入域名和 Token。Token 只在终端输入,不要录屏或截图。
官方 SSL 说明:3x-ui SSL Certificates
4. 确认面板已经使用 HTTPS
完成后访问:
https://你的域名:面板端口/随机路径/
服务器侧检查:
systemctl restart x-ui systemctl status x-ui --no-pager
如果域名使用 Cloudflare 橙云代理,将 SSL/TLS 模式设置为 Full (strict)。Cloudflare 免费代理只支持指定的 HTTP/HTTPS 端口;随机面板端口若不在支持列表中,应改成受支持端口或使用灰云 DNS only。公网 ACME 证书比只能由 Cloudflare 信任的长期 Origin CA 证书更灵活。
不要移动或删除 /root/cert/、/root/.acme.sh/中的证书文件,否则自动续期可能失效。可以用下面命令查看已有证书:
/root/.acme.sh/acme.sh --list
十、OCI 端口怎么开放才安全
建议规则:
| 用途 | 协议/端口 | 来源 |
|---|---|---|
| SSH | TCP 202 | 仅自己的公网 IP /32 |
| 3x-ui 面板 | 实际面板 TCP 端口 | 仅自己的公网 IP /32 |
| HTTPS | TCP 443 或实际 HTTPS 端口 | 根据访问需求 |
| Xray 入站 | 实际创建的 TCP/UDP 端口 | 根据客户端范围 |
不要执行 iptables -F,不要开放 1-65535,不要把数据库、Docker API 或管理后台无条件暴露给 0.0.0.0/0。
十一、最终验收
free -h swapon --show systemctl --failed systemctl is-active ssh fail2ban x-ui fail2ban-client status sshd ss -lntup df -hT
同时在 OCI 中建立低额度预算告警、定期检查费用分析,并给重要配置和面板数据库做异地备份。Always Free 空闲实例存在被回收的可能,Oracle 官方判断标准与规则可能调整,不要使用虚假流量规避平台政策。
结语
这次实测最有价值的地方,并不是“找到一张神卡”,而是证明了一条更稳妥的思路:正常网络、真实资料、支持国际预授权的本人借记卡,再加上对免费额度和安全边界的理解。
招商银行万事达借记卡在我的案例中完成了 SGD 1.38 / 约 7.31 元预授权,并很快撤销;Oracle Cloud 账号随后开通。我再创建免费实例、重装 Debian 12、设置 Swap 与 Fail2ban,最后部署了带 HTTPS 的 3x-ui 面板。
申请结果因人而异,但流程可以做到清楚、透明、可复现。请务必保护个人信息,合法使用云资源,并定期备份。
本文不构成 Oracle、招商银行或 3x-ui 的官方承诺,也不构成财务、法律或规避网络监管建议。





