之前有介绍过 caddy 的反代,这里写一下更通用的 Nginx 反代 V2Ray,这套方法与正常的建站流程没有多大区别,兼容性和可玩性更高。配合 Cloudflare 自选 ip ,甚至可以做到永久免疫高墙。

1.安装 V2Ray

先使用官方脚本安装,以后升级只需重复执行此命令。

bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

编辑修改 v2 的服务端配置。id 改成随机的,可以用 V2RayN 客户端生成或者在线工具生成,不建议直接搬运下面的,id 相当于密码。path 是网站目录,设置一个常见的数据传输路径,例如 /api。

nano /usr/local/etc/v2ray/config.json
{
  "log": {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
    "inbounds": [
        {
            "port": 12345,
            "listen":"127.0.0.1",
            "protocol": "vmess",
            "settings": {
                "clients": [
                    {
                        "id": "6768f908-d39f-424f-b3e7-c1b6b10fdf72",
                        "alterId": 64
                    }
                ]
            },
            "streamSettings": {
                "network": "ws",
                "wsSettings": {
                    "path": "/api"
                }
            }
        }
    ],
    "outbounds": [
        {
            "protocol": "freedom",
            "settings": {}
        }
    ]
}

重启 v2

service v2ray restart

最好也顺手查看下状态,有没有报错

service v2ray status

2.添加 Nginx 主机

这里适用于任何 Nginx 相关面板,例如 LNMP 、宝塔等。首先新建一个网站,然后修改网站的 Nginx 配置文件。宝塔面板有独立的反代设置项,可以单独修改。LNMP 需要从整站的配置文件中修改,LNMP 配置示例如下:

nano /usr/local/nginx/conf/vhost/example.com.conf

添加这一段反代配置,注意目录和端口与 v2ray 的配置保持一致。如果网站启用了 HTTPS ,这段配置应放在 ssl 的配置下面。

location /api {
    proxy_pass       http://127.0.0.1:12345;
    proxy_redirect             off;
    proxy_http_version         1.1;
    proxy_set_header Upgrade   $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host      $http_host;
}

然后重载 nginx

lnmp nginx reload

3.客户端设置

示例配置

地址:网站的域名
端口:网站开启了 HTTPS 就填443,不配置 https 就用默认的 80
用户ID:和服务端保持一致
额外ID:1
加密方式:auto
别名:写个自己喜欢的
底层传输协议:ws
伪装类型:none
伪装域名:直连域名或者域名配置了 CDN 的情况下可以不填,如果要使用中转线路,如AGA中转,这里要加上源站域名,即 example.com
路径:/api
底层传输安全:tls 跳过证书验证:false


4.网站首页

最后,网站首页你可以放置任意页面,或者 lnmp 和 宝塔 的默认首页也行,只要网站程序没有用到 /api 目录就不会发生冲突。