同步vps时间和电脑时间
centos7
更新服务器 yum update -y
(部分系统提示NO packages marked for update则无需更新)
设置硬件时钟调整为与本地时钟一致, 设置时区为上海 date -R 是查看服务器当前时间
1 2 3
| date -R timedatectl set-local-rtc 1 timedatectl set-timezone Asia/Shanghai
|
Debian
1 2 3
| date -R rm -rf /etc/localtime cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
安装依赖
debian
安装依赖
1 2
| apt update apt install curl
|
centos7
安装依赖
1 2
| yum makecache yum install curl
|
安装完后执行下面代码
1 2
| curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-dat-release.sh
|
安装和更新V2Ray
文件内容输出
最近v2fly维护版本拉取最新数据输出如下内容 " + " 代表目前输出内容," - "代表在老版本基础上删除的信息
温馨提示:不同版本输出内容都不一样,请按实际情况为例。
每行代码 " + " ," - " 号忽略1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| +info: unzip is installed. +info: Extract the V2Ray package to /tmp/tmp.RS0y2YR2ZS/ and prepare it for installation. +installed: /usr/local/bin/v2ray +installed: /usr/local/bin/v2ctl +installed: /usr/local/lib/v2ray/geoip.dat +installed: /usr/local/lib/v2ray/geosite.dat +installed: /usr/local/etc/v2ray/config.json -installed: /usr/local/etc/v2ray/00_log.json -installed: /usr/local/etc/v2ray/01_api.json -installed: /usr/local/etc/v2ray/02_dns.json -installed: /usr/local/etc/v2ray/03_routing.json -installed: /usr/local/etc/v2ray/04_policy.json -installed: /usr/local/etc/v2ray/05_inbounds.json -installed: /usr/local/etc/v2ray/06_outbounds.json -installed: /usr/local/etc/v2ray/07_transport.json -installed: /usr/local/etc/v2ray/08_stats.json -installed: /usr/local/etc/v2ray/09_reverse.json -installed: /var/log/v2ray/ +installed: /var/log/v2ray/access.log +installed: /var/log/v2ray/error.log +installed: /etc/systemd/system/v2ray.service +installed: /etc/systemd/system/[email protected] +removed: /tmp/tmp.KojGXm19Pa/ +info: V2Ray v4.27.0 is installed.
|
安裝最新發行的geoip.dat和geosite.dat
1
| bash install-dat-release.sh
|
创建编辑配置文件
在/usr/local/etc/v2ray下面创建一个名为config.json配置文件
复制以下代码到config.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| { "log" : { "access": "/var/log/v2ray/access.log", "error": "/var/log/v2ray/error.log", "loglevel": "warning" }, "inbound": { "port": 9000, "listen": "127.0.0.1", "protocol": "vmess", "settings": { "clients": [ { "id": "eb950add-608e-409d-937f-e797324387093z", "level": 1, "alterId": 64 } ] }, "streamSettings":{ "network": "ws", "wsSettings": { "path": "/ray" } } }, "outbound": { "protocol": "freedom", "settings": {} }, "outboundDetour": [ { "protocol": "blackhole", "settings": {}, "tag": "blocked" } ], "routing": { "strategy": "rules", "settings": { "rules": [ { "type": "field", "ip": [ "0.0.0.0/8", "10.0.0.0/8", "100.64.0.0/10", "127.0.0.0/8", "169.254.0.0/16", "172.16.0.0/12", "192.0.0.0/24", "192.0.2.0/24", "192.168.0.0/16", "198.18.0.0/15", "198.51.100.0/24", "203.0.113.0/24", "::1/128", "fc00::/7", "fe80::/10" ], "outboundTag": "blocked" } ] } } }
|
v2ray调试
1 2
| sudo systemctl restart v2ray sudo systemctl status -l v2ray
|
设置v2ray开机启动
打开 80(HTTP)和 443(HTTPS)端口(如果看过我前几期视频,确定防火墙规则设置好了,谷歌云可以忽略。其他品牌服务器请确认已经开启了80和443端口如果没有可尝试下面代码操作或者服务器网页端
开启http80端口
和https 443端口
)
也可以通过下面的命令来打开这两个端口:请自行开启防火墙开机启动
1 2 3
| sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
|
安装NGINX
1 2 3 4 5 6 7 8 9
| sudo yum install epel-release
sudo yum install nginx
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 调试代码如下: sudo systemctl start nginx.service //开启 Nginx sudo systemctl stop nginx.service //停止 Nginx sudo systemctl status -l nginx.service //查看 Nginx运行状态 sudo systemctl restart nginx.service //重新启动 Nginx sudo systemctl disable nginx.service //取消开机启动 Nginx sudo systemctl reload nginx.service //重载Nginx (如更改Nginx配置需要重新载入数据) sudo systemctl enable nginx.service //开机启动 调试代码如下: Nginx调试也可以不需要代码后面添加 **.service** 请先**sudo systemctl start nginx.service** 和**sudo systemctl enable nginx.service** 然后在通过下面代码也可以调试.
sudo systemctl start nginx //开启 Nginx sudo systemctl stop nginx //停止 Nginx sudo systemctl status -l nginx //查看 Nginx运行状态 sudo systemctl restart nginx //重新启动 Nginx sudo systemctl disable nginx //取消开机启动 Nginx sudo systemctl reload nginx //重载Nginx (如更改Nginx配置需要重新载入数据) sudo systemctl enable nginx //开机启动
|
通过以上方式安装的 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 2 3 4 5 6 7
| curl https://get.acme.sh | sh // 如提示安装失败 请先安装curl 输入 yum -y install curl
wget -O - https://get.acme.sh | sh //如提示安装失败请(先安装wget)输入 yum -y install wget 已经安装了忽略
git clone https://github.com/acmesh-official/acme.sh.git // 如提示安装失败 先安装git 已经安装了的忽略 输入 yum install git cd ./acme.sh ./acme.sh --install
|
通过以上代码安装acme.sh提示红色抱错 你可以按实际相关情况而定安装依赖 比如安装socat 或者 netcat
1 2 3 4 5 6 7 8
| centos7 yum install openssl centos7 yum install socat centos7 yum install netcat
debian apt-get install openssl cron socat curl debian apt-get -y install netcat
安装成功后执行 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 证书
证书和密钥安装到指定路径
1 2 3
| ecc 安装代码 sudo ~/.acme.sh/acme.sh --installcert -d 域名 --fullchainpath /etc/v2ray/v2ray.crt --keypath /etc/v2ray/v2ray.key --ecc
rsa 安装代码 sudo ~/.acme.sh/acme.sh --installcert -d 域名 --fullchainpath /etc/v2ray/v2ray.crt --keypath /etc/v2ray/v2ray.key
|
配置NGINX *.conf
vi /etc/nginx/nginx.conf #进入编辑配置文件:长按键盘上D键删除所有配置信息,再按键盘Ins键进入编辑模式复制如下代码黏贴到配置中编辑,填写对应自己的配置信息后。最后同时按键盘上 shift+: 键,在输入wq保存退出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events { worker_connections 1024; }
http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048;
include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf;
server { listen 80; server_name 域名; rewrite ^/(.*) https://域名$1 permanent; }
server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; ssl_certificate /路径/*.pem; ssl_certificate_key /路径/*.key; ssl_ciphers 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; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; root /usr/share/nginx/html; server_name 域名; location /ray { proxy_redirect off; proxy_pass http://127.0.0.1:端口; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; }
}
}
|
套件如下:
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;
|
修改 Nginx 配置后,请务必重新加载配置 输入 sudo systemctl reload nginx.service #必须这样操作
最后请输入reboot
重启服务器(记得执行)
查询是否开启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 如果是,恭喜你搭建成功.如果你已经学会了那么接下来的课程会越来越有意思.
BBr安装
1
| wget "https://raw.githubusercontent.com/ComeBey/rootfw-bbr/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh
|
如果想卸载V2Ray执行下面代码
1
| bash install-release.sh --remove
|
查询tls开启状态
https://www.ssllabs.com/ssltest/index.html 输入自己域名查询即可
温馨提示:如果想短时间内提升自己的可以参加我的培训,多年实战沉淀精品课程,vIP课程基本上所有平台找不到,一阵见血帮你打通任督二脉,人人都可以是专家
。
点击课程详情
添加公开电报群
Nginx前端模板下载