Vmess流量伪装成访问Nginx网站

胜天半子 发布于 19 天前


要创建多个这样的 VMess + WebSocket (WS) 节点,需要在 x-ui 面板Nginx 配置 中进行相应的修改。以下是同时管理多个节点的步骤:

1. x-ui 配置多个节点

x-ui 面板中,可以创建多个 VMess 节点。每个节点会有不同的 UUIDWebSocket 路径。可以为每个节点指定不同的配置。

假设想添加两个节点,分别命名为 "🇺🇸 US-1" 和 "🇬🇧 UK-1"。你需要:

  • x-ui 中分别为每个节点配置不同的 UUIDWebSocket 路径(比如 /us1/uk1)。
  • 设置节点对应的端口和协议,其他参数可以根据需要调整。

2. Nginx 配置多个 WebSocket 代理

Nginx 配置中,需要为每个节点添加一个 location 来处理 WebSocket 流量。每个节点会有不同的 WebSocket 路径,但它们都可以共享同一个 TLS 端口(443)。

例如,假设你有两个节点:

  • /us1 对应 "🇺🇸 US-1"
  • /uk1 对应 "🇬🇧 UK-1"

可以将它们配置在 Nginx 中如下:

修改后的 Nginx 配置

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    
......

    # 强制 HTTP 跳转 HTTPS
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }

    # SSL 配置
    ssl_certificate /www/server/panel/vhost/cert/......;
    ssl_certificate_key /www/server/panel/vhost/cert/......;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+AES128:EECDH+AES256:EECDH+CHACHA20:RSA+AES128:RSA+AES256:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497 https://$host$request_uri;

    # WebSocket 代理:US-1
    location /us1 {
        proxy_pass http://127.0.0.1:21000;  # 你的 V2Ray 监听端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        
        proxy_connect_timeout 10s;
        proxy_send_timeout 60s;
        proxy_read_timeout 300s;
        send_timeout 60s;
    }

    # WebSocket 代理:UK-1
    location /uk1 {
        proxy_pass http://127.0.0.1:21001;  # 另一个 V2Ray 监听端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        
        proxy_connect_timeout 10s;
        proxy_send_timeout 60s;
        proxy_read_timeout 300s;
        send_timeout 60s;
    }

    # 错误页配置
    error_page 404 /404.html;
    error_page 502 /502.html;

    # PHP 解析
    include enable-php-83.conf;

    # URL 重写规则
    include /www/server/panel/vhost/rewrite/......

    # 禁止访问某些文件
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md) {
        return 404;
    }

    # Let's Encrypt 证书验证目录
    location ~ \.well-known {
        allow all;
    }

    # 禁止在证书验证目录中存放敏感文件
    if ($uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$") {
        return 403;
    }

    # 静态资源缓存
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        expires 30d;
        error_log /dev/null;
        access_log /dev/null;
    }

    location ~ .*\.(js|css)?$ {
        expires 12h;
        error_log /dev/null;
        access_log /dev/null;
    }

    access_log /www/wwwlogs/......;
    error_log /www/wwwlogs/......;
}

总结

  1. 在 x-ui 面板中为每个节点配置不同的 UUIDWebSocket 路径
  2. 在 Nginx 配置中,为每个 WebSocket 路径添加单独的 location 块。
  3. 在 Clash 配置中,添加多个节点配置,并指向正确的 WebSocket 路径

这样,就可以管理和使用多个 VMess + WebSocket 节点。

遇挚友,如逢春,自此长明,天光大亮
最后更新于 2025-05-17