主题模式
Are you an LLM? You can read better optimized documentation at /vps/serve/xray-reality-guide.md for this page in Markdown format
VPS 自建代理完全指南:Xray + VLESS Reality 部署实战
2026 年,防火墙的流量识别能力持续升级。传统 TLS 伪装方案频繁被"假 TLS"检测标记,而 Reality 协议通过借用真实网站的 TLS 握手特征,让代理流量看起来像普通的 HTTPS 访问,是目前公认的最强抗检测方案。
本文将带你从零开始,在 VPS 上部署 Xray-core + VLESS Reality。
Reality 协议原理:为什么比 TLS 更强?
传统 VLESS + XTLS(如 xtls-rprx-vision)虽然也对流量做了混淆,但本质上是自签 TLS 证书——防火墙可以通过证书链校验发现异常。
Reality 的核心创新在于:不用自己的证书,直接"偷"真实目标网站的 TLS 指纹。
| 方案 | TLS 证书来源 | 被检测风险 |
|---|---|---|
| VLESS + XTLS Vision | 自签证书 | ⚠️ 中等(可通过证书链识别) |
| VLESS + Reality | 借用 www.microsoft.com 等真实网站 | ✅ 极低(完全合法的 TLS 握手) |
| Trojan + TLS | 申请 Let's Encrypt | ⚠️ 中等(SNI 与 Nginx 不匹配) |
| Hysteria2 | QUIC 协议混淆 | ✅ 低(新型协议,暂无针对性检测) |
Reality 的握手过程:
- 客户端发起到服务端的连接
- 服务端不返回自己的证书,而是转发目标网站(如
www.microsoft.com)的真实证书 - 防火墙看到的 SNI 是
www.microsoft.com,Certificate 也确实是微软的合法证书 - 真正的代理数据在 TLS 握手完成后通过 VLESS 传递
局限性:
- 必须借用国外真实网站的证书(不能在国内访问的域名上建站)
- 需要稳定的目标网站(证书不能频繁变更)
- 中转/CDN 场景不适用(Reality 需要直连)
VPS 选择建议
自建代理对 VPS 的要求和跑网站不同,重点关注三个方面:
IP 质量
IP 质量直接决定代理能否稳定使用。主要风险:
- 被墙 IP:已被 GFW 封锁,完全不可用
- ASN 风控:某些服务商会限制特定 ASN 的访问(如 Netflix 封 IDC IP)
- 流媒体解锁:大部分 VPS IP 只能解锁 Netflix 自制剧
💡 买 VPS 后的第一件事
拿到 VPS 后先用 流媒体解锁检测脚本 测试 IP 质量。如果 IP 已被墙,立刻申请退款/换 IP。
线路选择
| 线路类型 | 速度 | 价格 | 适用场景 |
|---|---|---|---|
| CN2 GIA(电信优化) | ⭐⭐⭐⭐⭐ | 💰💰💰💰 | 电信用户首选 |
| CN2 GT(电信普通优化) | ⭐⭐⭐⭐ | 💰💰💰 | 电信预算有限 |
| 9929(联通优化) | ⭐⭐⭐⭐⭐ | 💰💰💰💰 | 联通用户首选 |
| CMI(移动优化) | ⭐⭐⭐⭐ | 💰💰💰 | 移动用户 |
| BGP(多线) | ⭐⭐⭐ | 💰💰 | 三网通用 |
| 普通国际线路 | ⭐⭐ | 💰 | 不推荐,晚高峰拥塞严重 |
推荐商家(2026 年 7 月)
| 商家 | 线路 | 起步价 | 特点 |
|---|---|---|---|
| 搬瓦工 Bandwagon | CN2 GIA | $49.99/年 | 老牌,稳定性高,IP 可换 |
| DMIT | CN2 GIA / CMI | $36.90/季 | 香港/日本节点可选 |
| Vultr | 普通线路 | $6/月 | 按小时计费,可随时销毁 |
| RackNerd | 普通线路 | $10/年 | 便宜,适合练手 |
| CloudCone | 普通线路 | $2/月 | 便宜,洛杉矶机房 |
练手推荐 RackNerd $10/年 套餐。正式使用推荐搬瓦工 CN2 GIA。
方案一:一键脚本部署(推荐)
适合不想折腾的用户,5 分钟搞定。
步骤 1:SSH 连接 VPS
sh
ssh root@你的VPS_IP步骤 2:运行一键安装脚本
目前主流的 Reality 一键脚本:
| 脚本 | 特点 | 命令 |
|---|---|---|
| Xray Reality(推荐) | Reality 专用,配置干净 | 见下方 |
| 八合一脚本 | 支持多协议 | wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh" && chmod 700 /root/install.sh && /root/install.sh |
推荐使用 Reality 专用脚本:
sh
# 下载并运行 Reality 一键脚本
bash <(curl -fsSL https://raw.githubusercontent.com/chika0801/Xray-examples/main/VLESS-XTLS-uTLS-REALITY/server.sh)脚本会提示你选择:
- 目标网站(Dest):建议选
www.microsoft.com或www.apple.com,它们证书稳定、全球 CDN 延迟低 - 端口:默认 443,也可以改(如 8443)
- UUID:自动生成,记下来备用
安装完成后会输出客户端连接信息。
⚠️ 注意
一键脚本会自动配置防火墙规则。如果你的 VPS 有其他服务占用 443 端口(如 Nginx),需要先停止或更换端口。
方案二:手动部署全流程
想完全掌控配置?手动部署也不复杂。
步骤 1:安装 Xray-core
sh
# 安装官方脚本
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
# 验证安装
xray version步骤 2:生成 Reality 密钥对
sh
# 生成密钥对
xray x25519输出示例:
Private key: 2KZtQeLg...(私钥,服务端使用)
Public key: 8rVPwDhG...(公钥,客户端使用)记下私钥和公钥,后面配置要用。
步骤 3:生成 Short ID
sh
# 生成 8 位十六进制 shortId
openssl rand -hex 8💡 Short ID 的作用
Reality 使用 Short ID 来区分不同的入站连接。每个客户端可以用不同的 Short ID,实现简单的多用户隔离。
步骤 4:编写配置文件
编辑 /usr/local/etc/xray/config.json:
json
{
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "你生成的UUID",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "www.microsoft.com:443",
"xver": 0,
"serverNames": ["www.microsoft.com"],
"privateKey": "你的私钥(服务端)",
"shortIds": ["你生成的shortId"]
}
}
}
],
"log": {
"loglevel": "warning"
},
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
}
],
"routing": {
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "block"
}
]
}
}步骤 5:重启 Xray
sh
systemctl restart xray
systemctl status xray # 检查运行状态看到 active (running) 即部署成功。
服务端进阶配置
分流规则:国内直连 + 广告屏蔽
在上面的基础配置中,outbounds 和 routing 部分比较简单。加装分流规则可以让国内流量不走代理、屏蔽广告域名:
json
{
"outbounds": [
{ "protocol": "freedom", "tag": "direct" },
{ "protocol": "blackhole", "tag": "block" },
{ "protocol": "dns", "tag": "dns-out" }
],
"routing": {
"domainStrategy": "AsIs",
"rules": [
// 广告屏蔽
{
"type": "field",
"domain": ["geosite:category-ads-all"],
"outboundTag": "block"
},
// 国内直连
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
},
// 国内 IP 直连
{
"type": "field",
"ip": ["geoip:cn", "geoip:private"],
"outboundTag": "direct"
}
],
"dns": {
"servers": [
{ "address": "223.5.5.5", "domains": ["geosite:cn"], "expectIPs": ["geoip:cn"] },
{ "address": "8.8.8.8", "domains": ["geosite:geolocation-!cn"] },
{ "address": "1.1.1.1" }
]
}
}
}多用户配置
Reality 支持多用户共享同一端口。只需在 clients 数组中添加更多条目:
json
"clients": [
{ "id": "UUID-1", "flow": "xtls-rprx-vision" },
{ "id": "UUID-2", "flow": "xtls-rprx-vision" },
{ "id": "UUID-3", "flow": "xtls-rprx-vision" }
]每个客户端用不同的 UUID 连接,可以用不同的 Short ID 进一步隔离。
客户端配置
Windows / macOS
推荐使用 v2rayN(Windows)或 V2rayU(macOS):
- 打开客户端 → 添加服务器
- 协议选
VLESS - 填入:
- 地址:你的 VPS IP 或域名
- 端口:443(或你设置的端口)
- UUID:服务端配置的 UUID
- Flow:
xtls-rprx-vision - 传输:
tcp - 安全:
reality - SNI:
www.microsoft.com(与 Dest 一致) - Fingerprint:
chrome或random - Public Key:服务端生成的公钥
- Short ID:服务端配置的 Short ID
Android
使用 v2rayNG:
- 右上角 + → 手动输入
- 配置同上
- 保存后测试连接
iOS
使用 Shadowrocket 或 Quantumult X(参考 iOS 客户端全教程):
- Shadowrocket 支持 Reality,直接在添加 VLESS 节点时选择 Reality 类型
- Quantumult X 需配合插件
Sing-box 客户端配置
如果你在用 Sing-box,出站配置如下:
json
{
"flow": "xtls-rprx-vision",
"server": "你的VPS_IP",
"server_port": 443,
"tag": "proxy",
"tls": {
"enabled": true,
"server_name": "www.microsoft.com",
"reality": {
"enabled": true,
"public_key": "你的公钥(客户端)",
"short_id": "你的shortId"
},
"utls": {
"enabled": true,
"fingerprint": "chrome"
}
},
"type": "vless",
"uuid": "你的UUID"
}性能优化
开启 BBR
BBR 是 Google 开发的 TCP 拥塞控制算法,能显著提升跨国网络速度:
sh
# 开启 BBR(需 root)
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 ✅优化内核参数
sh
cat >> /etc/sysctl.conf << EOF
# TCP 优化
net.ipv4.tcp_fastopen = 3
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# 连接优化
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
EOF
sysctl -p性能测试
部署完成后测试速度:
sh
# 安装 speedtest-cli
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | bash
apt install speedtest -y
# 测试
speedtest安全加固
防火墙配置
sh
# 只开放必要端口(SSH + Reality 端口)
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp # SSH
ufw allow 443/tcp # Reality
ufw enable
ufw statusSSH 安全加固
sh
# 修改 SSH 端口(可选但推荐)
sed -i 's/#Port 22/Port 22222/' /etc/ssh/sshd_config
systemctl restart sshd
# 禁用密码登录(仅密钥)
sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshdfail2ban 防暴力破解
sh
apt install fail2ban -y
systemctl enable fail2ban --now常见问题排查
1. 连接不通
检查项:
- 防火墙是否放行端口:
ufw status - Xray 是否在运行:
systemctl status xray - VPS IP 是否被墙:用 端口检测工具 测试
2. 速度慢
可能原因:
- 晚高峰国际线路拥塞 → 换 CN2 GIA
- 服务端未开 BBR → 按上文开启
- 客户端指纹(fingerprint)不匹配 → 检查设为
chrome
3. 端口已被占用
sh
# 查看谁占用了端口
lsof -i :443
# 如果是 Nginx,先停止
systemctl stop nginx4. Reality 目标网站不稳定
微软/苹果的 CDN 节点有时会变。如果连接失败,换一个稳定目标:
json
"dest": "www.cloudflare.com:443",
"serverNames": ["www.cloudflare.com"]推荐备选目标:
www.cloudflare.com— 最稳定的 CDNwww.amazon.com— AWS 全球节点www.google.com— 最可靠但也可能被投毒
5. 证书错误(TLS handshake failure)
检查 dest 和 serverNames 是否一致。Reality 要求目标网站真实可达,用 curl 测试:
sh
curl -v https://www.microsoft.com 2>&1 | grep "Server certificate"
# 应该能看到证书信息,说明 TLS 握手正常Reality vs 其他自建方案对比
| 方案 | 抗检测 | 配置难度 | 速度 | 推荐场景 |
|---|---|---|---|---|
| VLESS + Reality | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | 首选,通用场景 |
| VLESS + XTLS Vision | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | 需要极致速度 |
| Hysteria2 | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | 高丢包网络 |
| Trojan + TLS + WebSocket | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | 需要 CDN 中转 |
| Shadowsocks + V2Ray Plugin | ⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | 简单场景(不推荐) |
一句话建议:2026 年自建代理,首选 VLESS + Reality,抗检测和速度的平衡点。如果你追求更低的延迟或更好的晚高峰抗丢包表现,可以进一步了解 Hysteria2 / TUIC / AnyTLS 新协议部署。
延伸阅读
- Sing-box 全平台配置教程 — 客户端侧配置
- iOS 代理客户端全教程 — Shadowrocket 配置 Reality 节点
- VPS 流媒体解锁检测脚本 — 测试 IP 解锁能力
- Netflix 解锁检测终极指南 — VPS IP 能否看 Netflix
- Clash Meta 订阅配置指南 — 如果你不想自建
