使用 NGINX 作为 V2Ray 连接的中继服务器中的正向代理

使用 NGINX 作为 V2Ray 连接的中继服务器中的正向代理

我目前住在伊朗,我们的网络受限。为了绕过国家防火墙,我们必须使用位于伊朗的 VPS 作为中继,连接到伊朗境外的 VPS 服务器。

许多人使用 V2Ray VPN,并使用配置了 IPTables 的中继将端口 80 和 443 上的连接转发到 VPS ips(请参阅此要旨

我没有配置 iptables,而是尝试使用 NGINX 来提出解决方案,以充当我和 Cloudflare CDN 后面的外部 VPS 之间的隧道代理。我的 nginx 配置如下:

server {
       server_name SERVER_IP;
       listen 80;
       set $proxy_host_address MY_DOMAIN.COM;
       location / {
         resolver 1.1.1.1;
         proxy_pass http://$proxy_host_address$request_uri;
         proxy_redirect off;
         #proxy_set_header X-Real-IP $remote_addr;
         #proxy_set_header Host $proxy_host_address;
       }
}

但这会重定向连接而不是转发连接,我该如何解决这个问题?

答案1

主要答案是proxy_redirect off;在位置部分使用。这是一个使用 NGINX 作为中继代理的示例Websocket 传输器

server {
    root  /var/www/html;
    server_name example.com;

    location /ws-random-path {
        proxy_redirect off;
        proxy_pass http://<v2ray-server-url>:<v2ray-server-port>;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        # Show real IP if you enable V2Ray access log
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
        proxy_ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    }

    location / {
       index index.htm index.html;
       autoindex on;
    }


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

代替示例.com用您的域名并更改v2ray 服务器网址v2ray 服务器端口使用您的 v2ray 服务器入站 IP 和端口。

我用了certbot激活受信任的 Let's Encrypt SSL 证书。

答案2

这根本行不通,因为你引用的要点是通过加密连接运行的,而你在这里使用的是纯 HTTP。无论你当前面临的问题是什么,这都无法帮助你绕过伊朗国家防火墙。

不要再重新发明轮子了。

相关内容