2026年最新:从零搭建Xray Reality科学上网完整指南

本文记录了使用 DMIT VPS + Xray Reality 协议搭建科学上网服务的完整过程,包含VPS选型、系统配置、安全加固等所有细节。适合有一定Linux基础的朋友参考。


📚 目录


前言

为什么选择自建?

相比机场服务,自建科学上网有以下优势:

  • 🔒 隐私安全:数据完全掌握在自己手中
  • ⚡ 速度稳定:独享带宽,不受他人影响
  • 💰 性价比高:年付$88即可,长期使用划算
  • 🛡️ 抗封锁强:使用Reality协议,抗审查能力极强

技术栈选择

组件 选择 理由
VPS DMIT LAX.Pro CN2 GIA线路,母机不超售
系统 Debian 13 (Trixie) 当前稳定版,安全支持至2028年,LTS支持至2030年
协议 Xray Reality 2023年问世的顶尖抗审查技术,持续迭代至今
防护 fail2ban + UFW 多层安全防护

⚠️ 关于操作系统版本:Debian 13 (Trixie) 已于2025年8月正式发布,是目前的当前稳定版。Debian 12 (Bookworm) 的官方安全支持将于2026年6月10日终止,之后进入社区维护的LTS阶段。新建服务器请直接选择 Debian 13。如果你的VPS供应商尚未提供 Debian 13 镜像,Debian 12 仍可使用但建议尽早升级。


一、VPS选型

1.1 需求分析

首先明确自己的需求:

  • 使用场景:日常浏览、视频、学习
  • 流量需求:个人使用约500GB/月
  • 预算:年付100美元以内
  • 地理位置:美国西海岸(延迟低)

1.2 线路科普

CN2 GIA 线路优势:

  • ✅ 电信、联通、移动三网优化
  • ✅ 延迟低(150-200ms)
  • ✅ 丢包率低(<1%)
  • ✅ 晚高峰稳定

1.3 商家对比

经过调研,整理了几家主流CN2 GIA商家(价格和配置以购买时官网实时信息为准,商家可能随时调整):

商家 套餐/年付价格 配置 带宽 推荐指数
DMIT LAX.Pro.TINY $88.88/年(75折) 1核2G/20G SSD/1000GB 1Gbps ⭐⭐⭐⭐⭐
搬瓦工 CN2 GIA-E $49.99/季($169.99/年) 2核1G/20G/1TB 2.5Gbps ⭐⭐⭐⭐
HostDare CSSD0 $35.99/年 1核768M/10G NVMe/250GB 30Mbps ⭐⭐⭐

说明

  • 搬瓦工 $49.99/年的是 KVM 常规方案(非CN2 GIA线路),CN2 GIA-E 最低为 $49.99/季、$169.99/年
  • HostDare CSSD0 是 CN2 GIA 系列入门款,配置较低但价格也最便宜
  • DMIT 产品线近期有平台迁移(AN4→AN5),套餐名可能变为 LAX.AN5.Pro.TINY

💡 最终选择:DMIT LAX.Pro.TINY套餐

  • DMIT 和搬瓦工均接入中国电信 CN2 GIA 线路,品质有保障
  • 母机不超售,性能稳定
  • 美国原生IP,解锁流媒体

1.4 购买流程

  1. 访问 DMIT官网
  2. 在 Los Angeles → Premium Network 下选择 TINY 套餐
  3. 操作系统选择 Debian 13 x64(若暂无 Debian 13 镜像,可先选 Debian 12 后续升级)
  4. 重要:勾选"SSH Key",系统会生成密钥对
  5. 下载私钥文件(PEM格式)

二、系统初始化

2.1 SSH配置

收到VPS信息后,配置本地SSH:

# 1. 确保本地 .ssh 目录存在
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# 2. 保存私钥
chmod 600 ~/Downloads/your-key.pem
mv ~/Downloads/your-key.pem ~/.ssh/vps-key.pem

# 3. 配置SSH快捷登录
cat >> ~/.ssh/config << 'EOF'
Host myvps
    HostName YOUR_VPS_IP
    User root
    IdentityFile ~/.ssh/vps-key.pem
    ServerAliveInterval 60
EOF

# 4. 首次连接
ssh myvps

2.2 系统更新

# 更新软件包
apt update && apt upgrade -y

# 安装常用工具(含后续维护监控所需的 htop 和 vnstat)
apt install -y curl wget vim ufw socat htop vnstat

# 设置时区(可选)
timedatectl set-timezone Asia/Shanghai

2.3 启用BBR加速

BBR是Google开发的TCP拥塞控制算法,可显著提升网络性能:

# 添加BBR配置
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

# 应用配置
sysctl -p

# 验证BBR已启用
sysctl net.ipv4.tcp_congestion_control
# 输出应为: net.ipv4.tcp_congestion_control = bbr

📈 性能提升:启用BBR后,在弱网环境下速度可提升10-30%

2.4 防火墙配置

# 配置UFW防火墙
ufw allow 443/tcp  # Xray端口
ufw allow 22/tcp   # SSH端口
ufw enable

# 查看状态
ufw status verbose

三、Xray Reality部署

3.1 什么是Reality?

Reality 是Xray项目于 2023年初 推出的抗审查技术(首次出现在 Xray-core v1.8.0),经过三年多的持续迭代,目前已是最成熟可靠的抗审查方案之一:

  • ✅ 完美伪装TLS流量
  • ✅ 无需购买域名和证书
  • ✅ 抗主动探测
  • ✅ 性能优于传统方案

3.2 安装Xray-core

使用官方一键安装脚本:

bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install

安装完成后验证:

xray version
# 输出示例: Xray 26.3.27 (Xray, Penetrates Everything.) ...
# 版本号以实际安装时最新版为准

3.3 生成密钥

Reality协议需要三组密钥信息:

1) 生成UUID

xray uuid
# 输出示例: a1b2c3d4-e5f6-7890-abcd-ef1234567890

2) 生成x25519密钥对

xray x25519

输出格式说明(重要)

Xray 不同版本的输出格式有所不同:

旧版(v25.3.6 之前)

Private key: xxxxxxxxxxxxxxxxxx
Public key: yyyyyyyyyyyyyyyyyy

新版(v25.3.6+)

PrivateKey: xxxxxxxxxxxxxxxxxx
Password: yyyyyyyyyyyyyyyyyy
Hash32: zzzzzzzzzzzzzzzzzz

⚠️ 注意:新版输出中的 Password 就是公钥(Public Key),无需额外手动计算!记录下 PrivateKey(服务端配置用)和 Password(即公钥,填入客户端配置)即可。

3) 生成Short ID

openssl rand -hex 8
# 输出示例: a1b2c3d4e5f67890

3.4 选择伪装目标网站(dest)

Reality 协议需要指定一个伪装目标网站。选择标准

  • 支持 TLS 1.3 和 H2
  • 与你的 VPS 同 ASN 或同网段的网站为最佳
  • 网站在国内可以正常访问

推荐做法:使用 RealiTLScanner 工具扫描你 VPS 所在 IP 网段的邻居,找到合适的伪装目标。

⚠️ 重要注意事项

  1. RealiTLScanner 必须在本地电脑上运行,不要在 VPS 上运行——官方明确警告在云端运行扫描器可能导致 VPS 被标记
  2. 需使用 CIDR 格式扫描邻居网段,而非单个 IP(单个 IP 会进入 infinity mode,只扫描该 IP 本身,无法发现邻居)

假设你的 VPS IP 是 154.17.6.123,操作方法如下:

# ===== 以下命令在本地电脑上运行,不是在VPS上! =====

# 下载 RealiTLScanner(请到 GitHub Releases 下载对应平台的最新版)
# https://github.com/XTLS/RealiTLScanner/releases

# 扫描 VPS 所在的 /24 网段邻居
./RealiTLScanner -addr 154.17.6.0/24

# 如果需要更多结果,可以扫描更大范围(耗时较长,建议开多线程)
./RealiTLScanner -addr 154.17.0.0/16 -timeout 5 -thread 10

从输出结果中选择 feasible=true 且证书颁发者为知名 CA(如 DigiCert、Let’s Encrypt 等)的域名作为你的 dest 目标。

⚠️ 不推荐使用 www.apple.comwww.icloud.com:Xray-core v26.3.27 起已对使用 apple/icloud 域名作为 dest 发出官方警告。这些热门域名使用的人太多,容易成为审查重点目标。建议用 RealiTLScanner 扫描到的同网段邻居网站。

以下配置中以 your.target.com 为示例,请替换为你实际扫描到的域名。

3.5 配置文件

创建Xray配置文件:

cat > /usr/local/etc/xray/config.json << 'EOF'
{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "port": 443,
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            "id": "YOUR_UUID_HERE",
            "flow": "xtls-rprx-vision"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "dest": "your.target.com:443",
          "serverNames": ["your.target.com"],
          "privateKey": "YOUR_PRIVATE_KEY_HERE",
          "shortIds": ["YOUR_SHORT_ID_HERE"]
        }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls", "quic"],
        "routeOnly": true
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    }
  ]
}
EOF

配置说明:

参数 说明
port: 443 使用HTTPS端口,不易被封
dest 伪装目标网站,建议用 RealiTLScanner 在本地扫描到的同网段邻居
flow: xtls-rprx-vision Reality专用流控,仅在 TCP + TLS/Reality 组合下可用
privateKey 第3.3步生成的 PrivateKey(服务端用)
shortIds 第3.3步生成的 Short ID
sniffing 流量嗅探,用于识别目标域名以配合路由规则,routeOnly 表示仅用于路由判断不覆盖目标地址

3.6 启动服务

# 测试配置
xray run -test -c /usr/local/etc/xray/config.json

# 启动服务
systemctl enable xray
systemctl start xray

# 查看状态
systemctl status xray

四、客户端配置

4.1 iOS – Shadowrocket

配置参数:

类型: VLESS
地址: YOUR_VPS_IP
端口: 443
UUID: [你的UUID]
传输方式: tcp
流控: xtls-rprx-vision

TLS设置:
  - 开启TLS
  - SNI: your.target.com

Reality设置:
  - Public Key: [x25519输出中的Password,即公钥]
  - Short ID: [你的Short ID]
  - Fingerprint: chrome

💡 关于 ALPN:Reality 协议通过 uTLS Fingerprint 自动协商 ALPN,客户端的 ALPN 字段留空即可,无需手动设置。

4.2 Windows – v2rayN

  1. 下载 v2rayN
  2. 添加服务器,选择"VLESS"
  3. 填入上述相同参数
  4. 测试连接

4.3 Android – v2rayNG

配置方法与v2rayN类似,在Google Play或GitHub下载。

4.4 验证连接

连接成功后测试:

# 访问Google
curl -I https://www.google.com

# 查看出口IP
curl ip.sb

五、安全加固

5.1 创建普通用户

不建议长期使用root账户:

# 创建新用户
adduser myuser

# 安装sudo
apt install sudo -y

# 添加sudo权限(Debian默认使用sudo组)
usermod -aG sudo myuser

5.2 配置SSH密钥

# 切换到新用户
su - myuser

# 创建.ssh目录
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# 复制root的密钥
sudo cp /root/.ssh/authorized_keys ~/.ssh/
sudo chown myuser:myuser ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

本地SSH配置:

cat >> ~/.ssh/config << 'EOF'
Host myvps-user
    HostName YOUR_VPS_IP
    User myuser
    IdentityFile ~/.ssh/vps-key.pem
    ServerAliveInterval 60
EOF

5.3 锁死SSH登录方式

⚠️ 此步骤极为重要! 在执行以下操作前,请务必先用新用户 myuser 通过密钥成功登录一次 VPS,确认无误后再继续。否则可能把自己锁在门外。

# 先用新用户测试登录(在本地新开一个终端)
ssh myvps-user
# 确认成功后,在VPS上执行以下操作:

# 禁止root直接SSH登录
sudo sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config

# 禁止密码登录(强制使用密钥)
sudo sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config

# 重启SSH服务使配置生效
sudo systemctl restart sshd

🔒 为什么必须做这一步? 仅靠 fail2ban 只能减缓暴力破解,无法根本阻止。关闭密码登录 + 禁止root直连 SSH,才能从根本上杜绝暴力破解风险。

5.4 部署fail2ban

fail2ban可自动封禁暴力破解SSH的IP,作为额外的防护层:

# 安装必要软件包
# python3-systemd 是必须的,否则 fail2ban 使用 systemd backend 会报错
sudo apt install -y fail2ban python3-systemd

配置fail2ban:

# 注意:sudo cat > 无法正确写入受保护文件(shell重定向在sudo提权前执行)
# 使用 sudo tee 才是正确写法
sudo tee /etc/fail2ban/jail.local << 'EOF'
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
backend = systemd

[sshd]
enabled = true
port = ssh
filter = sshd
maxretry = 3
bantime = 3600
EOF

启动fail2ban:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# 查看状态
sudo fail2ban-client status sshd

六、性能优化

6.1 系统参数优化

# 注意:sudo cat >> 无法正确追加写入受保护文件
# 使用 sudo tee -a(-a 等价于 >>,表示追加)
sudo tee -a /etc/sysctl.conf << 'EOF'
# 网络性能优化
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_mtu_probing = 1

# 提高连接队列
net.core.somaxconn = 1024
net.ipv4.tcp_max_syn_backlog = 2048
EOF

sudo sysctl -p

6.2 客户端优化

Shadowrocket设置:

  • 算法选择:自动
  • 路由:绕过大陆IP
  • DNS:1.1.1.1

浏览器扩展:

  • SwitchyOmega(自动切换代理)

七、维护监控

7.1 日常检查命令

# 查看Xray状态
sudo systemctl status xray

# 查看Xray日志
sudo journalctl -u xray -f

# 查看fail2ban统计
sudo fail2ban-client status sshd

# 查看系统资源
htop

# 查看流量使用
vnstat

7.2 定期维护

每月任务:

  • ✅ 系统更新:sudo apt update && sudo apt upgrade -y
  • ✅ 查看登录日志:last -n 50
  • ✅ 检查封禁IP:sudo fail2ban-client status sshd
  • ✅ 流量统计(注意避免超出套餐月流量限制)

配置备份:

# 备份重要配置
mkdir -p ~/backup
sudo cp /usr/local/etc/xray/config.json ~/backup/
sudo cp /etc/fail2ban/jail.local ~/backup/
sudo cp /etc/ssh/sshd_config ~/backup/
tar -czf backup-$(date +%Y%m%d).tar.gz ~/backup/

7.3 故障排查

Xray无法连接:

# 1. 检查服务
sudo systemctl status xray

# 2. 查看日志
sudo journalctl -u xray -n 50

# 3. 测试配置
sudo xray run -test -c /usr/local/etc/xray/config.json

# 4. 检查端口
ss -tlnp | grep 443

SSH无法登录:

# 检查是否被fail2ban封禁
sudo fail2ban-client status sshd

# 解封IP(如果误封)
sudo fail2ban-client unban YOUR_IP

总结

🎯 部署成果

经过以上步骤,我们成功搭建了:

  • ✅ 高性能科学上网服务(CN2 GIA线路)
  • ✅ Reality协议(成熟可靠的抗审查方案)
  • ✅ 多层安全防护(SSH密钥 + 禁止密码登录 + 禁止root直连 + fail2ban + 防火墙)
  • ✅ 系统性能优化(BBR加速)
  • ✅ 完善的监控体系

📊 性能评测

指标 评分 说明
速度 ⭐⭐⭐⭐⭐ 1Gbps带宽,BBR加速
稳定性 ⭐⭐⭐⭐⭐ 母机不超售,CN2 GIA
延迟 ⭐⭐⭐⭐⭐ 洛杉矶机房,150-200ms
安全性 ⭐⭐⭐⭐⭐ Reality协议 + 多层防护
抗封锁 ⭐⭐⭐⭐⭐ 流量完美伪装

💰 成本分析

VPS年费: $88.88(DMIT LAX.Pro.TINY 75折年付)
域名: $0(Reality不需要域名)
客户端: $2.99(Shadowrocket一次性购买)
-------------------------
总计: ~$92/年 ≈ ¥660/年 ≈ ¥55/月
(汇率按约1美元≈7.17人民币估算,实际以购买时为准)

对比机场:

  • 机场月费通常 ¥30-50
  • 年费 ¥360-600
  • 性价比相当,但自建更安全稳定

🔮 进阶玩法

  1. XHTTP传输:Xray新一代传输方式,可通过CDN中转,进一步增强抗封锁能力
  2. WireGuard备用:配置VPN作为Plan B
  3. 流媒体解锁:Netflix、Disney+等
  4. TUN模式:Xray-core v26+ 新增TUN入站,可实现透明代理

⚠️ 注意事项

  1. 合法合规:仅用于学习、工作等正当用途
  2. 流量控制:注意套餐月流量限额,避免超限
  3. 定期更新:保持系统和Xray最新版本
  4. 密钥安全:妥善保管所有密钥和配置
  5. 伪装目标:不要使用 apple.com/icloud.com 等热门域名,用 RealiTLScanner 在本地电脑上以 CIDR 格式(如 /24)扫描 VPS 同网段邻居

📚 参考资源


📝 更新日志

  • 2026-04-25:全文修订更新(第四版——最终版)
    • 操作系统升级为 Debian 13 (Trixie):Debian 12 安全支持将于2026年6月终止,新建服务器应使用当前稳定版 Debian 13
    • 修复 sudo cat > 权限Bug:将 5.4 节和 6.1 节中的 sudo cat > / sudo cat >> 全部替换为 sudo tee / sudo tee -a,修复普通用户下执行会 Permission Denied 的问题
    • 修正 x25519 输出标签:新版输出字段名为 Password(即公钥),而非 Password (PublicKey)
    • 修正 DMIT 与搬瓦工关系表述:改为"均接入CN2 GIA线路",避免无充分依据的"上游供应商"说法
    • 修正Reality协议年份描述(2023年问世,非"2024最新")
    • 修正x25519密钥生成说明(新版直接输出公钥,无需手动Python计算)
    • 修正VPS商家对比表中搬瓦工、HostDare的配置和价格错误
    • 更新:不推荐使用apple.com作为伪装目标(官方已发出警告)
    • 新增RealiTLScanner工具推荐及正确使用方式(本地运行 + CIDR格式)
    • 新增SSH安全加固:PermitRootLogin no + PasswordAuthentication no
    • 新增sniffing配置段:与官方示例配置对齐
    • 修复工具依赖:初始化阶段预装 htopvnstat;fail2ban 安装补充 python3-systemd
    • 移除冗余rsyslog:Debian 使用 backend = systemd 无需 rsyslog
    • 客户端ALPN说明:Reality协议下ALPN留空即可
    • 补充本地 mkdir -p ~/.ssh 确保目录存在
    • netstat 命令替换为更现代的 ss 命令
    • 新增进阶玩法:XHTTP传输、TUN模式
  • 2025-12-25:首次发布

如果这篇文章对你有帮助,欢迎点赞收藏! 👍

有任何问题欢迎在评论区讨论! 💬


免责声明:本文仅供技术学习交流使用,请遵守当地法律法规。


标签#科学上网 #Xray #Reality #VPS #DMIT #CN2GIA #Debian13 #2026更新


下面是几款主流的一键安装脚本及其推荐理由(点击链接可跳转到脚本仓库),一句话说明适合人群或特色:

  • 233boy Xray 脚本 – 多协议(包括 VMESS、VLESS‑Reality、Shadowsocks 等)支持,提供一键添加/删除用户和自动 TLS 功能,适合想要快速部署并灵活管理代理的朋友。
    仓库地址:https://github.com/233boy/Xray/
  • mack‑a v2ray‑agent 脚本 – 使用 ASCII 连字符的地址为 mack-a,支持 sing‑box/Xray 双内核及 VLESS、VMess、Trojan、Hysteria2、Tuic 等多种协议,并集成流量分流和黑名单功能 ,适合需要深度自定义的用户。
    仓库地址:https://github.com/mack-a/v2ray-agent
  • 3X‑UI 面板脚本 – 提供图形化界面,支持 VMESS、VLESS、Trojan、Shadowsocks、HTTP、WireGuard 等协议,并能一键申请和续期 TLS 证书 ,新手也能轻松上手。
    仓库地址:https://github.com/mhsanaei/3x-ui/
  • AnyTLS-Go 一键脚本 – 原仓库 mingmenmama/anytls 已失效,可替换为镜像仓库;该脚本支持智能端口检测、多系统兼容和 Let’s Encrypt 证书配置 ,适合想尝试 AnyTLS 混淆协议的用户。
    替代仓库:https://github.com/bruce019/anytls
  • fscarmen sing-box 全家桶脚本 – 地址应使用 ASCII 连字符 sing-box,可同时部署 ShadowTLS v3、XTLS Reality、Hysteria2、Tuic v5、ShadowSocks、Trojan、VMess + ws、VLESS + ws + TLS、H2 Reality、gRPC Reality 与 AnyTLS 等协议,并输出适配各客户端的订阅链接,适合追求多协议组合和便捷管理的朋友。
    仓库地址:https://github.com/fscarmen/sing-box

如果你追求更简单的包管理而只需要 Shadowsocks,可以考虑 Teddysun 的二进制包仓库,通过系统包管理器安装即可,不过它并非完整的一键脚本。

已有 0 条评论
滚动至顶部