前言
之前的VPS要到期了,正好迁移下VPS,顺带整理下资料。
实现方式:WebSocket+TLS+Caddy/Nginx+V2ray+CDN
系统环境:Debian 10
加速:BBR
更新系统
更新系统源和软件包
1 | apt-get update && apt-get upgrade |
V2ray
白话文教程:https://toutyrater.github.io/
脚本安装
下载安装
1 | bash <(curl -L -s https://install.direct/go.sh) |
位置查看
1 | whereis v2ray |
编辑配置
1 | nano /etc/v2ray/config.json |
"port": 10086
换成自己的端口,未被占用就行- ID需要换成自己的可以使用生成器:UUID生成器
"path": "/blog/CC"
换成自己的路径,随便填写,与caddy配置匹配就行
1 | { |
验证配置
1 | /usr/bin/v2ray/v2ray -test -config=/etc/v2ray/config.json |
返回Configuration OK.
就算成功。
启动程序
开机自启
1 | systemctl enbale v2ray |
启动服务
1 | systemctl start v2ray |
查看运行状态
1 | systemctl status v2ray |
Caddy
文档:https://caddyserver.com/docs/
最坑的是Caddy升级了,V2版本不向下兼容,Caddyfile V1的配置不兼容了。只能按照官方文档调整。
软件安装
使用源安装
1 | echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \ |
编辑配置
1 | nano /etc/caddy/Caddyfile |
Caddy的配置非常简单,且可以自动申请证书,这也是换用Caddy的原因。
1 | domain.com |
启动程序
开机自启
1 | systemctl enbale caddy |
启动服务
1 | systemctl start caddy |
查看运行状态
1 | systemctl status caddy |
BBR加速
BBR有好几个版本,原版、魔改版、BBR Plus版,原版的加速效果是最差的,不过,最后决定安装原版。
查看内核版本
开起BBR需要内核4.9以上
1 | uname -r |
添加变量
1 | echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf |
命令生效
1 | sysctl -p |
验证命令是否生效
1 | 输入命令 |
1 | 输入命令 |
验证BBR是否启动
1 | 输入命令 |
CDN
在外面套一层CDN,即使直连被QQ了也能救回来。使用的是Cloudflare的(别的CDN自然也可以),Cloudflare在国内的速度只能说堪堪能用吧,当然这个要看个人需求。
注册域名
要使用CDN,先要有个域名,现在国内外域名价格都差不多,但是国内注册域名要实名验证。
国内域名注册商:DNSPOD(腾讯),万网(阿里)
Cloudflare
注册Cloudflare
Cloudflare注册非常简单,有个邮箱就行了,Cloudflare注册地址。
域名管理
登录Cloudflare,会让add site,填入刚注册的域名即可。
填完域名后会提示修改Nameservers,需要到域名注册商处将Nameservers改为Cloudflare的Nameservers。
配置SSL/TLS
配置SSL/TLS,选择Full(strict),选择Flexble会导致黄色云朵点亮的时候,请求失败。
客户端
官方文档里面又有下载地址:https://www.v2ray.com/awesome/tools.html
IOS:Shadowrocket ,收费的,且国区账号下不到了,需要注册美区账号,比较麻烦的
Android:V2RayNG Play Store | GitHub
Windows:Windows 只推荐V2RayN ,其他用了几个都没这个好用。
Linux:Linux的客户端就服务端,只是配置文件需要修改下,还有一个小问题,客户端在安装前,理论上是不能访问外站的,但是使用bash <(curl -L -s https://install.direct/go.sh)
运行脚本过程中又需要访问外站。先有鸡还是先有蛋:(,所以需要使用go.sh本地安装。
- 访问https://install.direct/go.sh,将go.sh下载到本地
- 去GitHub上下载v2ray的releases安装包,将go.sh和安装包放在同一个目录下
- 执行本地安装命令
bash go.sh --loacl ./v2ray-linux-64.zip
记录一下客户端配置
1 | { |
Nginx
Nginx 和Caddy选择一个就行了,但是使用nginx的话还要配合acme申请证书。可以参考[[acme-install|acme.sh申请免费证书]]
acme.sh申请免费证书如果配合Cloudflare的话,直接使用Cloudflare的免费证书也行,但是这个就只有Cloudflare中启动 Proxy才有用,但是没有acme方便,所以不做详细介绍。
安装配置
正常安装即可
1 | apt install nginx -y |
增加v2ray的nginx配置文件
1 | nano /etc/nginx/conf/v2ray.conf |
这里除了配置了v2ray还匹配了域名,非指定域名返回500错误
1 | upstream v2ray { |
注意
在Ubutnu上Nginx有一个Bug,nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument
,具体信息:https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864
使用root用户执行以下命令即可。
1 | mkdir /etc/systemd/system/nginx.service.d |