Finalshell SSH连接工具下载
Mobaxterm SSH连接工具下载
centos7系统环境搭建,温馨提示:请使用centos7系统搭建,如果学习能力强可以Google搜索Debian或其他系统搭建方法,只是部分代码不一样而已,V2Ray+WebSocket+TLS+Nginx 前几期视频分别提到过 TLS 和 WebSocket 的配置方法,而本文搭配 Web 服务并同时实现 TLS 和 WebSocket浏览器域名访问自动跳转https有简单前端网页。关于 Web 的软件官方给出Nginx,Caddy 和 Apache 三个例子,三选一即可
安装前准备
更新服务器
1 | yum update -y |
更改root密码
安装bbr
1 | centos7系统 |
安装v2ray代码
1 | bash <(curl -L -s https://install.direct/go.sh) #老版本的失效 |
安裝和更新V2Ray
1 | bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) |
安装geoip和geosite
1 | bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-dat-release.sh) |
温馨提示
1 | bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) --remove |
安装成功后执行 vi /etc/v2ray/config.json 长按键盘D键删所有代码,在输入键盘Ins键进入可编辑状态,复制以下代码后 黏贴到配置中按键盘Esc键,在同时按键盘shift+:输入wq保存退出
1 | //复制以下代码 |
1 | 你可以输入 service v2ray restart 在输入 service v2ray status -l #看看是否运行成功 |
打开 80(HTTP)和 443(HTTPS)端口(如果看过我前几期视频,确定防火墙规则设置好了,谷歌云可以忽略。其他品牌服务器请确认已经开启了80和443端口如果没有可尝试下面代码操作或者服务器网页端
开启http80端口
和https 443端口
)
也可以通过下面的命令来打开这两个端口:请自行开启防火墙开机启动
1 | sudo firewall-cmd --permanent --zone=public --add-service=http |
安装NGINX
1 | #安装 EPEL 仓库(谷歌云忽略此步骤,如果你是使用其他品牌vps服务器如果没有安装EPEL请先安装) |
1 | 调试代码如下: |
通过以上方式安装的 Nginx,所有相关的配置文件都在 /etc/nginx/ 目录中
Nginx 的主配置文件是 /etc/nginx/nginx.conf
Nginx 日志文件(access.log 和 error.log )位于 /var/log/nginx/ 目录中。
如果在设置完成之后不能成功使用,可能是由于 SElinux 机制(如果你是 CentOS 7 的用户请特别留意SElinux 这一机制)阻止了 Nginx 转发向内网的数据
如果是这样的话,在V2Ray的日志里不会有访问信息,在 Nginx 的日志里会出现大量的 “Permission Denied” 字段
要解决这一问题需要在终端下键入以下命令:
1 | setsebool -P httpd_can_network_connect 1 //debian忽略 |
验证 Nginx 是否成功启动,可以在浏览器中打开 http://YOUR_IP 注意:打开则显示centos网页 但是提示不安全网站没开启ssl加密https
生成证书
如果你已经有其他证书可忽略,把证书和密钥放到服务器指定目录下,只需在Nginx 中指定 证书和密钥路径。申请证书方法太多可通过安装acme.sh工具生成证书或其他方法生成证书,可Google搜索。
1.安装acem.sh证书生成工具,以下提供3种方法安装,选其中任意一种方法安装证书工具 (温馨提示:自动升级acme.sh在root下输入 acme.sh upgrade)
1 | curl https://get.acme.sh | sh // 如提示安装失败 请先安装curl 输入 yum -y install curl |
通过以上代码安装acme.sh提示红色抱错 你可以按实际相关情况而定安装依赖 比如安装socat 或者 netcat
1
2
3
4
5
6
7
8
9centos7 yum install openssl
centos7 yum install socat #通过80端口生成证书的依赖
centos7 yum isntall netcat
debian apt-get install openssl cron socat curl
debian apt-get -y install netcat
debian apt-get -y install socat #通过80端口生成证书的依赖
安装成功后执行 source ~/.bashrc 以确保脚本所设置的命令别名生效
2.生成证书 路径为/root/.acme.sh文件下 安装好后可自行查看
温馨提示:通过acme.sh生成证书有多种方法:
例如—自动DNS API集成 如:cloudflare DNS API 令牌 和 使用全局API密钥 acme.sh支持大多数dns生成证书
例如—使用DNS手动模式,等多种其他安装方法,如果你是个好学的人可Google
生成证书如下:本期视频只用指定端口 生成证书 推荐使用443端口生成证书 (一般用单域名足以,毕竟是翻墙用无需搞那么多花里胡哨的多域,比如:主域baidu.com那么不建议使用www.baidu.com,因为是翻墙的前端web请自定义比如tw.baidu.com,前缀tw可以自定义请不要写太长,主域baidu.com和二级www.baidu.com可以备用你懂的)
1.通过侦听80端口申请证书,如果80端口被占用,请使用443端口,请确保这些端口都打开了
1 | sudo ~/.acme.sh/acme.sh --issue -d 域名 --standalone -k ec-256 |
2.如果您80在反向代理或负载均衡器后面使用非标准端口,则可以–httpport用来指定端口
1 | sudo ~/.acme.sh/acme.sh --issue -d 域名 --standalone --httpport 端口 |
3.侦听443端口以颁发证书,请确保443端口开启
1 | sudo ~/.acme.sh/acme.sh --issue -d 域名 --alpn -k ec-256 |
4.如果您443在反向代理或负载均衡器后面使用非标准端口,则可以–tlsport用来指定端口
1 | sudo ~/.acme.sh/acme.sh --issue -d 域名 --alpn --tlsport 端口 |
-k 表示密钥长度,后面的值可以是 ec-256 、ec-384、2048、3072、4096、8192,带有 ec 表示生成的是 ECC 证书,没有则是 RSA 证书。在安全性上 256 位的 ECC 证书等同于 3072 位的 RSA 证书
把证书和密钥安装移到指定路径 /etc/v2ray (路径可自定义)
1 | ecc 安装代码 sudo ~/.acme.sh/acme.sh --installcert -d 域名 --fullchainpath /etc/v2ray/v2ray.crt --keypath /etc/v2ray/v2ray.key --ecc |
配置nginx.conf
vi /etc/nginx/nginx.conf #进入编辑配置文件:长按键盘上D键删除所有配置信息,再按键盘Ins键进入编辑模式复制如下代码黏贴到配置中编辑,填写对应自己的配置信息后。最后同时按键盘上 shift+: 键,在输入wq保存退出
1 | user nginx; |
套件如下:
1 | ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384; #RSA套件 |
1 | EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5; #Ecc套件 |
修改 Nginx 配置后,请务必重新加载配置 输入 sudo systemctl reload nginx.service #必须这样操作
查询是否开启ssl 打开网站https://myssl.com/ssl.html输入自己域名,端口输入443 或者 打开https://www.ssllabs.com/ssltest/index.html 查询 ,也可以google搜索关键字ssl查询,很多网站可以查询,评分是否到达A级别
温馨提示:通过acme.sh工具生成证书请使用443端口 代码如下:sudo ~/.acme.sh/acme.sh –issue -d 域名 –alpn -k ec-256 (侦听443端口以颁发证书,请确保443端口开启 按文章流程操作80端口生成证书时会提示端口占用,当然如果你想简单点可以通过已有购买的证书或者通过宝塔申请的或者其他证书,把密钥和证书直接复制拷贝到服务器指定路径下,在配置nginx指向证书和路径。部分免费证书会缺少CA证书那么在网站ssl评分就会大打折扣,解决办法是重新把CA证书添加下就可以了
通过在浏览器输入自己域名查询是否发现网站加了一把锁🔒开启了https, 且网站域名ssl评分到达A 如果是,恭喜你搭建成功.如果你已经学会了那么接下来的课程会越来越有意思.