【自建】建立自己的代理机场
自建机场
声明:本方法建立的机场仅限技术交流,无实际交易教程!
本方法搭建的机场属于代理直连的方式,非中转机场等高级玩法
先用两句话说明自建机场的逻辑
1、用
Xboard创建机场的前端,在一台服务器A上部署即可,用户管理、流量管理等功能全在这上面2、使用
V2bX创建机场的后端(运行了各种代理服务,如ss, v2ray, hysteria2等)。V2bX会获取节点信息、用户鉴权信息与上报用户流量到服务器A,V2bX部署在服务器A,B,C,D等
Xboard部署教程
安装
下面是使用Docker-Compose进行部署
仅在服务器A上部署
Xboard更多安装方式参考:https://github.com/cedar2025/Xboard
安装docker
1  | curl -sSL https://get.docker.com | bash  | 
获取Docker compose 文件
1  | git clone -b docker-compose --depth 1 https://github.com/cedar2025/Xboard  | 
执行数据库安装命令
自动选择 启用sqlite 和 Docker内置的Redis
修改下面的your_admin_email@example.com 为自己的管理员账号
1  | docker compose run -it --rm -e enable_sqlite=true -e enable_redis=true -e admin_account=your_admin_email@example.com xboard php artisan xboard:install  | 
手动根据自己的需要在运行时选择sqlite和redis,以及手动输入管理员账号
1  | docker compose run -it --rm xboard php artisan xboard:install  | 
执行这条命令之后,会返回你的后台地址(asdfasqeb)和管理员账号密码(你需要记录下来后台地址)!
你需要执行下面的 启动xborad 步骤之后才能访问后台
启动Xboard
1  | docker compose up -d  | 
安装完成之后即可访问你的站点
访问站点
启动之后网站端口默认为7001, 你可以配置nginx反向代理使用80端口
网站地址: http://你的IP:7001/
后台地址:http://你的IP:7001/asdfasqeb
在此你已经成功部署了, 你可以访问网址体验Xboard的完整功能,
如果你需要使用mysql,请自行安装Mysql后重新部署
更新
修改版本
1  | cd Xboard  | 
修改docker-compose.yaml 当中image后面的版本号为你需要的版本
如果为版本为latest 则可以忽略这一步,直接进行第二步
更新数据库(可以执行多次都是安全的)
1  | docker compose pull  | 
即可更新成功
回滚
此回滚不回滚数据库,是否回滚数据库请查看相关文档
回退版本
1  | vi docker-compose.yaml  | 
修改docker-compose.yaml 当中image后面的版本号为更新前的版本号
启动
1  | docker compose up -d  | 
注意
启用webman后做的任何代码修改都需要重启生效
Xboard添加节点
在Xboard的管理页面添加节点,在添加节点前,先添加一个订阅服务(金额流量等信息可以随便填写)
这里以配置hysteria2为例,并且是使用自签证书的形式,所以下面的域名是bing.com
在Xboard里先一个节点
- 
节点名称 :任意
 - 
倍率:任意
 - 
节点地址:将运行hysteria的服务器(可以是服务器A,B,C,D等),写公网IP地址
 - 
连接端口:选择服务器A(运行了board)上空闲的端口
 - 
服务端口:将运行hysteria2的服务器(如B,C,D)中hysteria2进程的端口
- 连接端口和服务端口要写一样的,否则无法正常使用,理论上应该是可以不同的,但可能是bug
 
 - 
允许不安全:是
 - 
协议版本:v2
 - 
开启obfs:否
 - 
sni:bing.com
- 如果使用公认证书,请输入指向这台服务器的域名(A,B,C,D等运行hy协议的服务器)
 
 - 
上行带宽:100
 - 
下行带宽:200
 - 
父节点:无
 
至此,已经完成了前端的工作,后面是将添加的节点进行实际运行起来,节点的部署可以运行在不同于服务器A(运行了Xboard)的机器B,C,D上
强烈推荐在部署节点之前,先配置好https访问,后面两步是配置https的过程
- 先配置http访问
 - 再配置https访问,不要跳过
 
使用HTTP访问
要将运行在Docker容器中的服务通过域名访问,并使用Nginx作为反向代理来转发到宿主机的7001端口,你需要完成几个步骤。这包括设置DNS记录、配置Nginx以及确保网络安全。下面是具体步骤:
步骤 1: 设置DNS记录
确保你的域名 board.lthero.top 的DNS记录指向托管Nginx的服务器的IP地址。这通常在你的域名注册商处进行设置:
- A记录:将域名指向IPv4地址。
 - AAAA记录:将域名指向IPv6地址(如果适用)。
 
步骤 2: 安装并启动Nginx
步骤 1: 更新软件包列表
打开终端,首先使用apt命令更新你的包列表,以确保你安装的是最新版本的Nginx。
1  | sudo apt update  | 
步骤 2: 安装Nginx
使用apt安装Nginx。
1  | sudo apt install nginx  | 
步骤 3: 配置Nginx
你需要在Nginx中创建一个新的服务器块(server block),或者在已有的默认配置中修改,以设置反向代理。以下是一个基本的Nginx配置示例,将会把所有到 board.lthero.top 的请求转发到本地的7001端口:
- 
打开或创建一个新的Nginx配置文件:
1
sudo vim /etc/nginx/sites-available/board.lthero.top
 - 
添加以下配置:
1
2
3
4
5
6
7
8
9
10
11
12
13server {
listen 80;
server_name board.lthero.top;
location / {
proxy_pass http://localhost:7001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}这个配置做了以下几点:
listen 80;告诉Nginx监听80端口(HTTP标准端口)。server_name board.lthero.top;设置这个块应当响应的域名。proxy_pass http://localhost:7001;指定所有传入的请求转发到本地的7001端口。proxy_set_header指令将重要的HTTP头信息转发给后端应用。
 - 
启用配置文件通过创建一个符号链接:
1
sudo ln -s /etc/nginx/sites-available/board.lthero.top /etc/nginx/sites-enabled/
 - 
检查Nginx配置文件是否有语法错误:
1
sudo nginx -t
 - 
如果没有错误,重启Nginx以应用配置:
1
sudo systemctl restart nginx
 
步骤 4: 调整防火墙规则
确保你的服务器的防火墙规则允许HTTP(端口80)和HTTPS(端口443,如果你使用SSL)的流量。如果你正在使用ufw,可以使用以下命令:
1  | sudo ufw allow 'Nginx Full'  | 
步骤 5: 测试配置
在浏览器中输入 http://board.lthero.top 或使用命令行工具如 curl 来测试你的配置:
1  | curl http://board.lthero.top  | 
你应该能看到从Docker容器中运行的服务响应的内容。
这样,你就配置好了Nginx作为反向代理,将域名 board.lthero.top 的流量转发到宿主机的7001端口上的服务。如果你希望使用HTTPS,你还需要设置SSL证书,可以考虑使用Let’s Encrypt免费证书并配置HTTPS。
使用HTTPS访问
要让你的域名 board.lthero.top 使用 HTTPS,你需要获取 SSL/TLS 证书,并配置 Nginx 以使用这些证书来加密网页内容。以下是详细的步骤,包括如何使用 Let’s Encrypt 提供的免费证书自动化这个过程。
步骤 1: 安装 Certbot
Certbot 是一个自动获取并安装 Let’s Encrypt 证书的客户端。在 Ubuntu 上安装 Certbot 及其 Nginx 插件非常简单:
1  | sudo apt update  | 
步骤 2: 获取和安装证书
使用 Certbot 获取并为你的域名安装证书:
1  | sudo certbot --nginx -d board.lthero.top  | 
此命令会自动为指定的域名 board.lthero.top 配置 SSL 证书,并更新 Nginx 配置以使用这些证书。
Certbot 会询问你一些问题,比如电子邮件地址(用于紧急联系和证书续订提醒)
以及是否重定向所有 HTTP 请求到 HTTPS(强烈建议启用),如果启用,它用自动修改board.lthero.top的nginx配置文件,
生成的证书位置/etc/letsencrypt/live/
步骤 3: 更新 Nginx 配置
如果你想手动编辑 Nginx 配置文件,可以按以下方式配置:
1  | sudo vim /etc/nginx/sites-available/board.lthero.top  | 
- 如果你的配置文件里已经出现“# managed by Certbot”等内容,说明Certbot已经将配置文件修改好了,直接重启nginx即可
 - 记得将下面所有的board.lthero.top换成你的域名
 - 这里的7001端口是Xboard运行端口
 
1  | server {  | 
步骤 4: 重新加载 Nginx
更改配置后,需要重新加载 Nginx 以应用新的配置:
检查配置文件是否有语法错误,如果有warn!直接看“遇到的问题”部分,重新加载配置是不一定能work的
1  | sudo nginx -t # 检查配置文件是否有语法错误  | 
步骤 5: 验证 HTTPS
在浏览器中访问 https://board.lthero.top 来检查是否配置成功。你应该能够看到一个安全锁标志,表明连接是通过 HTTPS 加密的。
步骤 6: 自动续订证书
Let’s Encrypt 的证书有效期为90天,因此建议设置自动续订:
1  | sudo certbot renew  | 
这个命令会测试证书续订过程。如果这个测试成功,添加定时任务crontab:
crontab -e再填写下面内容,表示每月第一天会自动执行
通过which certbot查看具体程序位置/usr/local/bin/certbot
1  | 0 0 1 * * /usr/local/bin/certbot renew --deploy-hook "nginx -s reload"  | 
续签的证书位置/etc/letsencrypt/renewal
通过以上步骤,你的站点 board.lthero.top 现在应该能够安全地使用 HTTPS 进行通信了。
如果要换crontab编辑器,运行下面的命令
1  | select-editor  | 
至此,已经配置好https访问,下面开始部署代理服务
V2bX部署代理服务
在需要**运行节点的服务器(A,B,C,D等)**上安装V2bX,从而运行hysteria2, v2ray, vless, ss等协议
在V2bX上运行的代理协议可对接到Xboard上,会将用户使用情况上传到Xboard上并统计
V2bX安装
执行下面的命令,安装V2bX
1  | wget -N https://raw.githubusercontent.com/wyx2685/V2bX-script/master/install.sh && bash install.sh  | 
配置文件路径:/etc/V2bX 配置文件详见:配置文件说明
下面是在服务器B上运行hysteria2协议的配置过程
- 
输入机场网址与API Key
- 机场网址就是域名https://board.lthero.top,而API key在Xboard的管理网页中,找到“系统配置”->“节点”->“通讯密钥”
 - 原理是V2bX拿着密钥,到board.lthero.top上面获取你配置的节点的信息;根据这些节点信息,V2bX在服务器(A,B,C,D)上运行服务(如hysteria2协议,Vless协议等)
 
 - 
选择核心:singbox 对应的序号
 - 
选择协议:hysteria2 对应的序号
 - 
证书模式:self模式 对应的序号
- 如果使用公认证书,请使用http模式,你需要解析一个域名到这个服务器B的节点服务,如:hy-jp-b.lthero.top
 - 如果你仍然使用服务器A运行节点,请不要使用board.lthero.top,请重新配置一条域名解析到节点服务,如:,如:hy-jp-a.lthero.top
 
 - 
输入节点证书域名:bing.com
- 如果使用公认证书,请输入指向这台VPS的域名
 
 - 
输入n退出(除非想添加其它协议)
 
随后,输入 V2bX 查看V2bX的配置或修改配置文件,每次修改配置文件后V2bX会自动重启
这里吐槽一句啊,它只能初始化的时候使用交互方式进行文件配置,后续只能手动修改配置文件,对新手不友好。
如果想重新使用交互方式,只能将V2bX卸载后重装。
hysteria2自签证书的配置文件
1  | {  | 
hysteria2使用证书
1  | "Nodes": [{  | 
其它对接Xboard的工具
除了V2bX,还有个对接Xboard的工具:
https://github.com/FireinRainLab/hysteria-v2board
https://github.com/cedar2025/hysteria
这工具是将hysteria2打包到docker中,并且将用户使用数据对接到Xboard/V2board
蒸蒸日上的工具
一键抢主机脚本
https://chromewebstore.google.com/detail/one-click-checkout-for-wh/
支持 * RackNerd * SpartanHost * GreenCloudVPS
主机全方面测试
包含主机cpu性能、磁盘测试、流媒体解锁测试、速度及延迟测试等
1  | curl -L https://github.com/spiritLHLS/ecs/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh  | 
工具来源:https://digvps.com/tools/ecs
流媒体解锁检测
RegionRestrictionCheck 检测脚本检测项目比较全面,且支持Docker运行,杜绝污染VPS服务器,检测流媒体除了主流的Netflix、Disney+、YouTube Premium,还可以支持检测Dazn、Viu TV、4GTV和KKTV等比较冷门的流媒体服务。
支持OS/Platform:CentOS 6+, Ubuntu 14.04+, Debian 8+, MacOS, Android with Termux
使用方法
1  | bash <(curl -L -s check.unlock.media)  | 
只检测IPv4结果:
1  | bash <(curl -L -s check.unlock.media) -M 4  | 
只检测IPv6结果:
1  | bash <(curl -L -s check.unlock.media) -M 6  | 
部分测试结果
DO
美国SF-1c2g
https://paste.spiritlhl.net/code/K1XMh0.txt
RackNerd
美国LA-1c2g
https://paste.spiritlhl.net/code/ECrxxe.txt
美国LA-2c2.5g
https://paste.spiritlhl.net/code/dKstV2.txt
美国LA-黑五闪够 2c2g
https://paste.spiritlhl.net/code/t9bdNE.txt
Akile
美国LA-1c1g
https://paste.spiritlhl.net/code/GWNS6v.txt
香港2c2g(元旦)
https://paste.spiritlhl.net/code/taeLVN.txt
vkvm
美国LA-2c4g
https://paste.spiritlhl.net/#/show/9taqwb.txt
物语云
宁波2c-2g
https://paste.spiritlhl.net/#/show/gyE4an.txt
HoHo
https://myprepaid-server.com/index.php
德国4c4g,无限流量
http://hpaste.spiritlhl.net/#/show/hNQzX.txt
Claw
日本(原35刀一年)
https://paste.spiritlhl.net/#/show/GofO6.txt
Netcup
德国(6刀/月)非常贵了,但6c8g,250GB硬盘
https://paste.spiritlhl.net/#/show/VIxzk.txt
1 线程测试(单核)得分:          2927 Scores
6 线程测试(多核)得分:          9569 Scores
Bage
美国(4.5刀/月)非常贵,1c2g,9950X非常好的cpu,单核心分数6500,吊打多核心的
https://paste.spiritlhl.net/#/show/FOt39.txt
1 线程测试(单核)得分: 6538 Scores
哎可惜之前买的德国退掉了,现在想买德国的反而没货……只剩下美国
vkvm家的不大行,超售,导致机器实际性能与纸上数据相差非常大;
Akile的跑分不错,实际测试性能还行,至少一边运行docker并上传一个500MB文件,另一边使用hy2看4k视频能到9万分;
Racknerd和DO的,主打个内存大,但cpu性能一般;
遇到的问题
用户订阅链接无输出
如果所有节点都是hysteria2协议,会出现订阅链接输出是空白;此时直接在pc端导入到clash是正常的
尝试添加如vless协议的节点,但在安卓、苹果端仍然无法直接导入hysteria2协议
数据迁移
数据库位置:/root/Xboard/.docker/.data/database.sqlite








