MoeCEO

MoeCEO

BTPanel & X-UI 搭建 Vless 代理

2024-05-31

此文章不知道是什么时候写的了。因为都是几年前的记录了,所以请根据自身情况调整。仅作为入手的初步参照吧。

相关说明

相关资产

域名(可在海外注册域名或国内注册域名、也可以去使用免费的域名。)

CDN(并非强制需求。)

服务器(根据自身需求选配,1H1G配置便可带得动此教程,网络带宽根据需求进行选择。)

前端部分

作用:隐藏被代理流量,防止被拦截窃取信息。

后端部分

作用:将代理流量转发发送。建立流量中转通道。

相关安装

使用面板:BTPanel、X-UI

运行环境:NGINX、PHP

扩展插件:Linux工具箱

操作流程

安装面板

以Ubuntu为例:

## 安装宝塔面板
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
## 安装X-UI
bash <(curl -Ls https://raw.githubusercontent.com/sprov065/x-ui/master/install.sh)

注:通过SSH输入安装脚本命令进行安装,安装完成后可视情况对其进行修改。

调试前端

打开BTPanel,输入账号密码进行登录面板,进入后还会要求登录BT面板官网的账号密码(可通过修改代码永久绕过或者浏览器开发者模式临时绕过),然后在弹出的推荐安装软件中选择NGINX、PHP、两项进行安装,也可直接去左边的侧边栏的软件商店进行安装。这里因为习惯的原因开启了首页显示。NGING选择的是1.18.0版本。PHP选择的是5.6版本。(前端网站根据爱好随意搭建,具体的NGINX版本根据需求随意选择即可。此次用的网站程序源码需要的是PHP5.6+,故此安装PHP5.6版本,如果是纯静态页面则无需安装其他环境。)

代理btpanel+x-ui-1.webp

打开BT面板侧边栏的安全选项。将54321(刚才的X-ui的面板端口)放行。为了安全可以后续为其进行反代。

代理btpanel+x-ui-2.webp

按照如图所示进行选择。(其实PHP可以不用安装、这里是为了和我的一个程序配套所以安装的。)

点击一下网站名栏目下的绿色域名字段,打开网站管理窗口。在SSL选项里申请一下Let's Encrypt证书。

然后在反向代理里面添加一个反向代理。

代理btpanel+x-ui-3.webp

代理名称、代理目录、目标URL的端口均可自定义。其中代理目录、目标URL的端口在后端部分需要用到。

提交后点击配置文件。需要修改一下配置文件。

### 视情况修改代理目录、目标URL的端口。
location /link {
        proxy_redirect off;
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 300s;
        # Show realip in v2ray access.log
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

通过BT面板侧边栏或者直接点击绿色的根目录字串直接跳转到网站根目录。

把前端部分的网站文件上传到根目录下。解压源码压缩包。

代理btpanel+x-ui-4.webp

这里使用MoeMiniproxy程序作为伪装网站。

即将代理流量伪装成为MoeMiniproxy网站link目录下的HTTPS流量。

服务器会将访问link目录的流量反代到代理程序中。其他的目录则是正常的页面访问。

这里前端部分就完成了,如果是用Typecho或Wordpress这样的CMS程序作为前端伪装网站,这时还需要继续进行安装等等流程。

调试后端

打开X-UI管理面板。记得端口要在BT面板安全界面放行。

在侧边栏入站列表页面里添加一个代理。

备注自定义填写。协议这里使用的是Vless作为案例。端口部分填入反代中的目标URL的端口(这个端口不需要安全组放行)。id是随机的,也可以使用自己指定的,注意格式就行。传输选择WS。路径部分填入反代中的代理目录。

监听IP与fallbacks不懂的话不要填写。请求头与tls不需要写。

总流量与到期时间可视情况自行填写。

代理btpanel+x-ui-5.webp

为了安全,后续可以在防火墙上将X-Ui的端口关闭掉,在X-Ui中设置访问目录,然后通过NGINX进行代理转发到前端网站的二级目录下。

调试客户端

这里使用的是v2rayN的客户端。

地址部分填写域名,id按照X-ui里面的id进行填写。别名自定义。伪装域名部分和地址同样填写域名。路径按照反代中的代理目录进行填写。其他的如图所示。

代理btpanel+x-ui-6.webp

此教程颇为简洁,很多部分并不完善,仅供参考使用。具体调整请结合自身需求。