Ubuntu Server 配置 Project V(V2Ray):WebSocket+Nginx+TLS

使用 HTTP/2 模式的方法:Ubuntu Server 配置 Project V:HTTP/2

注意:如果你是新装好的 VPS 请先更新源和软件后再开始操作。

Ubuntu 更新源和软件
sudo apt-get update && sudo apt-get upgrade

以「Ubuntu Server 16.04」系统和「baidu.sb 」域名为例为例

一、V2Ray

安装 V2Ray
bash <(curl -L -s https://install.direct/go.sh)
配置 V2Ray
sudo vim /etc/v2ray/config.json

此处主要是修改「inbound」下的「port」修改为「10000」,记录下你的「id」值不要直接套用我的,以及新添加「streamSettings」相关内容,主要是「wsSettings」内的相关设置

修改 V2Ray 配置
{
  "log": {
    "access": "/var/log/v2ray/access.log", 
    "error": "/var/log/v2ray/error.log", 
    "loglevel": "warning"
  }, 
  "inbound": {
    "port": 10000, 
    "protocol": "vmess", 
    "settings": {
      "clients": [
        {
          "id": "a3482e88-686a-4a58-8126-99c9df64b7bf", 
          "level": 1, 
          "alterId": 64
        }
      ]
    }, 
    "streamSettings": {
      "network": "ws", 
      "wsSettings": {
        "path": "/fuckbaidu/"
      }
    }
  }, 
  "outbound": {
    "protocol": "freedom", 
    "settings": { }
  }, 
  "outboundDetour": [
    {
      "protocol": "blackhole", 
      "settings": { }, 
      "tag": "blocked"
    }
  ], 
  "routing": {
    "strategy": "rules", 
    "settings": {
      "rules": [
        {
          "type": "field", 
          "ip": [
            "geoip:private"
          ], 
          "outboundTag": "blocked"
        }
      ]
    }
  }
}

将以上内容替换到你服务器上的「config.json」

重启 V2Ray
sudo systemctl restart v2ray

二、域名与证书

首先你需要一个域名,可以买或者申请 tk 等免费域名

可以用 Let’s Encrypt 或 acme.sh 或者申请免费证书,将获得的证书文件放置在

/etc/v2ray/v2ray.crt(即 .pem 文件)
/etc/v2ray/v2ray.key

可使用命令 sudo vim /etc/v2ray/v2ray.crt 粘贴证书内容保存(如果你不会上传文件等操作)。

acme.sh 生成证书方法

安装 acme.sh
sudo apt-get install socat
curl  https://get.acme.sh | sh

以下的命令会临时监听 80 端口,请确保执行该命令前 80 端口没有使用

生成证书
sudo ~/.acme.sh/acme.sh --issue -d baidu.sb --standalone -k ec-256

将证书和密钥安装到 /etc/v2ray 中

移动证书到配置目录
sudo ~/.acme.sh/acme.sh --installcert -d baidu.sb --fullchainpath /etc/v2ray/v2ray.crt --keypath /etc/v2ray/v2ray.key --ecc

三、Nginx

安装 Nginx
sudo apt-get install nginx
配置 Nginx
sudo vim /etc/nginx/sites-available/default
修改 Nginx 配置
server {
  listen  443 ssl;
  ssl on;
  ssl_certificate       /etc/v2ray/v2ray.crt;
  ssl_certificate_key   /etc/v2ray/v2ray.key;
  ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers           HIGH:!aNULL:!MD5;
  server_name           baidu.sb;
  location /fuckbaidu/ {
        proxy_redirect off;
        proxy_pass http://127.0.0.1:10000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        }
}

其中的「server_name」的值改成你证书对应的域名,另外「location /fuckbaidu/」在相关「location」后添加即可(这里主要是搭建自己的网站或者伪装站点),其中的「/fuckbaidu/」对应 V2Ray 中的路径。

重启 Nginx
service nginx restart

四、客户端

鉴于搭个服务端都让不少人吐血了,首先推荐的自然是图形化客户端:

macOS:V2RayX

iOS:Kitsunebi | Kitsunebi Lite | Shadowrocket

Android:V2RayNGBifrostV

Windows:V2RayN

如果你还是执意自己配,那么请往下看…

V2Ray 客户端 config.json
{
  "log": {
    "loglevel": "warning"
  }, 
  "inbound": {
    "port": 1080, 
    "listen": "0.0.0.0", 
    "protocol": "socks", 
    "settings": {
      "auth": "noauth", 
      "udp": true, 
      "ip": "127.0.0.1"
    }
  }, 
  "outbound": {
    "protocol": "vmess", 
    "settings": {
      "vnext": [
        {
          "address": "baidu.sb", 
          "port": 443, 
          "users": [
            {
              "id": "a3482e88-686a-4a58-8126-99c9df64b7bf", 
              "alterId": 64, 
              "security": "auto"
            }
          ]
        }
      ]
    }, 
    "mux": {
      "enabled": true
    }, 
    "streamSettings": {
      "network": "ws", 
      "security": "tls", 
      "tlsSettings": {
        "serverName": "baidu.sb", 
        "allowInsecure": true
      }, 
      "wsSettings": {
        "path": "/fuckbaidu/"
      }
    }
  }, 
  "outboundDetour": [
    {
      "protocol": "freedom", 
      "settings": { }, 
      "tag": "direct"
    }
  ], 
  "dns": {
    "servers": [
      "119.29.29.29", 
      "1.0.0.1", 
      "localhost"
    ]
  }, 
  "routing": {
    "strategy": "rules", 
    "settings": {
      "domainStrategy": "IPIfNonMatch", 
      "rules": [
        {
          "type": "field", 
          "port": "1-52", 
          "outboundTag": "direct"
        }, 
        {
          "type": "field", 
          "port": "54-79", 
          "outboundTag": "direct"
        }, 
        {
          "type": "field", 
          "port": "81-442", 
          "outboundTag": "direct"
        }, 
        {
          "type": "field", 
          "port": "444-65535", 
          "outboundTag": "direct"
        }, 
        {
          "type": "field", 
          "domain": [
            "geosite:cn"
          ], 
          "outboundTag": "direct"
        }, 
        {
          "type": "field", 
          "ip": [
            "geoip:private", 
            "geoip:cn"
          ], 
          "outboundTag": "direct"
        }
      ]
    }
  }
}

因为使用了 TLS ,加密选项方式可使用「none」,也正因如此不建议使用自签名证书。

服务端上「config.json」下「inbound」下的「id」要和客户端的「config.json」下「outbound」下的「id」一致

客户端的「config.json」下「outbound」下的「address」和「serverName」的域名要和服务器上「Nginx 」的配置的域名一致。「wsSettings」下的路径「path」也要对应服务端设置

 

其他更详细的配置请查看:欢迎使用 V2Ray >

Conners Hua

欢迎加入群聊: Telegram 群聊 | QQ 群聊(不讨论敏感话题)

您可能还喜欢...

10 条回应

  1. gx说道:

    非常感谢作者。
    能否出一个搭建简单网站的教程?按照这个教程搭建好网站后,进入网站显示如下,并不能很好的规避主动探测
    Welcome to nginx!
    If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

    For online documentation and support please refer to nginx.org.
    Commercial support is available at nginx.com.

    Thank you for using nginx.

  2. 666说道:

    大佬,什么时候出v2ray+http/2的教程!辛苦dalao了

  3. Hikkess说道:

    速度贼快,占用主力内存极低。非常棒~

  4. 匿名说道:

    装发在自己的网站上了。已经著名出处

  5. ygfly说道:

    服务端配置文件30,31行重复了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.