v2ray websocket(ws)+tls+Nginx分流+BBR(锐速)+cdn+网站(如wordpress)

in #v2ray7 years ago (edited)
相关说明
  • 已购买vps、域名x.com、域名已解析到vps IP;
  • 教程vps服务器v2ray端口举例为9000,请自行修改;
  • vps操作推荐软件:Xshell(win)、zoc(mac);
  • 全新系统以Debian和Ubuntu为例,centos命令则为yum,如yum update -y;
  • 利用可视化BT面板:安装web环境、编辑配置相关config;
  • 全程利用可用的一键脚本,只是在关键的部分采用手动仅为需求而方便设置;
  • 本文目的在于建立:
    • 个人网站(如wordpress)+ websocket(ws)+ tls + Nginx分流 + 加速(锐速或BBR)+ CDN;
    • 所以若旨在安装tcp(http伪装)、mkcp(伪装+tls)、ws+tls,请忽略本文并移步至v2ray一键脚本

1、更新升级

apt-get update && apt-get upgrade -y

2、删除Apache2

否则Nginx无法启动

apt-get purge apache2 

yum erase httpd httpd-tools apr apr-util

3、安装BT面板

根据不同系统,自行选择相应一键脚本
安装完后,根据提示浏览器打开ip.8888;
登录面板后台,根据提示,一键安装Nginx、MySQL、PHP、PhpAdmin。

选项_安全:放行v2ray端口9000,ssl监听端口443;这是本教程开放端口,请自行根据自己需要开放自定义端口号。

4、安装v2ray

wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/v2ray.fun/master/install.sh && bash install.sh

安装完毕,输入v2ray,Enter回车进行脚本操作
因为脚本会不断地更新并且一目了然各项功能的选择,所以此文省略具体操作步骤

  • 更改主端口9000,默认为1234;
  • 加密方式自行选择,v2ray服务端根据客户端选择自行选择,默认为none;
  • 更改传输方式为websocket流量;
  • #######不要选择开启tls,虽方便自动申请ssl,但会在config.json写入tls配置,而Nginx分流实则服务端不需要写入,所以采用下文手动申请ssl;
  • 按enter回车键退出脚本配置;

5、浏览器进入BT面板操作

假设已经完成了web环境安装

  • 添加网站 x.com,自行上传或远程下载安装文件放入x.com文件夹;
    • 若是wordpress,第2选择是进入宝塔一键部署源码,一键安装wp;
    • 若是wp,设置x.com文件夹权限为775
    • 若是从他处迁移过来,解决固定链接问题需要在Nginx添加代码:
      • 步骤是在网站——x.com列表右边选择设置——配置文件
           location / {
              try_files $uri $uri/ /index.php?q=$uri&$args;
                     }

6、申请SSL

进入xshell或zoc等vps操作软件;
过程若出现缺少依赖而错误,请根据提示自行安装依赖包
自行把域名x.com修改为自己的域名

安装 acme.sh
           curl  https://get.acme.sh | sh
           source ~/.bashrc
           apt-get -y install netcat

利用BT面板,停止Nginx运行

生成证书
        ~/.acme.sh/acme.sh --issue -d x.com --standalone -k ec-256 

安装证书和密钥
        ~/.acme.sh/acme.sh --installcert -d x.com --fullchainpath /etc/v2ray/v2ray.crt --keypath /etc/v2ray/v2ray.key

注意修改上述x.com为自己域名

7、添加v2ray的ws_path路径,编辑/etc/v2ray/config.json,

"wsSettings": {
   "headers": {
   "host": "x.com"
          }, 
   "path": "/ws", # 在单引号 ""里添加/ws

8a、配置Nginx:透过浏览器登录BT面板

在配置文件最后一行添加如下:
      server {
        listen  443 ssl; #若要透过其他转发https给v2ray服务端口9000,请自行修改443为其他监听端口
        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           x.com; #修改自己域名
        location /ws {   #/ws为v2ray路径,随便填写比如/v2ray/
        proxy_redirect off;
        proxy_pass http://127.0.0.1:9000; #修改自己v2ray服务端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        }
      }

A、如果利用bt面板成功申请ssl,可忽略步骤停止nginx运行;并在Nginx里最后一个 }前面只需要填入:

         location /ws {   #/ws为v2ray路径,随便填写比如/v2ray/
             proxy_redirect off;
             proxy_pass http://127.0.0.1:9000; #修改自己v2ray服务端口
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";
             proxy_set_header Host $http_host;            
          }

B、如果利用v2ray一键脚本安装tls,打开/etc/v2ray/config.json,记录配置文件tls证书位置,替换上文Nginx代码中的ssl证书的两个位置
ssl_certificate /etc/v2ray/v2ray.crt; #修改证书路径
ssl_certificate_key /etc/v2ray/v2ray.key; #修改证书路径

或者执行下述代码,这样就不用修改 Nginx中的证书位置:
         ~/.acme.sh/acme.sh --installcert -d x.com --fullchainpath /etc/v2ray/v2ray.crt --keypath /etc/v2ray/v2ray.key

完成上述后,删除/etc/v2ray/config.json中tls相关设置,恢复如下:

                "streamSettings": {
                    "tlsSettings": {}, 
                    "security": ""
                  }

注意修改上述x.com为自己域名

8b、分流可选方案二,不透过Nginx监听ssl,而是透过caddy

  • nginx根据上述三种不同ssl申请方式,配置文件代码必须具有:
server {
        listen  443 ssl; #若要透过其他端口转发https给v2ray服务端口9000,请自行修改443为其他监听端口
        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;
    }
  • 安装caddy
wget --no-check-certificate https://softs.fun/Bash/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
  • 配置caddy

新建文件:/usr/local/caddy/Caddyfile,填入代码

caddy x.com #修改为自己的域名
{
  log ./caddy.log
  proxy /ws locaohost:9000 { #修改为自己的v2ray服务端口,和v2ray路径 
    websocket
    header_upstream -Origin
  }
}

9、完成上述所有操作后,重启服务器 或 重启以下服务,使配置生效**

v2ray重启
service v2ray restart
重启nginx:BT面板
重启caddy
service caddy restart 
记得在BT面板的安全选项开放上述端口,教程里是443和9000

10、加速安装

10a、kvm内核

锐速

  • 需要相应内核支持,若不支持请更换内核,本人推荐Debian7,内核一定合适
  • 91yun锐速
wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh

逗比根据地一键脚本:包含锐速、bbr

wget -N --no-check-certificate https://softs.fun/Bash/ssrmu.sh && chmod +x ssrmu.sh && bash ssrmu.sh

BBR

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh
开启BBR
wget --no-check-certificate -qO 'BBR.sh' 'https://moeclub.org/attachment/LinuxShell/BBR.sh' && chmod a+x BBR.sh && bash BBR.sh -f

注意:执行此命令会自动重启

安装
wget --no-check-certificate -qO 'BBR_POWERED.sh' 'https://moeclub.org/attachment/LinuxShell/BBR_POWERED.sh' && chmod a+x BBR_POWERED.sh && bash BBR_POWERED.sh

10b、openvz内核

wget https://raw.githubusercontent.com/kuoruan/shell-scripts/master/ovz-bbr/ovz-bbr-installer.sh
chmod +x ovz-bbr-installer.sh
./ovz-bbr-installer.sh

分流需要添加两个端口:监听端口443和v2ray服务端口9000,修改/usr/local/haproxy-lkl/etc/port-rules,保存

0.0.0.0 443 0.0.0.0 443
0.0.0.0 9000 0.0.0.0 9000

重启服务

service haproxy-lkl restart
curl https://raw.githubusercontent.com/linhua55/lkl_study/master/get-rinetd.sh | bash

多端口添加修改地址:/etc/rinetd-bbr.conf
查看ip规则

iptables -t raw -nL

11、配置cdn

  • 免费的当属CloudFlare,但大陆地区支持未必理想;
  • 不赞成先cdn,因为可能会影响申请ssl,所以建议以上都完毕后再更换为cdn服务;
  • 若是CloudFlare,那么crypto选项里,SSL,选择Full(strict),然后可全部勾选当页选项。

如果是wordpress,配置ssl后如果出现部分页面https不安全现象,请安装插件

12、客户端设置

  • 端口:443(非9000)
  • address:x.com(非ip)
  • websocket(ws)path(路径):/ws
  • 勾选tls

参考文献: