• home > tools > NetTools > FirewallProxy >

    真站伪装双层隐:Xray + VLESS + Reality + Nginx

    Author:zhoulujun Date:

    REALITY 通过“借用”真实存在的网站(例如 www microsoft com),让防火墙在探测时,得到的是微软官方的真实反馈。如果你的服务器已经有域名,就让Xray转发一下到nginx,只需要改一下nginx端口即可。

    上篇网站代理指北: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 协议:VMessVLESS + 传统 TLS 协议。

    • 指纹识别:早期的 TLS 翻墙流量在握手阶段(Client Hello)会有非常细微的特征(指纹)。GFW 通过大数据分析,可以识别出这是由 Xray 产生的流量,而不是真正的 Chrome 或 Safari 浏览器在访问网站。

    • 封锁手段:一旦指纹匹配成功,哪怕流量是加密的,墙也可以直接阻断连接。

    现在的核心逻辑从“模仿网站”变成了**“寄生在真网站上”**。

    • 它不再失效的原因:它不再“模仿”HTTPS,而是直接**“借用”**别人的身份。当你连接服务器时,GFW 看到的握手信息完全属于 www.microsoft.comwww.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 的存在。

    • 证书自动更新不受影响:如果你使用 certbotacme.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