视频教程参考:Debian系统基于nginx搭建v2ray服务端配置vmess+tls+websocket详细教程。
篇首语:科学上网(fanqiang)的大体原理都是通过一台在防火墙之外的VPS作为媒介,实现国内网络和防火墙之外的网络之间的互通,因此一台不受防火墙骚扰的VPS是必备的。而v2ray负责的是你的网络和VPS之间的网络通信功能。借助V2ray你可以实现透过防火墙,自由穿梭于网络。你需要做的是分别在你的设备(手机、PC等)和VPS上分别部署一下V2ray。
搭建v2ray的步骤大体如下:
- 购买一个VPS,购买后你会获得VPS的IP、root用户及密码、SSH端口等信息;
- 登录VPS,可以借助Xshell这个工具;
- 安装v2ray,使用xshell成功登录VPS后,开始搭建;
- 在你的设备上配置与VPS对应的v2ray信息,就可以成功使用了;
在开始下面的搭建工作之前,请自行购买VPS并获得VPS的相关连接信息,保证能通过Xshell等远程连接工作连接后才能进行搭建,不论使用哪家的VPS,第一步是购买完VPS之后,获取到VPS的IP、root用户及密码、SSH端口等信息,本文主要说明搭建过程,因此这里将购买VPS及使用XSHELL进行连接的过程放在:史上最详细搬瓦工VPS注册/购买图文教程(内附优惠券) 。
正文开始之前,先插播个广告,推荐一些性价比较高的VPS,有购买VPS打算的,可以使用我的推介链接,这样你不仅可以优惠购买,我也会得到一定的返券,感谢你对我写文创作的支持!没有购买VPS打算的,可以跳过这一部分。
一、搬瓦工VPS推荐
速度、性价比都较好: 老牌商家,一分价钱一分货,套餐选择上肯定是越好的越贵,选择适合自己的,但从速度上来说,VPS 速度:香港线路 > CN2 GIA 线路 > CN2 线路 > 普通线路
。搬瓦工优惠券: BWH3HYATVBJW
,此券为全网当前最高优惠力度:6.58%。
线路 | CPU | 内存 | 硬盘 | 带宽 | 流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
CN2(推荐) | 1x Intel Xeon | 1024 MB | 20 GB SSD | 1 Gbps | 1 TB/月 | $49.99/年 | 购买 |
CN2 GIA(特别推荐) | 2x Intel Xeon | 1 GB | 20GB SSD | 2.5 Gbps | 1000GB/月 | $169.99/年 | 购买 |
CN2 GIA(特别推荐) | 3x Intel Xeon | 2GB | 40G SSD | 2.5Gbps | 2000GB/月 | $299.99/年 | 购买 |
CN2 GIA(推荐) | 4x Intel Xeon | 4 GB | 80 GB SSD | 2.5 Gbps | 3000GB/月 | $549.99/年 | 购买 |
CN2(推荐) | 1x Intel Xeon | 2048 MB | 40 GB SSD | 1 Gbps | 2 TB/月 | $99.99美元/年 | 购买 |
常规 | 2x Intel Xeon | 1024MB | 20 GB SSD | 1 Gbps | 1 TB/月 | $49.99/年 | 购买 |
促销 | 4x Intel Xeon | 4GB | 80GB SSD | 1 Gbps | 3TB/月 | $199.99/年 | 购买 |
促销 | 3x Intel Xeon | 2 GB | 40 GB SSD | 1 Gbps | 2 TB/月 | $99.99/年 | 购买 |
二、Rackerd VPS推荐
性价比较高: 提供大流量、大硬盘,支持PayPal、支付宝、微信等多种付款方式,电信走CN2 GT,联通直达机房(极佳),移动强制走联通链路,算是非CN2线路之外优化的相当不错的。
内存 | CPU | SSD | 流量 | 价格 | 购买 |
---|---|---|---|---|---|
768MB | 1核 | 12GB | 1T/月 | $10.88/年 | 链接 |
2G | 2核 | 35GB | 4T/月 | $24.98/年 | 链接 |
3GB | 3核 | 45GB | 6.5T/月 | $24.28/年 | 链接 |
更多可选超高性价比套餐参见:Racknerd VPS套餐。
三、OLVPS VPS推荐
便宜、低价: 入门级KVM VPS推荐,OLVPS成立于2018年,走的是性价比路线,支持支付宝付款,适合新手。
内存 | CPU | 硬盘 | 流量 | 价格 | 购买 |
---|---|---|---|---|---|
384MB | 1核 | 5GB | 512GB/月 | ¥8/月 | 链接 |
768MB | 2核 | 5GB | 1T/月 | ¥15/月 | 链接 |
1GB | 3核 | 20GB | 2T/月 | ¥30/月 | 链接 |
更多可选超高性价比套餐参见:OLVPS VPS 套餐。
下面再来通过图文,来详细说明上面的步骤。
四、环境信息
- 服务器系统:CentOS Stream release 8;
- 服务端v2ray-core版本:v4.44.0,地址:https://github.com/v2fly/v2ray-core/releases ;
- 客户端Windows图形界面v2rayN:5.9,地址:https://github.com/2dust/v2rayN/releases ;
- VPS:我使用的是digitalocean;
- 使用的是root用户;
五、搭建脚本说明
使用到的官网安装脚本:https://github.com/v2fly/fhs-install-v2ray
,该脚本在执行时会提供info和error等信息,请仔细阅读。
六、搭建v2ray
在上一步骤购买VPS及使用xshell进行远程连接你已经购买并成功使用xshell对VPS进行了远程连接,这里假设你已经使用root用户登录成功了。下面开始安装:
6.1 更新系统
yum update
6.2 安装curl
yum install curl -y
6.3 安装v2ray
使用curl进行安装
// 安裝執行檔和 .dat 資料檔
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
在安装过程中,会打印详细的安装说明,里面有使用的配置文件信息,显示配置文件在/usr/local/etc/v2ray/config.json
这个位置。
输入vi /usr/local/etc/v2ray/config.json
命令,编辑配置文件的内容为以下内容:
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbounds": [{
"port": 11055,
"protocol": "vmess",
"settings": {
"clients": [{
"id": "27848739-7e62-4138-9fd3-098a63964b6b",
"level": 1,
"alterId": 0
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/tech"
}
}
}
],
"outbounds": [{
"protocol": "freedom"
}
]
}
6.4 启动v2ray服务
#启动并加入开机自启
systemctl start v2ray;systemctl enable v2ray
6.5 安装nginx
执行安装
yum install nginx -y
新建网页目录
这里在假设是/root/www
。
mkdir -p /root/www
新建首页
在/root/www
目录下新建一个index.html
文件,
vi /root/www/index.html
内容如下:
<html>
<title>欢迎访问四个空格</title>
<head><meta charset="UTF-8"></head>
<body>
<a href="https://www.yomige.org/install-v2ray-v-4-44-on-debian-2022/">四个空格</a>
</body>
</html>
新建配置文件
注: 不同版本的nginx配置文件可能有区别,我的是nginx/1.18.0
,配置文件/etc/nginx/sites-enabled/default
。或者你的配置文件可能在/etc/nginx/conf.d/default.conf
。
输入vi /etc/nginx/sites-enabled/default
命令,编辑nginx配置文件为如下内容:
server{
listen 80;
server_name v1.xxxx.com;
index index.html;
root /root/www/;
}
这里你可能需要将
/etc/nginx/nginx.conf
中第一行user www-data
改为user root
,即当前用户。
启动nginx服务
#启动Nginx并设置为开机自启
systemctl start nginx;systemctl enable nginx
#查看nginx启动状态
systemctl status nginx
在浏览器里访问v1.xxxx.com
,如果正常则说明nginx配置没问题,这是是没有加密的,不带HTTPS的网址:http://v1.xxxx.com
。
6.6 安装certbot并申请ssl证书
详细的申请证书流程参考: certbot instructions – Nginx on Debian 10 (buster)。具体如下:
安装snapd
yum install -y snapd
systemctl enable snapd
systemctl start snapd
# symlink from /snap to /var/lib/snapd/snap
ln -s /var/lib/snapd/snap /snap
确保snapd为最新版本
snap install core; snap refresh core
安装certbot
snap install --classic certbot
创建软链
ln -s /snap/bin/certbot /usr/bin/certbot
申请证书
运行certbot --nginx
开始申请证书,如下:
稍等一会,会提示证书安装成功! 你会发现nginx的配置已经更改,我的/etc/nginx/sites-enabled/default
文件被自动修改为以下内容:
server{
server_name v1.xxxx.com;
index index.html;
root /root/www/;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/v1.xxxx.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/v1.xxxx.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server{
if ($host = v1.xxxx.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name v1.xxxx.com;
return 404; # managed by Certbot
}
此时,在浏览器里访问v1.xxxx.com
已经是https
开头的了,地址:https://v1.xxxx.com
。
6.7 添加v2ray转发
将/etc/nginx/sites-enabled/default
更改为以下内容:
server{
server_name v1.xxxx.com;
index index.html;
root /root/www/;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/v1.xxxx.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/v1.xxxx.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
## 添加这部分内容,22055对应/usr/local/etc/v2ray/config.json 里面inbounds端口
## /tech客户端配置的时候需要,对应/usr/local/etc/v2ray/config.json streamSettings里的path
location /tech {
proxy_redirect off;
proxy_pass http://127.0.0.1:11055;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
}
server{
if ($host = v1.xxxx.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name v1.xxxx.com;
return 404; # managed by Certbot
}
然后运行systemctl restart nginx
重启nginx。
6.9 客户端v2rayN配置
大体截图:
七、测试
打开浏览器,访问www.google.com
,如下:
真巧,今天春分,祝大家春风得意!
八、出现问题
8.1 Debian系统删除、回车不好用?
8.2 Cloudflare要不要启用CDN?
启用后比较慢,针对国内,作用可能会隐藏真实IP,除非IP被墙,大概率你是不需要启用的。
8.3 Nginx 403 forbidden错误常见情形盘点?
如果访问你的域名,nginx日志出现403错误,可以参考这篇文章:Nginx 403 forbidden错误常见情形盘点。
8.4 使用v2ray访问谷歌提示异常流量?
解决办法详见: 使用v2ray访问谷歌提示异常流量。
8.5 启用cloudflare cdn之后v2ray报403错误?
解决办法详见: 启用cloudflare cdn之后v2ray报403错误。
8.6 防火墙端口管理
解决办法详见: CentOS开放端口的方法。
8.7 Nginx日志,访问path路径,502错误?
解决办法详见: SELinux服务器Nginx反向代理返回502错误问题。
九、问题交流
- Telegram群组
在学习的过程中遇到任何问题都可以加入Telegram群组进行交流-> 加入群组。
- 邮件:
有问题您可以可以通过邮件进行沟通:欢迎联系。
上面这个几个vps都没货,其他的都太贵了,还有没有实惠的推荐?
性价比比较好的,CN2 GIA-E
限量版$89.99/年(经常断货),还有一个就是CN2 GIA-E $169.99/年那款,速度没得说,我是用的CN2 GIA-E $299.99/年 这个,博客也是在上面弄得。如果单一用途就选$49.99 美元 / 年 那款吧,但是速度可能差点。参考:https://www.yomige.org/20g-bandwagonhost-cn2-gia-e-ecommerce/
出现问题:Can‘t open PID file /var/run/nginx.pid (yet?) after start: No such
加上了一行:[root@node02 ~]# vim /etc/systemd/system/nginx.service.d/override.conf
[Service]
ExecStartPost=/bin/sleep 0.1
后问题解决。
但是还是403,文章中的解决办法没有用
你好大神,如果修改v2ray为全局代理,该怎么设置呢????
## 添加这部分内容,21923对应/usr/local/etc/v2ray/config.json 里面inbounds端口
## /jd客户端配置的时候需要,对应/usr/local/etc/v2ray/config.json streamSettings里的path
老师,这两句在文章3.8的配置文件里面出现,看不懂什么意思呢??
更改的是Nginx配置文件,在server部分添加
“inbounds”: [{
“port”: 21923,
“protocol”: “vmess”,
“settings”: {
“clients”: [{
“id”: “27848739-7e62-4138-9fd3-098a63964b6b”,
老师,端口和ID不用您的21923和这个ID就不通,用客户端生成的ID也不行,这是怎么回事?
邮件发下你的配置我看看那里有问题吧
没有留邮箱吗?有个问题想请教一下
没有办法私信博主吗
[Warning] [3127504739] v2ray.com/core/app/proxyman/outbound: failed to process outbound traffic > v2ray.com/core/proxy/vmess/outbound: failed to find an available destination > v2ray.com/core/common/retry: [v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://123.456.789.123/LxZfdsaf): > dial tcp 123.456.789.123:443: operation was canceled] > v2ray.com/core/common/retry: all retry attempts failed
刚装完是可以通的,但现在打开提示这个错误:failed to handler mux client connection > v2ray.com/core/proxy/vmess/outbound: connection ends > v2ray.com/core/proxy/vmess/outbound: failed to read header > v2ray.com/core/proxy/vmess/encoding: failed to read response header > websocket: close 1000 (normal
请教这是啥原因?
alterid 设置的多少?