今天有时间把v2ray的最稳定的传输模式搭建教程写了,这里只写大家最容易的方式构建,尽量使用图形化的方式来操作,教程分为两类,搭建一个正常的网页程序用来伪装,另一个是v2ray的配置

前提:有一个域名

如果你没有域名的话,可以选择海外免费的域名tk、ga等等

大家可以到freenom 免费申请 http://www.freenom.com/zh/index.html?lang=zh 一次可免费申请12个月

申请到域名后,将域名解析到你的ip上,大家可以到cloudflare(https://www.cloudflare.com/)这个国外最大的dns解析商去注册账号然后选择免费的套餐,然后根据提示解析域名(如果不懂我会单独写一篇文章教你如何建网站,欢迎留言)

解析成功后你可以在Windows下通过cmd命令ping一下这个域名,检测是否域名解析到了你服务器的ip上

Step1:一台海外服务器

服务器相当于一台有公网ip的电脑,可以被世界各地访问(当然没有被你的运营商屏蔽)这里推荐使用vultrupcloud,因为对新手比较友好,支持随时销毁随时更换,按小时计费,且支持alipaywechat,如果你决定尝试搭建代理服务器并租用服务器的话,可以通过下方的链接注册,我也可以得到奖励哦。

https://www.vultr.com/?ref=7483590 (可以免费体验一个月,有50美金的余额)
不过vultr有被玩烂了的迹象,可以用upcloud(配置比较好),不过需要信用卡
https://upcloud.com/signup/?promo=R2U8F8

当大家根据教程走成功了之后,可以考虑换到更便宜且对大陆访问更友好的香港服务器,比如阿里云香港国际2.5美元一个月

补充:服务器除了能搭建代理之外,还可以做网站,比如我现在的博客,此外还可以装一些脚本实现快速下载视频等等

Step2:安装bt面板

这里已经默认大家租好了服务器,并且学会了连接服务器的方法,如果你还不会请自行谷歌、必应

下面安装宝塔面板, 请选择与自己系统对应的代码安装

# centos7+
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
# Ubuntu16.04+
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
# Debian7+
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

安装好后记录你的面板地址以及账号密码,如果Bt-Panel是ipv6类型的地址,你可以在浏览器中手动改为服务器的ipv4地址(原因是国内很多地方还没开通ipv6访问使用)

比如http://[2001:19f0:7002:12de:5400:2ff:fe74:f14]:8888/5a5f4627换成http://149.28.19.33:8888/5a5f4627

然后打开浏览器输入上述地址,输入用户名密码,进入界面,选择Nginx+Mysql+php7.3其他默认即可

example

等程序安装好后(30-60分钟不等取决于服务器速度),然后新建站点

example

点文件,进入你网站的根目录,如/www/wwwroot/www.gao16.tk,把里面的内容都删掉,剩下的一个删不掉不用管,然后点远程下载,url填:https://download.nextcloud.com/server/releases/nextcloud-17.0.1.zip ,下载好后解压压缩包,然后进入解压后的文件夹,把里面的文件全选,剪切到根目录即/www/wwwroot/www.gao16.tk下。然后在浏览器输入你的域名如www.gao16.tk,根据要求把这个网盘程序安装好,比如让你输入数据库的信息你就打开面板的数据库选项,找到你刚才创建的数据库把信息填到安装界面的选项里,点安装即可(数据库地址不用动默认就好)

SSL选项,选Let’s Encrypt,填上你的邮箱然后点申请,申请成功后再点击该页面下的配置文件记录下箭头所指的证书和密钥的地址记住不要最后的分号,把这些地址单独保存下来,后面要用到

Step3:安装v2ray

Xshell或者Puttyssh连接工具连接你的服务器,输入一下命令并执行

source <(curl -sL https://multi.netlify.com/v2ray.sh) --zh

安装好后,输入v2ray 然后修改传输方式为WebSocket ,域名填你上面添加网站时写的域名如www.gao16.tk配置好后可以查看下配置,是否改成功了

把你的Port端口还有最后面的path记录下来,路径要完整比如/bHaB1Uqz/别把两个/忽略了,上面是什么你就复制什么

Nginx配置反向代理

接下来回到宝塔面板,在配置文件中加上这段代码,请把相关参数改为自己的,然后保存

location /bHaB1Uqz/ {
proxy_pass       http://127.0.0.1:556;
proxy_redirect             off;
proxy_http_version         1.1;
proxy_set_header Upgrade   $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host      $http_host;
}

Apache2 配置反向代理

使用了上面宝塔面板的不用管这个

首先开启Apache2以下模块

sudo a2enmod ssl
sudo a2enmod proxy
sudo a2enmod proxy_wstunnel
sudo a2enmod proxy_http
sudo a2enmod rewrite
sudo a2enmod headers

进入sites-enabled,找到443的配置文件,如XXX-le-ssl.conf,添加以下配置

<LocationMatch "/{ws_path}}/">
	ProxyPass ws://127.0.0.1:{port}/{ws_path}/ upgrade=WebSocket
	ProxyAddHeaders Off
	ProxyPreserveHost On
	RequestHeader set Host %{HTTP_HOST}s
	RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s
</LocationMatch>

示例配置:

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName ser3.hibobmaster.top
        DocumentRoot /var/www/pan

SSLCertificateFile /etc/letsencrypt/live/ser3.hibobmaster.top/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ser3.hibobmaster.top/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

<LocationMatch "/vxW6merU/">
        ProxyPass ws://127.0.0.1:22909/vxW6merU/ 
        ProxyAddHeaders Off
        ProxyPreserveHost On
        RequestHeader set Host %{HTTP_HOST}s
        RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s
</LocationMatch>
</VirtualHost>
</IfModule>

重启Apache2

systemctl restart apache2

这时,你通过浏览器访问 https://<你的域名>/{wspath}/ 应该是这样的

样例展示
配置成功的效果

或者参考: https://guide.v2fly.org/advanced/wss_and_web.html

Caddy 配置反向代理

下载Caddy并解压

wget https://github.com/caddyserver/caddy/releases/download/v1.0.4/caddy_v1.0.4_linux_amd64.tar.gz && tar -zxvf caddy_v1.0.4_linux_amd64.tar.gz

将caddy加入到$PATH

sudo mv caddy /usr/local/bin/

创建一个用户组和一个用户

groupadd --system www-data
useradd --system \
	--gid www-data \
	--create-home \
	--home-dir /var/lib/caddy \
	--shell /usr/sbin/nologin \
	--comment "Caddy web server" \
	www-data

将caddy用systemd来管理

sudo mv init/linux-systemd/caddy.service   /etc/systemd/system/ 
sudo systemctl daemon-reload
sudo systemctl enable caddy
sudo systemctl start caddy

接下来修改caddy配置文件Caddyfile ,并写下如下配置

sudo mkdir /etc/caddy && sudo mkdir /etc/ssl/caddy
sudo chown www-data:www-data /etc/caddy /etc/ssl/caddy
nano /etc/caddy/Caddyfile
# Caddyfile配置文件
pan.myroad.fun {
	log stdout
	tls yourmail@gmail.com
	proxy /vxW6merU/ localhost:22909 {
		websocket
		header_upstream -Origin
	}
}

当然你也可以按照 v2ray白话文指南中的配置

pan.myroad.fun {
		log ./caddy.log
		tls yourmail@gmail.com {
		protocols tls1.2 tls1.3
                ciphers ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305
                }
		proxy /vxW6merU/ localhost:22909 {
		    websocket
		    header_upstream -Origin
		}
}

最后重载caddy

sudo systemctl reload caddy

此外你还可以顺便利用caddy的file_server功能搭建个小网盘,更改上面的Caddyfile , 顺便创建个文件夹 mkdir -p /var/www/pan

pan.myroad.fun {
	log stdout
	tls yourmail@gmail.com
	proxy /vxW6merU/ localhost:22909 {
		websocket
		header_upstream -Origin
	}
        proxy / localhost:2015
}
localhost:2015 {
        gzip
        root /var/www/pan
        browse
}
sudo systemctl reload caddy.service

如果出现问题,就根据提示排错,实际效果长这样


最后说说使用,你在连接服务器后输入v2ray(如果你是通过一键脚本安装的)里面不是有个查看配置,你选择了之后,会有一长串vmess:打头的串码,你把那串代码复制然后导入到手机或电脑的对应客户端上之后,把端口改为443就可以使用了,这一套配置ws+tls+nginx目前可以说是最稳定快速的方式,当然你还可以再稳妥一些,使用cloudflare解析你的域名的同时,把那朵云给勾上,这样你的ip地址就被隐藏起来了。

再将SSL/Tls配置那改为Full,就可以了,基本不出意外的话,服务器不可能被封,这也是敏感时期最好的代理方式了。

F&Q

1.客户端的使用

https://blog.hibobmaster.com/software/v2ray-clients-tutorial/

2.有待补充

参考文档:

Apache2 反向代理配置: https://xzos.net/websockettlscdnweb-apache2-deploys-v2ray/


BobMaster

天地之间有杆秤,那秤砣是老百姓

发表评论

电子邮件地址不会被公开。 必填项已用*标注

我不是机器人*

珍惜当下,陪伴爱你和你爱的人