📖 前言
一直想给自己搭一套稳定、可控的代理方案,而不是依赖第三方服务商。这篇记录了从零开始,用 AWS 免费套餐 EC2 服务器搭建 Xray + VLESS-Reality 节点的完整过程,包括中途踩的几个坑(尤其是 SSH 连不上服务器这个问题排查了很久),希望能帮到有同样需求的人。
最终效果:Windows(v2rayN / Clash Verge)、Debian(Clash Verge)、安卓、iOS 全平台稳定访问,YouTube、ChatGPT、Telegram 使用流畅。
一、AWS 账号注册要点
AWS Free Tier 从 2025 年 7 月 15 日起规则有变化:新注册账号在"免费计划"下可获得一笔服务抵扣金(如 $100),有效期通常为 6 个月至 1 年,额度或时间用完后账户自动关闭(不会自动扣费转为付费),这点比老版规则更友好。
注册准备:
- 一张支持外币支付的信用卡(会有 $1-2 预授权,随后退回)
- 一个能收验证码的手机号
- 联系人信息可以如实填写中国大陆地址,但姓名建议用拼音,且尽量与信用卡预留信息一致,否则容易触发风控
账户计划选择:新手建议选"免费(6个月)"而非"付费",避免手滑超支。
二、创建 EC2 实例
关键配置项
| 项目 | 选择 | 说明 |
|---|---|---|
| 区域 | 东京 (ap-northeast-1) | 对国内延迟相对友好,新加坡也是不错选择 |
| AMI | Ubuntu Server 24.04 LTS (x86) | 选择成熟 LTS 版本,社区脚本兼容性最好;注意别选成 ARM 架构 |
| 实例类型 | t3.micro | 确认带有"符合条件的免费套餐"标签 |
| 密钥对 | RSA / .pem 格式 | 下载后妥善保管,只能下载一次 |
| 存储 | 默认 8GB gp3 | 免费套餐范围内够用 |
安全组入站规则
- SSH (22):来源设为"我的IP",而非 0.0.0.0/0(避免暴露给全世界扫描)
- 自定义 TCP 443:来源 0.0.0.0/0(代理服务需要,Reality 协议会把流量伪装成正常 HTTPS 访问)
⚠️ 避坑提醒
- 免费套餐是每月 750 小时,一台实例 24 小时不间断运行整月正好用完额度,不需要为了省额度而反复开关机
- 真正容易超支的是出网流量(Data Transfer Out),免费额度较小,长期高频看视频建议留意账单
- 公网 IP 若没有绑定弹性 IP,停止再启动实例后 IP 会变,之前生成的节点链接会失效;如果不需要频繁重启,让实例保持 running 即可,不用额外花钱买弹性 IP
三、SSH 连不上?排查思路记录
这是整个过程中最费时的一环,记录一下排查顺序,供参考:
- 确认安全组来源 IP 与本机实际公网 IP 一致(网络环境变化会导致 IP 变化)
Test-NetConnection -ComputerName <IP> -Port 22测试端口是否可达- 如果 TCP 通但 SSH 握手阶段被
Connection closed by remote host,且直连(不挂代理)时反而Connection timed out——大概率是本地网络环境对目标服务器的 22 端口做了针对性干扰,这在连接海外云服务商 IP 时并不罕见 - 换用 AWS 官方连接方式绕过本地网络问题:
- EC2 Instance Connect(浏览器 SSH,但仍走本地网络路径,效果有限)
- SSM Session Manager(推荐):完全通过 AWS 内部网络通信,不依赖 22 端口,从根本上绕开了本地网络干扰问题
使用 SSM 需要给实例挂载一个 IAM 角色(附加 AmazonSSMManagedInstanceCore 策略),挂载后如果 SSM Agent 没有立刻识别到新权限,重启一次实例通常能解决。
四、部署 Xray + VLESS-Reality
选择 Reality 协议的原因:不需要域名和证书,直接用服务器 IP 即可运行;将流量伪装成访问真实网站(如某电商网站)的 TLS 流量,识别难度和抗封锁能力都优于传统 VMess/Shadowsocks。
通过 SSM 终端连接服务器后,使用社区维护的一键脚本(233boy/xray-script):
sudo bash -c "$(curl -L https://raw.githubusercontent.com/233boy/Xray/master/install.sh)"
安装完成后会自动生成节点信息,默认端口是随机高位端口,建议改成 443(伪装成标准 HTTPS 流量,混淆效果更好,也不用额外开放安全组规则):
sudo xray
# 依次选择: 2) 更改配置 → 选中节点 → 2) 更改端口 → 输入 443
生成的节点信息示例(真实使用时请替换为你自己生成的值):
协议: vless
地址: <你的服务器公网IP>
端口: 443
用户ID: <UUID>
流控: xtls-rprx-vision
TLS: reality
SNI: www.example.com
公钥: <public key>
对应的分享链接格式:
vless://<UUID>@<IP>:443?encryption=none&security=reality&flow=xtls-rprx-vision&type=tcp&sni=www.example.com&pbk=<public-key>&fp=chrome#my-proxy
五、多端客户端配置
Windows / v2rayN
直接复制上面的 vless:// 链接,v2rayN 支持"从剪贴板导入 URL",导入后设为活动服务器即可。
安卓 / iOS
同样直接粘贴 vless:// 链接导入对应客户端(安卓可用 v2rayNG,iOS 可用 Shadowrocket / Loon 等支持 Reality 协议的客户端)。
Windows / Debian + Clash Verge Rev
Clash Verge(基于 Mihomo 内核)需要 YAML 格式配置,不能直接粘贴 vless 链接,需手动转换:
proxies:
- name: "my-proxy"
type: vless
server: <你的服务器IP>
port: 443
uuid: <UUID>
network: tcp
tls: true
udp: true
flow: xtls-rprx-vision
servername: www.example.com
reality-opts:
public-key: <public-key>
short-id: ""
client-fingerprint: chrome
proxy-groups:
- name: "🚀 节点选择"
type: select
proxies:
- "my-proxy"
- DIRECT
rules:
- MATCH,🚀 节点选择
将这段配置在"配置文件 → 手动创建"中粘贴保存并启用。Linux 下开启 TUN 模式时,首次会提示安装 Service Mode(需要 sudo 权限),按提示走完即可。
Debian 系统安装 Clash Verge Rev(以 v2.5.1 为例):
wget https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v2.5.1/Clash.Verge_2.5.1_amd64.deb
sudo apt install -y ./Clash.Verge_2.5.1_amd64.deb
六、安全加固
1. 收紧 SSH 安全组规则
确认 SSH(22) 入站规则的来源只允许自己当前的公网 IP,而非 0.0.0.0/0。因为日常主要通过 SSM 管理服务器,即便本机 IP 变化导致 SSH 连不上,也完全不影响代理服务本身,也不影响用 SSM 继续管理服务器。
2. 安装 fail2ban 防暴力破解
sudo apt update
sudo apt install -y fail2ban
sudo tee /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600
EOF
sudo systemctl enable fail2ban
sudo systemctl restart fail2ban
验证状态:
sudo systemctl status fail2ban # 确认 active (running)
sudo fail2ban-client status sshd # 查看 sshd jail 监控状态
3. 账单预算告警
在"账单和成本管理 → 预算"中创建"每月成本预算"模板,设置阈值(如 $5),并绑定邮箱接收超额告警,避免不知不觉产生额外费用。
七、维护小贴士
- 节点链接不需要定期更换,除非怀疑信息泄露、更换了服务器、或节点被针对性封锁
- 不建议频繁关闭实例:一是免费额度本就按"全月运行"设计,不需要省着用;二是没绑定弹性 IP 的情况下重启会导致 IP 变化,节点链接随之失效
- 定期查看 AWS 账单和流量使用情况,留意是否有异常增长
- Xray 本身可以通过
sudo xray菜单里的"更新"选项定期升级,不影响已生成的节点信息
总结
整套方案下来,成本几乎为零(在免费额度内),稳定性和抗干扰能力优于很多公开代理服务,而且完全掌握在自己手里。唯一需要投入的是搭建过程中的耐心,尤其是网络排障这一步——如果本地网络对海外服务器的 SSH 连接有干扰,记得用 SSM Session Manager 曲线救国。