使用 VLESS + Reality + XTLS-Vision 协议,在自己的 VPS 上搭建代理服务,国内直连,国外走日本出口,流量完全伪装。
你的电脑(Windows)
│
├─── 访问 百度 / 淘宝 / 微信 ────────────────→ 直接连接(不走代理)
│
└─── 访问 Google / YouTube / Twitter ──→ 日本 VPS ──→ 目标网站
↑ ↑
Clash Verge Rev Xray-core 服务端
(客户端,做分流) (代理出口,做转发)
| 要求 | 传统方案(VMess/SS) | 本方案(VLESS + Reality) |
|---|---|---|
| 流量伪装 | 特征明显,容易被识别 | 复用真实域名的 TLS 证书,外部看起来是正常 HTTPS 访问 |
| 加密强度 | 自定义加密,强度参差不齐 | TLS 1.3,业界最高标准 |
| 完整流量 | 二次加密导致特征叠加 | XTLS-Vision 内层 TLS 透传,无二次损耗 |
| 指纹伪装 | 无 | uTLS 模拟真实浏览器(Chrome/Firefox)的 TLS ClientHello |
普通审查设备看到的流量:
┌────────────────────────────────────────────────────────┐
│ Client Hello → SNI: blog.pophcc.com │
│ Server Hello → 使用 blog.pophcc.com 的真实 TLS 证书 │
│ → 判断:正常的 HTTPS 访问,放行 │
└────────────────────────────────────────────────────────┘
实际发生的事:
┌────────────────────────────────────────────────────────┐
│ 客户端在 TLS 握手中携带了 shortId(隐藏标识符) │
│ 服务端验证通过 → 建立 VLESS 代理隧道 │
│ 没有 shortId 的普通访问 → 正常回落到真实网站 │
└────────────────────────────────────────────────────────┘
| 项目 | 要求 | 备注 |
|---|---|---|
| 位置 | 境外 VPS(日本、香港、新加坡等) | 国内 VPS 无效 |
| 系统 | Ubuntu 20.04 / 22.04 / 24.04 | Debian 也可以 |
| 配置 | 最低 1核 512MB 内存 | Xray 占用极少 |
| 权限 | root 或 sudo 权限 | 需要安装软件 |
| 开放端口 | 至少能开放一个自定义 TCP 端口 | 本教程用 8443 |
Reality 需要借用一个真实域名的 TLS 证书做伪装。要求:
ℹ️ 最简单的方法:如果你的 VPS 上已经跑了一个 HTTPS 网站,直接用自己的域名,不需要借用别人的。这样安全性更高,本教程也是这么做的。
⚠️ 如果没有自己的域名,可以借用境外知名网站,例如 www.lovelive-anime.jp(日本动画官网,TLS 1.3 + H2)。但不建议用国内域名。
| 项目 | 要求 |
|---|---|
| 系统 | Windows 10 或 Windows 11(64位) |
| 网络 | 能正常上国内网即可 |
ℹ️ 以下命令全部在 VPS 的 SSH 终端中执行,不是在 Windows 电脑上。
Xray 官方提供了一键安装脚本,会自动安装最新版并注册为系统服务:
# 下载并执行官方安装脚本 bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
安装过程大约 1 分钟,看到以下输出表示成功:
info: Xray v26.x.x is installed. info: Enable and start the Xray service
# 查看版本 xray --version # 查看服务状态(应显示 active (running)) systemctl status xray
安装后 Xray 的相关路径:
| 路径 | 说明 |
|---|---|
/usr/local/bin/xray | 可执行文件 |
/usr/local/etc/xray/config.json | 主配置文件(我们主要编辑这个) |
/var/log/xray/ | 日志目录 |
Reality 协议需要三个关键参数,全部通过 Xray 命令生成,不要自己随便填写。
xray x25519
输出示例(你的结果会不同,请保存好,后面要用):
PrivateKey: wI8PaoQfFMzFMqQangwiykCNfwv-UpM7ZfBn1KSnN1o ← 服务端用,私钥,不要泄露 Password (PublicKey): WpLWSo__hEm_zfo6U0OMC3wewmL40v_6FBM8Tz3hTRc ← 客户端用,公钥,可以公开
xray uuid
输出示例:
b67b4f5d-8e5c-4c6f-997b-b2377909dac1 ← 用户 ID,服务端和客户端都要填
openssl rand -hex 8
输出示例:
7594d8ff205b2bdb ← shortId,16位十六进制,服务端和客户端都要填
⚠️ 把上面三步的结果都记下来,接下来写配置文件时会用到。不同机器生成的值不同,请用自己生成的,不要复制本教程中的示例值。
| 参数名 | 示例值 | 用途 |
|---|---|---|
| PrivateKey | wI8PaoQ... | 服务端配置专用,绝对保密 |
| PublicKey | WpLWSo... | 客户端配置填写 |
| UUID | b67b4f5d-... | 服务端和客户端都要填,必须一致 |
| shortId | 7594d8ff205b2bdb | 服务端和客户端都要填,必须一致 |
# 用 nano 编辑器打开(方向键移动,Ctrl+O 保存,Ctrl+X 退出) nano /usr/local/etc/xray/config.json # 或者用 vim vim /usr/local/etc/xray/config.json
删除原有内容,粘贴以下配置,然后将 紫色标注 的部分替换为你自己生成的值:
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 8443, // ← 监听端口,可改为其他端口(1024-65535)
"protocol": "vless",
"settings": {
"clients": [
{
"id": "YOUR-UUID-HERE", // ← 替换为你的 UUID
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "你的伪装域名:443", // ← 替换为你的伪装域名,如 blog.example.com:443
"xver": 0,
"serverNames": [
"你的伪装域名" // ← 替换为你的伪装域名,如 blog.example.com
],
"privateKey": "YOUR-PRIVATE-KEY", // ← 替换为 xray x25519 生成的 PrivateKey
"shortIds": [
"YOUR-SHORT-ID", // ← 替换为 openssl rand -hex 8 生成的值
""
]
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls", "quic"]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
}
]
}
⚠️ JSON 格式要求严格,注意:
· 不能有多余的逗号(最后一项后面不加逗号)
· 所有引号必须是英文双引号 ",不能是中文引号
· 上面配置中的 // 注释 是说明文字,实际写配置时请删掉注释行
# 测试配置文件语法是否正确 xray run -test -config /usr/local/etc/xray/config.json # 看到 "Configuration OK." 表示格式正确
systemctl restart xray # 确认运行状态(应显示 active (running)) systemctl status xray # 确认端口已在监听 ss -tlnp | grep 8443
看到以下输出表示 Xray 已正常监听 8443 端口:
LISTEN 0 4096 *:8443 *:* users:(("xray",...)) ← 看到这行就对了
# 放行 8443 端口(如果你改了端口,替换 8443 为你的端口) ufw allow 8443/tcp # 确认放行 ufw status | grep 8443
iptables -A INPUT -p tcp --dport 8443 -j ACCEPT iptables-save > /etc/iptables/rules.v4
ℹ️ 部分 VPS 厂商(如腾讯云、阿里云)还需要在控制面板的安全组里额外放行端口,SSH 进去改防火墙还不够。具体操作在各厂商控制面板的"安全组"或"防火墙"选项里。
在你的 Windows 电脑上,打开 PowerShell,执行:
# 替换 your.vps.ip 为你 VPS 的实际 IP Test-NetConnection -ComputerName your.vps.ip -Port 8443
看到 TcpTestSucceeded : True = 端口可达 ✅
ℹ️ 必须使用 Clash Verge Rev(内核为 Mihomo),普通 Clash for Windows 不支持 Reality 协议。
前往官方 GitHub 下载,或点击以下链接:
👉 https://github.com/clash-verge-rev/clash-verge-rev/releases/latest
在 Assets 列表中下载 Clash.Verge_x.x.x_x64-setup.exe(64位 Windows)
.exe 安装包新建一个文本文件,命名为 config.yaml,内容如下,将 紫色标注 部分替换为你自己的值:
mixed-port: 7890 allow-lan: false mode: rule log-level: warning ipv6: false dns: enable: true ipv6: false enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 nameserver: - https://dns.alidns.com/dns-query # 国内 DNS,解析国内域名 - https://doh.pub/dns-query fallback: - https://1.1.1.1/dns-query # 境外 DNS,解析国外域名 - https://8.8.8.8/dns-query fallback-filter: geoip: true geoip-code: CN proxies: - name: Japan-VPS # 节点名称,可以改 type: vless server: YOUR.VPS.IP.ADDRESS # ← 替换为你 VPS 的 IP 地址 port: 8443 # ← 和服务端 port 一致 uuid: YOUR-UUID-HERE # ← 替换为你生成的 UUID flow: xtls-rprx-vision tls: true udp: true network: tcp reality-opts: public-key: YOUR-PUBLIC-KEY # ← 替换为 xray x25519 生成的 PublicKey short-id: YOUR-SHORT-ID # ← 替换为 openssl rand -hex 8 生成的值 servername: 你的伪装域名 # ← 替换为伪装域名,如 blog.example.com client-fingerprint: chrome # 指纹伪装为 Chrome,也可填 firefox / safari proxy-groups: - name: Proxy type: select proxies: - Japan-VPS - DIRECT rules: - GEOSITE,private,DIRECT # 局域网直连 - GEOIP,private,DIRECT,no-resolve - GEOSITE,cn,DIRECT # 国内域名直连 - GEOIP,cn,DIRECT,no-resolve # 国内 IP 直连 - MATCH,Proxy # 其余全部走代理
config.yaml在 Clash Verge Rev 的 "代理" 页面,点击 Japan-VPS 旁边的 ⚡ 图标测速。显示毫秒数 = 正常,显示超时 = 检查配置。
打开浏览器,访问 https://ip.sb,应显示你 VPS 的日本 IP。
访问 https://www.baidu.com,速度和平时一样 = 国内流量正常直连。
# 查看 Xray 实时日志(有连接时会有输出) journalctl -u xray -f # 查看当前连接数 ss -tnp | grep xray | wc -l
检查 config.json 中是否有:多余的逗号、中文引号、漏掉的引号或括号。建议把内容粘贴到 jsonlint.com 在线验证。
# 查看详细错误信息 journalctl -u xray -n 50 --no-pager
按顺序排查:
ufw status)systemctl status xray)在 Clash Verge Rev 设置中开启 TUN 模式,可以接管系统全部流量,包括不支持系统代理的程序。
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install systemctl restart xray
在 config.json 的 clients 数组中添加新条目:
"clients": [ { "id": "第一个用户的UUID", "flow": "xtls-rprx-vision" }, { "id": "第二个用户的UUID", // xray uuid 再生成一个 "flow": "xtls-rprx-vision" } ]