2026进阶443端口复用实战:Xray VLESS-Vision-REALITY 偷自己 + 反向代理回家指南

发布于 2026-05-24 16:30 1966 字 10 min read

服务器自动部署Astro博客指南2026进阶443端口复用实战:Xray VLESS-Vision-REALITY 偷自己 + 反向代理回家指南使用 Cloudflare Workers 搭建安全的 Clash Proxy ProviderXray VLESS-Vision-REALITY 反向代理示例:远程端口映射,将公网入口端口映射到内网 Web 服务从零开始玩转 OpenWrt 2026:进阶网络架构与 Nikki 极速配置指南2026 自建节点实战:Xray VLESS-Vision-REALITY 部署指南AI 角色扮演进阶指南:从 SillyTavern 部署到 Telegram 接入从 WordPress 到 Astro 迁移记录ImmortalWrt固件overlay扩容安装指南基于mihomo内核的OpenWrt插件Nikki推荐yaml配置OpenWrt 插件 Passwall 推荐设置指南Cloudflare简易使用指南WordPress 网站向 Jekyll 静态博客迁移全记录OpenWrt 插件 OpenClash 推荐配置指南OpenWrt插件Passwall开启ipv6推荐配置OpenWrt插件Passwall推荐配置指南OpenWrt桥接后访问光猫方法PVE下快速更新OpenWrt固件方法群晖 Docker 容器版 Emby 添加弹弹 play 弹幕实战群晖 NAS 常用 Docker Compose 项目部署汇总群晖 Docker 开启 IPv6 双栈与 OpenWrt 协同配置指南软路由刷 PVE 并安装 OpenWrt 折腾记录群晖开启 macvlan 网络并通过 compose 命令安装 docker 指定 ip家庭网络布局:玩转 PT 与 Docker macvlan 避坑指南在本地运行 docker 连接 api 更稳定使用 chatGPT 服务网站添加石蒜模拟器OpenWrt建议设置(个人备份)家庭网络布局:群晖 VMM 虚拟机安装 OpenWrt 旁路由实战群晖种草教程——从玩机到佛系(自用备份版)一加3T手机刷机及安卓必备系统优化软件推荐利用 phpMyAdmin 指令将 WordPress 网站快速 HTTPS 化利用 Docker 快速安装 Aria2 + AriaNg 教程给 WordPress、Typecho、Emlog 等博客网站添加鼠标点击文字特效Windows 10 快捷方式小箭头去除与恢复指南自动化备份指南:利用 Dropbox Uploader 实现网站数据与 SQL 数据库同步Linux学习笔记(二)Linux学习笔记(一)建站之旅其四:常用命令与参考资料汇总建站之旅其一:一些想法建站之旅其二:从 VPS 科学上网到自建站的萌芽建站之旅其三:多次尝试与一次挫败
本文记录如何实现极致的 443 单端口全能复用:通过 Xray VLESS-Vision-REALITY 优雅地“偷自己”的网站证书,同时利用多用户隔离机制,在不额外暴露端口的前提下,完美集成内网穿透与反向代理(Reverse Proxy)回家,打造集正向代理、私有内网穿透、合法 Web 建站于一体的隐蔽魔法通道。

一、 安装配置 Nginx,构建静态网页

传统的 REALITY 架构通常选择“偷”别人的知名网站(如微软或苹果),然而最完美的隐蔽方案其实是“偷自己”——使用你自己拥有的合法域名搭建一个真实的 Web 网站。当非代理流量(如敏感探测或正常访客)访问 443 端口时,Xray 会无缝回落给本地 Nginx 服务。

1.1 安装 Nginx 基础环境

首先,在公网 VPS 上更新包管理器并安装 Nginx。

sudo apt update && sudo apt install nginx

1.2 模拟并构建高仿真静态网页

为了让回落后的网站看起来足够真实,我们可以使用 Python 的 Playwright 自动化工具,直接将你喜欢的目标网站(例如一个公开的云盘界面或技术博客)的完整渲染结果“扒”下来,作为你网站的首页伪装。

首先安装环境依赖:

pip install playwright
playwright install

接着,编写并运行以下扒站脚本:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    # 填入你想要模仿/复制的目标伪装网站
    page.goto("https://中意的网站域名")

    # 获取页面渲染后的完整 HTML 内容
    html_content = page.content()

    # 将内容写入到本地静态网页中
    with open("index.html", "w", encoding="utf-8") as f:
        f.write(html_content)

    print("网页源代码已成功保存为 index.html")
    browser.close()

将生成的 index.html 移动并替换到 Nginx 默认的静态目录 /var/www/html/index.html,也可使用 sudo nano /var/www/html/index.html 来修改。

1.3 配置进阶版的防探测 Nginx

使用 nano /etc/nginx/nginx.conf 编辑 Nginx 主配置文件。这份配置中,我们做了以下高级安全优化:

  1. 强制 80 跳转:所有 HTTP 流量重定向至 HTTPS。
  2. 防主动探测:独立出一个空的 default_server,当探测者直接用 IP 或恶意域名嗅探时,利用 ssl_reject_handshake on 强制拒绝 SSL 握手。
  3. 真实 IP 还原:配置 proxy_protocol 接收前置 Xray 透传的真实访客 IP。
user nginx;
worker_processes auto;

error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    # 托管静态网页必须引入 mime.types,否则网页可能无法正常渲染
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    # 优化了日志格式,加入了由 PROXY protocol 传递过来的真实访客 IP ($proxy_protocol_addr)
    log_format main '$proxy_protocol_addr - - [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
    access_log /var/log/nginx/access.log main;

    # 80 端口强制跳转 HTTPS
    server {
        listen 80;
        listen [::]:80;
        return 301 https://$host$request_uri;
    }

    # 默认服务,用于防探测:拒绝非目标域名的别有用心的 SSL 握手
    server {
        listen                  127.0.0.1:8001 ssl proxy_protocol default_server;

        ssl_reject_handshake    on;
        ssl_protocols           TLSv1.2 TLSv1.3;
        ssl_session_timeout     1h;
        ssl_session_cache       shared:SSL:10m;
    }

    # 你的主网站配置
    server {
        listen                     127.0.0.1:8001 ssl proxy_protocol;
        # 注意:http2 on 指令仅支持 Nginx 1.25.1+。若是老版本,请删除此行并在上方 listen 后面加上 http2
        http2                      on;

        # 接收并还原来自前置代理 (Xray) 的真实访客 IP
        set_real_ip_from           127.0.0.1;
        real_ip_header             proxy_protocol;

        # 你的合法域名
        server_name                你的公网建站域名;

        # 你通过 acme.sh 申请并安装到指定目录的证书路径
        ssl_certificate            /etc/ssl/xray/cert.pem;
        ssl_certificate_key        /etc/ssl/xray/privkey.key;

        ssl_protocols              TLSv1.2 TLSv1.3;
        ssl_ciphers                TLS13_AES_128_GCM_SHA256:TLS13_AES_256_GCM_SHA384:TLS13_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305;
        ssl_prefer_server_ciphers  on;

        ssl_stapling               on;
        ssl_stapling_verify        on;
        resolver                   1.1.1.1 valid=60s;
        resolver_timeout           2s;

        # 网站根目录配置:指向你的 HTML 文件所在位置
        root                       /var/www/html;
        index                      index.html;

        # 静态文件路由
        location / {
            try_files $uri $uri/ =404;
        }
    }
}

1.4 应用并测试 Nginx 服务

在重启服务前,确保系统中存在低权限的独立 nginx 用户,保障运行安全:

# 测试配置文件是否有语法错误
nginx -t

# 创建不可登录的无家目录 nginx 专用系统用户
useradd -s /sbin/nologin -M nginx

# 重启 Nginx 服务并使其开机自启
systemctl restart nginx

二、 acme 获取证书

由于你是真正通过域名对外建立 Web 访问,本地 Nginx 在处理非代理请求时作为真实的 TLS 服务端,因此必须为其配置受信任的 HTTPS 证书。

2.1 安装 acme.sh 脚本

wget -O -  https://get.acme.sh | sh
. .bashrc
# 将默认证书签发机构设为更为稳定的 Let's Encrypt
acme.sh --set-default-ca --server letsencrypt

2.2 使用 Cloudflare DNS API 签发 ECC 证书

在此我们使用 DNS API 验证方式。请事先在 Cloudflare 后台获取你具有该域名区域 DNS 编辑权限的 API 令牌,将服务器的 ipv4/ipv6 的公网 IP 添加到你想要映射的域名的 A/AAAA 记录上(记得关闭小云朵),然后将 API_Token 导出到环境变量:

# 执行证书签发
CF_Token="你的Cloudflare_API_Token" acme.sh --issue -d 你的公网建站域名 --dns dns_cf --keylength ec-256 --force

2.3 规范安装证书到指定目录

指定存储证书的专用目录,并通知 acme.sh 自动将其安装并保持后续自动续期:

acme.sh --installcert -d 你的公网建站域名 --ecc --fullchain-file /etc/ssl/xray/cert.pem --key-file /etc/ssl/xray/privkey.key

三、 Xray 443 单端口复用配置

本架构的核心突破在于:利用一个外部 443 端口,通过两个逻辑隔离的 UUID,同时处理科学上网的正向代理、以及内网穿透的反向代理流量

3.1 外网公网服务端配置

在此服务端配置中:

  • clients[0] 用于你的手机、电脑等设备的正向科学上网通道。
  • clients[1] 绑定了 reverse 属性,专门用于等待内网设备回家建立反向穿透隧道
  • realitySettings.target 指向本地的 127.0.0.1:8001 并开启了 xver: 1,将所有非代理的正常建站访问完美回落给 Nginx。

使用 nano /usr/local/etc/xray/config.json 编辑配置文件。

{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "listen": "::",
      "port": 443,
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            "id": "你的第一个用于日常科学上网的用户UUID",
            "flow": "xtls-rprx-vision"
          },
          {
            "id": "你的第二个专属用于反向代理内网穿透的用户UUID",
            "flow": "xtls-rprx-vision",
            "reverse": {
              "tag": "reverse-out"
            }
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "raw",
        "security": "reality",
        "realitySettings": {
          "target": "127.0.0.1:8001",
          "xver": 1,
          "serverNames": ["你的公网建站域名"],
          "privateKey": "你的服务端REALITY私钥_可通过xray_x25519生成",
          "shortIds": ["你的REALITY_shortId_16位十六进制"]
        }
      }
    },
    {
      "listen": "::",
      "port": 18789,
      "protocol": "tunnel",
      "tag": "portal",
      "settings": {
        "allowedNetwork": "tcp",
        "followRedirect": false
      }
    }
  ],
  "routing": {
    "rules": [
      {
        "inboundTag": ["portal"],
        "outboundTag": "reverse-out"
      }
    ]
  },
  "outbounds": [
    {
      "protocol": "freedom"
    }
  ]
}

3.2 内网客户端(穿透端)配置

部署在你家中的软路由、NAS 或内网服务器上的 Xray 客户端配置。它会主动通过 443 端口去连接公网 VPS,并利用专属的内网反代 UUID 握手成功后建立反向代理隧道。

{
  "routing": {
    "rules": [
      {
        "inboundTag": ["reverse-in"],
        "outboundTag": "reverse-direct"
      }
    ]
  },
  "outbounds": [
    {
      "protocol": "freedom"
    },
    {
      "protocol": "freedom",
      "tag": "reverse-direct",
      "settings": {
        "redirect": "你的内网目标设备IP_如192.168.2.1:18789",
        "finalRules": [
          {
            "action": "allow",
            "network": "tcp",
            "ip": ["你的内网目标设备IP_如192.168.2.1"],
            "port": "18789"
          }
        ]
      }
    },
    {
      "protocol": "vless",
      "settings": {
        "address": "你的公网VPS服务器IP或对应解析的域名",
        "port": 443,
        "id": "你的第二个专属用于反向代理内网穿透的用户UUID",
        "encryption": "none",
        "flow": "xtls-rprx-vision",
        "reverse": {
          "tag": "reverse-in",
          "sniffing": {
            "enabled": true,
            "destOverride": ["http", "tls", "quic"]
          }
        }
      },
      "streamSettings": {
        "network": "raw",
        "security": "reality",
        "realitySettings": {
          "serverName": "你的公网建站域名",
          "password": "你的客户端REALITY公钥_对应服务端的私钥",
          "shortId": "你的REALITY_shortId_16位十六进制",
          "fingerprint": "chrome"
        }
      }
    }
  ]
}

3.3 重启与部署验证

配置完成后,分别在公网服务端以及内网客户端上重启 Xray 进程,使其生效:

systemctl restart xray

验证方法:当反向穿透隧道成功打通后,你在外网环境访问你公网 VPS 的 18789 端口时,Xray 服务端会把流量引入 reverse-out 隧道,内网客户端收到后通过 reverse-direct 无感反代重定向至你家中的内网目标服务。同时,如果用普通浏览器通过 HTTPS 访问你的 443 端口,呈现出来的则是完美的仿真伪装网站!

喜欢的话,留下你的评论吧~