v2ray-build-up-tutorial-advanced

今天有时间把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/v2.0.0-rc.3/caddy_2.0.0-rc.3_linux_amd64.tar.gz
tar zxvf caddy_2.0.0-rc.3_linux_amd64.tar.gz && rm caddy_2.0.0-rc.3_linux_amd64.tar.gz

将caddy加入到$PATH

sudo mv caddy /usr/bin/

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

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

将caddy用systemd来管理

sudo vim /etc/systemd/system/caddy.service 
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target

[Service]
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable caddy
sudo systemctl start caddy

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

sudo mkdir /etc/caddy && sudo mkdir /etc/ssl/caddy
nano /etc/caddy/Caddyfile
# Caddyfile配置文件
fly.myroad.fun {
	reverse_proxy /ray localhost:50002 {
		header_up -Origin
}	
}

最后重启caddy

sudo systemctl restart caddy

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

fly.myroad.fun {
	root * /var/www/pan
	file_server browse
	encode gzip
	reverse_proxy /ray localhost:50002 {
		header_up -Origin
}	
}
sudo systemctl restart caddy

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


最后如果你的线路不是特别好或者ip已经被封,你可以使用cloudflare CDN来缓解上述问题,同时隐藏真实ip

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

F&Q

1.客户端的使用

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

参考文档:

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

Caddy upgrade to V2
https://caddyserver.com/docs/v2-upgrade

暂无评论

发送评论 编辑评论

上一篇
下一篇