V2ray vless+WebSocket+TLS+Nginx

目前 VLESS 没有自带加密,请用于可靠信道,如 TLS。
VLESS 处于公测阶段,测试期间请确保客户端与服务端的 v2ray-core 均为最新版本。
VLESS 的内测仓库为 rprx/v2ray-vless,其中 PREVIEW 系列的新版本会在发布一段时间后并入 v2fly/v2ray-core。请大家自行把 v2ray core 客户端升级到最新版本

开门见山

不管大家通过什么vps搭建,请大家自己去测试服务器到你本地延迟,包括线路,包括vps上下行。关于vps选择我不推荐任何品牌,地区不一样自己选择适合自己的。每篇文章的代码我都测试过,有些朋友搭建V2ray或者其他FQ服务说卡慢,先自己安装BBR,当然如果连基本自己服务器性能都不是非常清楚,那是不是扯蛋。知识需要积累,加油!还请大家自己实战,并且尊重知识!操作过程中有遇到问题欢迎添加公开电报群 请某些youtube UP在使用全站脚本注明出处,请尊重劳动成果

安装依赖

Debian

安装依赖

1
2
apt update
apt install curl

Centos7

安装依赖

1
2
yum makecache
yum install curl

安装release.sh

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

1
bash install-release.sh

代码输出

最近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.

安裝更新dat

1
bash install-dat-release.sh

辑配置文件

复制以下代码到config.json 或者使用vi /usr/local/etc/v2ray/config.json进行编辑 1.输入键盘i编辑 2.替换里面所有内容按Esc键 3.键盘组合键ctrl+shift+: 4.输入wq保存退出

/usr/local/etc/v2ray/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
{
"inbounds": [
{
"port": 36240,
"listen":"127.0.0.1",
"protocol": "vless",
"settings": {
"decryption": "none",
"clients": [
{
"id": "*&*&***&*&*^*&*&*&*&*&*",
"level": 0
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/abcde6"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}

v2ray调试

1
2
3
sudo systemctl restart v2ray
sudo systemctl status -l v2ray
sudo systemctl daemon-reload

设置v2ray开机启动

1
systemctl enable v2ray

打开 80(HTTP)和 443(HTTPS)端口(如果看过我前几期视频,确定防火墙规则设置好了,谷歌云可以忽略。其他品牌服务器请确认已经开启了80和443端口如果没有可尝试下面代码操作或者服务器网页端
开启http 80端口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
#安装 EPEL 仓库(谷歌云忽略此步骤,如果你是使用其他品牌vps服务器如果没有安装EPEL请先安装)
sudo yum install epel-release

#安装 Nginx 【 yum remove nginx 如果想删除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” 字段
要解决这一问题需要在终端下键入以下命令:

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(手不要那么贱,有时候不停的申请证书,申请多了会报错,有次数限制切记,建议用二级域名申请如:bac.google.com)

1
2
3
4
5
6
7
centos7  yum install socat  #通过80端口生成证书的依赖
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 证书

移动证书密钥

创建文件夹

首先连接好自己服务器。需要更改root密码请访问。root权限下,指定证书和证书存放绝对路径地址,可以用Finalshell ssh连接工具可视化操作编辑,也可以通过纯代码操作,存放密钥证书路径可自定义。如/etc/ssl下放置密钥和证书.也可以通过代码执行 比如:可以cd / 到根目录, 然后在进入到cd /usr/local/etc路径下,然后创建ssl文件夹 mkdir ssl 这个SSL文件夹下面用来存放证书和密钥. /etc/ssl路径可自定义只是用于存放证书密钥

1
2
3
ecc 安装代码 sudo ~/.acme.sh/acme.sh --installcert -d 域名 --fullchainpath /etc/ssl/v2ray.crt --keypath /etc/ssl/v2ray.key --ecc

rsa 安装代码 sudo ~/.acme.sh/acme.sh --installcert -d 域名 --fullchainpath /etc/ssl/v2ray.crt --keypath /etc/ssl/v2ray.key

配置NGINX *.conf

温馨提示:代码注释无需删除不会影响运行,我只是方便更好理解
vi /etc/nginx/nginx.conf #进入编辑配置文件:长按键盘上D键删除所有配置信息,再按键盘Ins键进入编辑模式复制如下代码黏贴到配置中编辑,填写对应自己的配置信息后。最后同时按键盘组合键 ctrl+shift+: 键,在输入wq保存退出

/etc/nginx/nginx.conf
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;
}

}


}

套件如下:

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 #必须这样操作

最后请输入reboot重启服务器(记得执行)

1
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客户端

客户端 v2ray core请升级到最新版本,添加自定义配置服务器,复制以下代码保存名为 **.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
{
"inbounds": [
{
"port": 1080,
"listen": "127.0.0.1",
"protocol": "socks",
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
},
"settings": {
"auth": "noauth",
"udp": false
}
}
],
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "域名",
"port": 443,
"users": [
{
"encryption": "none",
"id": "UUID自己替换",
"level": 0
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"wsSettings": {
"path": "/abcde"
}
}
}
]
}

查询tls开启状态

https://www.ssllabs.com/ssltest/index.html 输入自己域名查询即可

如果想卸载V2Ray执行下面代码

1
bash install-release.sh --remove

温馨提示:如果想短时间内提升自己的可以参加我的培训,多年实战沉淀精品课程,vIP课程基本上所有平台找不到,一阵见血帮你打通任督二脉,人人都可以是专家
点击课程详情
添加公开电报群


 
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×