Pages

Saturday, 26 January 2019

通过公网的单端口服务器的v2ray内网穿透

想起v2ray 4.0+已经支持了反代功能。只需要在NAS和服务器间建立起连接就行,这时有没有想起v2ray+tls+ws+nginx的组合?
思路很简单,套用v2ray网站的示意图来说明一下:
A为nas,B为nginx监听443端口的公网服务器。A、B之间的通道采用WebSocket+TLS+Web方式建立,其他都可以参照白话教程“反向代理/内网穿透”来搭建。需要注意的是B上运行多站点,需要用反代来区分流量,我这里设定了二级目录来区分站点,公网域名https://xxx.com/nas/指向内网nas的5001端口。nginx相关配置如下,10000是v2ray reverse需要用到的端口:
upstream nas {
  server 127.0.0.1:10000;
}
server {
...
    location /nas/ {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass https://nas/;
    }
...
}

更新利用多portals/bridges对来实现5001与443端口反代,这样就可以在群晖中开启应用程序门户,使用别名来区分各个应用。
只需要在v2ray中增加一对443端口反代的protal/bridge对,通道仍使用WTW通道,nginx中开启各个应用的二级目录反代至v2ray新增的监听端口(例如11000)即可。
nginx相关配置增加一块drive:
server {
...
    location /drive/ {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass https://127.0.0.1:11000;
    }
...
}


No comments:

Post a Comment