新版V2ray+WS+TLS+Nginx
- 同步vps时间和电脑时
centos7
更新服务器 yum update -y
(部分系统提示NO packages marked for update则无需更新)
设置硬件时钟调整为与本地时钟一致, 设置时区为上海 date -R 是查看服务器当前时间
Debian
1 | date -R |
安装依赖
centos7
安装依赖
1 | yum makecache |
debian
安装依赖
1 | apt update |
安装完后执行下面代码
1 | curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh |
安装和更新V2Ray
1 | bash install-release.sh |
文件内容输出
最近v2fly维护版本拉取最新数据输出如下内容 " + " 代表目前输出内容," - "代表在老版本基础上删除的信息
温馨提示:不同版本输出内容都不一样,请按实际情况为例。
每行代码 " + " ," - " 号忽略
installed: /usr/local/bin/v2ray
installed: /usr/local/bin/v2ctl
installed: /usr/local/share/v2ray/geoip.dat
installed: /usr/local/share/v2ray/geosite.dat
installed: /usr/local/etc/v2ray/config.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.MH74cR0UsU
info: V2Ray v4.45.0 is installed.
You may need to execute a command to remove dependent software: yum remove curl unzip
Please execute the command: systemctl enable v2ray; systemctl start v2ray
安裝最新發行的geoip.dat和geosite.dat
创建编辑配置文件
在/usr/local/etc/v2ray下面创建一个名为config.json配置文件
复制以下代码到config.json
//复制以下代码
{
"log" : {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 9000, //重点(此端口与nginx配置保持一致)
"listen": "127.0.0.1", //重点(此端口与nginx配置保持一致)
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "eb950add-608e-409d-937f-e797324387093z", //你的UUID,可更改需与客户端保持一致
"level": 1,
"alterId": 64 //此ID也需与客户端保持一致(不要设置超过100以上可自定义)
}
]
},
"streamSettings":{
"network": "ws", //可设置tcp等
"wsSettings": {
"path": "/ray" //与nginx配置相关(可自定义)
}
}
},
"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"
}
]
}
}
}
80(HTTP)和 443(HTTPS)端口
打开 80(HTTP)和 443(HTTPS)端口(如果看过我前几期视频,确定防火墙规则设置好了,谷歌云可以忽略。其他品牌服务器请确认已经开启了80和443端口如果没有可尝试下面代码操作或者服务器网页端
开启http80端口
和https 443端口
);
也可以通过下面的命令来打开这两个端口:请自行开启防火墙开机启动:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
参考:甲骨文开放端口
生成证书
如果你已经有其他证书可忽略,把证书和密钥放到服务器指定目录下,只需在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 #通过80端口生成证书的依赖
centos7 yum install netcat
debian apt-get install openssl cron socat curl #通过80端口生成证书的依赖和openssl
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可以备用你懂的)
ZeroSSL账号
申请ZeroSSL账号,替换“[email protected]”为自己的账号;
~/.acme.sh/acme.sh --register-account -m
[email protected]
1.通过侦听80端口申请证书,如果80端口被占用,请使用443端口,请确保这些端口都打开了
2.如果您80在反向代理或负载均衡器后面使用非标准端口,则可以–httpport用来指定端口
3.侦听443端口以颁发证书,请确保443端口开启
4.如果您443在反向代理或负载均衡器后面使用非标准端口,则可以–tlsport用来指定端口
-k 表示密钥长度,后面的值可以是 ec-256 、ec-384、2048、3072、4096、8192,带有 ec 表示生成的是 ECC 证书,没有则是 RSA 证书。在安全性上 256 位的 ECC 证书等同于 3072 位的 RSA 证书
证书和密钥安装到指定路径
安装NGINX
1
2
3
4
5
6
7
8
9
#安装 EPEL 仓库(谷歌云忽略此步骤,如果你是使用其他品牌vps服务器如果没有安装EPEL请先安装)
sudo yum install epel-release
#安装 Nginx 【如果想删除nginx,卸载命令:yum remove nginx 】
sudo yum install nginx
sudo systemctl enable nginx.service #设置开机启动Nginx
sudo systemctl start nginx.service #启动Nginx服务
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” 字段
要解决这一问题需要在终端下键入以下命令:
验证 Nginx 是否成功启动,可以在浏览器中打开 http://YOUR_IP 注意:打开则显示centos网页 但是提示不安全网站没开启ssl加密https
配置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 #关键代码
{
# SSL configuration
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
ssl_certificate /路径/*.pem; #你的ssl证书*.crt 或者 *.pem都可以
ssl_certificate_key /路径/*.key; #你的ssl 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; #套件RSA和ecc不一样在下面我会分别给出
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
root /usr/share/nginx/html; #网页路径,这里也可以放你们自己的html网站替换下就可以了
server_name 域名; #你的服务器域名
location /ray { #/ray 切记路径需要和v2ray服务器端和客户端保持一致 可自定义名字
proxy_redirect off;
proxy_pass http://127.0.0.1:端口; #此IP地址和端口需要和v2ray服务器端配置保持一致,
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
}
}
设置v2ray开机启动
v2ray调试
显示以下代码表示正常运行
Active: active (running) since 二 2022-05-10 08:16:40 GMT; 1s ago
调试NGINX
sudo systemctl start nginx.service //开启 Nginx
sudo systemctl reload nginx.service //重载Nginx (如更改Nginx配置需要重新载入数据)
sudo systemctl status -l nginx.service //查看 Nginx运行状态
显示active (running),表示正常运行!
Active: active (running) since 二 2022-05-10 17:32:51 CST; 2min 16s ago
自定义前端web
找到服务器目 /usr/share/nginx 文件夹
修改文件夹 html 名称,修改为任意名称
上传下载的HTML模板文件到 /usr/share/nginx 目录,等待上传完成!
请确认HTML路径和nginx配置文件中路径地址一致!
进入 /usr/share/nginx 文件夹,打开新上传的HTML文件夹,
修改 index.html 文件权限,打开或勾选所有执行权限!sudo systemctl reload nginx.service //重载Nginx (如更改Nginx配置需要重新载入数据)
111
评论
发表评论