真站伪装双层隐:Xray + VLESS + Reality + Nginx
Author:zhoulujun Date:
上篇《网站代理指北:Trojan + Nginx》,但是目前Trojan已经跟不上G-F+W的步伐了
传统的 Trojan 即使伪装得再好,防火墙(GFW)可以通过模拟客户端向你的服务器发送不规范的数据包。如果你的服务器响应了证书信息,或者在处理非 Trojan 流量时表现异常,就会被标记。
GFW现在会使用**“主动探测”**。当它发现一个 IP 长期有大流量的 HTTPS 握手时,它会模拟一个浏览器去访问你的 443 端口。
如果你的 Nginx 配置不完美(比如证书链不全、对异常请求的响应与标准 web 服务器不符),或者你使用的证书是自动生成的廉价证书,GFW 的机器学习模型就能判断出这不是一个“正经网站”,从而封锁 IP 或端口。
REALITY 通过“借用”真实存在的网站(例如 www.microsoft.com),让防火墙在探测时,得到的是微软官方的真实反馈,从而实现完美的隐身。
相比Trojan,告别域名和证书,这是 REALITY 最受欢迎的一点。
省钱:不用每年花钱续费域名。
省事:不需要折腾
acme.sh续签证书,也不用担心 Nginx 配置文件因为证书失效而报错。隐私:域名备案或购买记录有时会指向个人身份,REALITY 消除了这一风险。
Xray 独有的 XTLS 技术(REALITY 架构的一部分)可以减少数据的二次加密开销,在处理 4K 视频等大流量时,CPU 占用更低,速度更接近物理带宽极限。
Trojan-go 的唯一优势在于多通道支持(如 Websocket/Cloudflare CDN 转发)。如果你需要通过 CDN 来救活被墙的 IP,Trojan-go 配合 Nginx 的方案更成熟。
如果你已经有了一个非常稳定的 Nginx 网站,且证书自动更新脚本跑得很稳,继续用 Trojan 也没问题,直到它被针对。
但如果你的 VPS IP 目前是健康的,REALITY 是目前的终极方案。
老旧的 VMess 或 VLESS + 传统 TLS 协议:VMess 或 VLESS + 传统 TLS 协议。
指纹识别:早期的 TLS 翻墙流量在握手阶段(Client Hello)会有非常细微的特征(指纹)。GFW 通过大数据分析,可以识别出这是由 Xray 产生的流量,而不是真正的 Chrome 或 Safari 浏览器在访问网站。
封锁手段:一旦指纹匹配成功,哪怕流量是加密的,墙也可以直接阻断连接。
现在的核心逻辑从“模仿网站”变成了**“寄生在真网站上”**。
它不再失效的原因:它不再“模仿”HTTPS,而是直接**“借用”**别人的身份。当你连接服务器时,GFW 看到的握手信息完全属于
www.microsoft.com或www.apple.com。无法封锁:除非墙把微软或苹果的官网封了,否则它无法在不误伤大厂服务的情况下断开你的连接。这就是为什么在 2026 年,REALITY 被认为是最稳的方案。
Xray REALITY部署方案
在 CentOS 9 上,推荐使用官方脚本安装,它会自动处理环境变量和 Systemd 服务。
# 切换到 root 用户并执行安装脚本 bash <(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)
生成 REALITY 所需的密钥
REALITY 需要一对专用的私钥和公钥。执行以下命令并记下输出结果:
xray x25519
输出:
Private key: XXXXX Public key: XXXXX
Private key: (用于服务端配置)
Public key: (用于客户端连接)
生成UUID
xray uuid
修改配置文件 /usr/local/etc/xray/config.json。这个配置会让 Xray 监听 8443 端口,并“借用” www.microsoft.com 的身份。
{
"inbounds": [
{
"port": 8443,
"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", "microsoft.com"],
"privateKey": "你的私钥",
"shortIds": ["你的8位随机字符(如1a2b3c4d)"]
}
}
}
],
"outbounds": [{"protocol": "freedom"}]
}最好改为443端口,然后把此服务器已经的网站改为 监听本地14443
这样配置可以这样改:
{
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [{ "id": "你的UUID", "flow": "xtls-rprx-vision" }],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "127.0.0.1:12345", // 关键:指向 Nginx 的端口
"xver": 0,
"serverNames": ["你的域名.com", "www.microsoft.com"], // 包含你自己的域名
"privateKey": "你的私钥",
"shortIds": ["你的8位字符"]
}
},
"sniffing": { "enabled": true, "destOverride": ["http", "tls"] }
}
],
"outbounds": [{ "protocol": "freedom" }]
}修改nginx配置
server {
# 原来是 listen 443 ssl;
# 现在改为只监听本地,且开启 proxy_protocol 以获取访客真实 IP(可选)
listen 127.0.0.1:12345 ssl;
server_name yourdomain.com; # 你的原域名
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
# ... 其他原有配置不变 ...
}对于服务器的请求,先经过Xray,如果在转发的到nginx服务器
隐蔽性极强:由于 443 端口确实运行着一个真实的 Nginx 网站,且证书完全匹配,防火墙无论怎么扫描,看到的都是一个真实的网站。
无感切换:普通用户访问你的域名,感觉不到 Xray 的存在。
证书自动更新不受影响:如果你使用
certbot或acme.sh续签证书,它们通常使用 80 端口进行验证,或者通过 Nginx 转发,这与 443 端口的 Xray 逻辑不冲突。
如果你有多个域名,就配置多个
{
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [{ "id": "你的UUID", "flow": "xtls-rprx-vision" }],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "127.0.0.1:12345",
"xver": 0,
"serverNames": [
"zhoulujun.cn",
"zhoulujun.com",
"zhoulujun.net",
"www.microsoft.com"
],
"privateKey": "你的私钥",
"shortIds": ["你的8位字符"]
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
}
}
],
"outbounds": [{ "protocol": "freedom" }]
}
转载本站文章《真站伪装双层隐:Xray + VLESS + Reality + Nginx》,
请注明出处:https://www.zhoulujun.cn/html/tools/NetTools/throughGFW/9769.html