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

📚 目录
前言
为什么选择自建?
相比机场服务,自建科学上网有以下优势:
- 🔒 隐私安全:数据完全掌握在自己手中
- ⚡ 速度稳定:独享带宽,不受他人影响
- 💰 性价比高:年付$88即可,比机场便宜
- 🛡️ 抗封锁强:使用最新的Reality协议
技术栈选择
| 组件 | 选择 | 理由 |
|---|---|---|
| VPS | DMIT LAX.Pro | CN2 GIA线路,母机不超售 |
| 系统 | Debian 12 | 稳定、安全、长期支持 |
| 协议 | Xray Reality | 2024最新抗审查技术 |
| 防护 | fail2ban + UFW | 多层安全防护 |
一、VPS选型
1.1 需求分析
首先明确自己的需求:
- 使用场景:日常浏览、视频、学习
- 流量需求:个人使用约500GB/月
- 预算:年付100美元以内
- 地理位置:美国西海岸(延迟低)
1.2 线路科普

CN2 GIA 线路优势:
- ✅ 电信、联通、移动三网直连
- ✅ 延迟低(150-200ms)
- ✅ 丢包率低(<1%)
- ✅ 晚高峰稳定
1.3 商家对比
经过调研,整理了几家主流CN2 GIA商家:
| 商家 | 年付价格 | 配置 | 带宽 | 推荐指数 |
|---|---|---|---|---|
| DMIT | $88.88 | 1核2G/20G/1TB | 1Gbps | ⭐⭐⭐⭐⭐ |
| 搬瓦工 | $49.99 | 1核1G/20G/500GB | 2.5Gbps | ⭐⭐⭐⭐ |
| HostDare | $24.47 | 1核1G/35G/600GB | 50Mbps | ⭐⭐⭐ |
💡 最终选择:DMIT LAX.Pro.TINY套餐
- 搬瓦工上游供应商,品质保证
- 母机不超售,性能稳定
- 美国原生IP,解锁流媒体
1.4 购买流程
- 访问 DMIT官网
- 选择 LAX.Pro.TINY 套餐
- 操作系统选择 Debian 12 x64
- 重要:勾选"SSH Key",系统会生成密钥对
- 下载私钥文件(PEM格式)
二、系统初始化
2.1 SSH配置
收到VPS信息后,配置本地SSH:
# 1. 保存私钥
chmod 600 ~/Downloads/your-key.pem
mv ~/Downloads/your-key.pem ~/.ssh/vps-key.pem
# 2. 配置SSH快捷登录
cat >> ~/.ssh/config << 'EOF'
Host myvps
HostName YOUR_VPS_IP
User root
IdentityFile ~/.ssh/vps-key.pem
ServerAliveInterval 60
EOF
# 3. 首次连接
ssh myvps

2.2 系统更新
# 更新软件包
apt update && apt upgrade -y
# 安装常用工具
apt install -y curl wget vim ufw socat
# 设置时区(可选)
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 是2024年最新的抗审查技术:
- ✅ 完美伪装TLS流量
- ✅ 无需购买域名和证书
- ✅ 抗主动探测
- ✅ 性能优于传统方案
3.2 安装Xray-core
使用官方一键安装脚本:
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
安装完成后验证:
xray version
# 输出: Xray 25.12.8 (Xray, Penetrates Everything.) ...
3.3 生成密钥
Reality协议需要三个密钥:
1) 生成UUID
cat /proc/sys/kernel/random/uuid
# 输出示例: a1b2c3d4-e5f6-7890-abcd-ef1234567890
2) 生成x25519密钥对
xray x25519
# 输出: Private key: [一串Base64字符]
⚠️ 注意:新版Xray不再直接输出Public Key,需要手动计算。
3) 计算Public Key
安装Python工具:
apt install -y python3-pip
pip3 install cryptography --break-system-packages
使用Python计算:
python3 << 'EOF'
import base64
from cryptography.hazmat.primitives.asymmetric import x25519
# 替换成你的Private Key
private_key_b64 = "YOUR_PRIVATE_KEY_HERE"
private_bytes = base64.b64decode(private_key_b64)
private_key = x25519.X25519PrivateKey.from_private_bytes(private_bytes)
public_key = private_key.public_key()
public_key_b64 = base64.b64encode(public_key.public_bytes_raw()).decode()
print(f"Public Key: {public_key_b64}")
EOF
4) 生成Short ID
openssl rand -hex 8
# 输出示例: a1b2c3d4e5f67890
3.4 配置文件
创建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": "www.apple.com:443",
"serverNames": ["www.apple.com"],
"privateKey": "YOUR_PRIVATE_KEY_HERE",
"shortIds": ["YOUR_SHORT_ID_HERE"]
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
}
]
}
EOF
配置说明:
| 参数 | 说明 |
|---|---|
port: 443 |
使用HTTPS端口,不易被封 |
dest: www.apple.com:443 |
伪装目标,流量看起来像在访问苹果官网 |
flow: xtls-rprx-vision |
Reality专用流控 |
3.5 启动服务
# 测试配置
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: www.apple.com
- ALPN: h2,http/1.1
Reality设置:
- Public Key: [你的Public Key]
- Short ID: [你的Short ID]
- Fingerprint: chrome
4.2 Windows – v2rayN
- 下载 v2rayN
- 添加服务器,选择"VLESS"
- 填入上述相同参数
- 测试连接
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权限
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 部署fail2ban
fail2ban可自动封禁暴力破解SSH的IP:
# 安装必要软件包
apt install -y fail2ban python3-systemd rsyslog
# 启用rsyslog
systemctl enable rsyslog
systemctl start rsyslog
配置fail2ban:
cat > /etc/fail2ban/jail.local << 'EOF'
[DEFAULT]
bantime = 3600 # 封禁1小时
findtime = 600 # 10分钟内
maxretry = 5 # 失败5次
[sshd]
enabled = true
port = ssh
filter = sshd
backend = systemd
maxretry = 3 # SSH更严格:3次
bantime = 3600
EOF
启动fail2ban:
systemctl enable fail2ban
systemctl start fail2ban
# 查看状态
fail2ban-client status sshd

六、性能优化
6.1 系统参数优化
cat >> /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
sysctl -p
6.2 客户端优化
Shadowrocket设置:
- 算法选择:自动
- 路由:绕过大陆IP
- DNS:1.1.1.1
浏览器扩展:
- SwitchyOmega(自动切换代理)
七、维护监控
7.1 日常检查命令
# 查看Xray状态
systemctl status xray
# 查看Xray日志
journalctl -u xray -f
# 查看fail2ban统计
fail2ban-client status sshd
# 查看系统资源
htop
# 查看流量使用
vnstat
7.2 定期维护
每月任务:
- ✅ 系统更新:
apt update && apt upgrade -y - ✅ 查看登录日志:
last -n 50 - ✅ 检查封禁IP:
fail2ban-client status sshd - ✅ 流量统计(避免超限)
配置备份:
# 备份重要配置
mkdir -p ~/backup
cp /usr/local/etc/xray/config.json ~/backup/
cp /etc/fail2ban/jail.local ~/backup/
tar -czf backup-$(date +%Y%m%d).tar.gz ~/backup/
7.3 故障排查
Xray无法连接:
# 1. 检查服务
systemctl status xray
# 2. 查看日志
journalctl -u xray -n 50
# 3. 测试配置
xray run -test -c /usr/local/etc/xray/config.json
# 4. 检查端口
netstat -tlnp | grep 443
SSH无法登录:
# 检查是否被fail2ban封禁
fail2ban-client status sshd
# 解封IP(如果误封)
fail2ban-client unban YOUR_IP
总结
🎯 部署成果
经过以上步骤,我们成功搭建了:
- ✅ 高性能科学上网服务(CN2 GIA线路)
- ✅ 最新Reality协议(抗审查能力强)
- ✅ 多层安全防护(SSH密钥 + fail2ban + 防火墙)
- ✅ 系统性能优化(BBR加速)
- ✅ 完善的监控体系
📊 性能评测
| 指标 | 评分 | 说明 |
|---|---|---|
| 速度 | ⭐⭐⭐⭐⭐ | 1Gbps带宽,BBR加速 |
| 稳定性 | ⭐⭐⭐⭐⭐ | 母机不超售,CN2 GIA |
| 延迟 | ⭐⭐⭐⭐⭐ | 洛杉矶机房,150-200ms |
| 安全性 | ⭐⭐⭐⭐⭐ | Reality协议 + 多层防护 |
| 抗封锁 | ⭐⭐⭐⭐⭐ | 流量完美伪装 |
💰 成本分析
VPS年费: $88.88(圣诞优惠10%)
域名: $0 (Reality不需要)
客户端: $2.99 (Shadowrocket一次性)
-------------------------
总计: ~$92/年 ≈ ¥660/年 ≈ ¥55/月
对比机场:
- 机场月费通常 ¥30-50
- 年费 ¥360-600
- 性价比相当,但自建更安全稳定
🔮 进阶玩法
- 多端口配置:分散流量特征
- CDN套娃:Cloudflare套上VPS
- WireGuard备用:配置VPN作为Plan B
- 流媒体解锁:Netflix、Disney+等
⚠️ 注意事项
- 合法合规:仅用于学习、工作等正当用途
- 流量控制:避免滥用超出1TB限制
- 定期更新:保持系统和Xray最新版本
- 密钥安全:妥善保管所有密钥和配置
📚 参考资源
📝 更新日志
- 2025-12-25:首次发布
- 基于Xray 25.12.8版本
- Debian 12系统
- Reality协议最新实践
如果这篇文章对你有帮助,欢迎点赞收藏! 👍
有任何问题欢迎在评论区讨论! 💬
免责声明:本文仅供技术学习交流使用,请遵守当地法律法规。
标签:#科学上网 #Xray #Reality #VPS #自建梯子 #翻墙教程 #2025最新