v2ray websocket(ws)+tls+Nginx分流+BBR(锐速)+cdn+网站(如wordpress)
相关说明
- 已购买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
wget -N --no-check-certificate https://softs.fun/Bash/ssrmu.sh && chmod +x ssrmu.sh && bash ssrmu.sh
BBR
- 开通正常的BBR:秋水逸冰 » 一键安装最新内核并开启 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
- lkl_Rinetd(我自己ovz采用这个速度杠杠的),@phuslu的一键脚本
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不安全现象,请安装插件
- SSL 不安全内容修复器:根据检测自动修复ssl;
- 推荐安装免费快取外挂Breeze:加速网站打开;
12、客户端设置
- 端口:443(非9000)
- address:x.com(非ip)
- websocket(ws)path(路径):/ws
- 勾选tls
参考文献:
Hello!