前言
由于工作环境的需要,我们通常需要一些魔法代理。过去使用xui来搭建面板,但是作者很久没更新了。如今出现了很多变种版本,这里我使用的是伊朗开发的3xui。这里记录下我的搭建过程。
准备工作
- vps一台,新手请重置好主流的操作系统(CentOS / Debian / Ubuntu)
- 域名一个,并解析到你的vps。
搭建面板
安装docker,docker-compose
我是采用docker容器搭建,这样就可以不干扰其他的服务。我的系统是Debain9,所以我根据官网的Debian9安装教程安装。其他的操作系统请在我提供的链接跳转后,在左侧选择你的系统版本。
-
升级仓库
sudo apt update sudo apt upgrade -y -
安装依赖
sudo apt install -y \ ca-certificates \ curl \ gnupg \ lsb-release -
添加 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg \ | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg -
添加 Docker 软件源
echo \ "deb [arch=$(dpkg --print-architecture) \ signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt update更新软件源 -
安装Docker
sudo apt install -y \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin
查看状态
systemctl status docker
安装面板
执行如下的命令
# 创建并进入到文件夹中
mkdir x-ui && cd x-ui
创建配置文件 vim docker-compose.yml ,并写入下面的内容。
version: "3.9"
services:
xui:
image: ghcr.io/mhsanaei/3x-ui:latest
container_name: xui
volumes:
- $PWD/db/:/etc/x-ui/
- $PWD/cert/:/root/cert/
environment:
- XRAY_VMESS_AEAD_FORCED=false
restart: unless-stopped
network_mode: host
然后执行如下命令
# 启动容器
docker compose up -d
# 停止并删除容器
docker compose down
# 更新容器的镜像
docker pull ghcr.io/mhsanaei/3x-ui:latest
启动成功之后,可以用你的vps中的ip:54321访问,就可以看到面板页面了。
域名配置(ssl开启)
- 假设你的 x-ui 端口是
54321 - 假设你的 IP 是
10.10.10.10 - 假设你的域名是
xui.example.com,且已经做好 A 记录解析 - 假设你使用的是 Debian 10+或者 Ubuntu 18+的系统
- 假设你的邮箱是
[email protected]
- 安装必要软件
sudo apt update
sudo apt install snapd nginx
sudo systemctl restart snapd
sudo snap refresh core
sudo snap install core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
-
新建一个配置文件
touch /etc/nginx/conf.d/xui.conf增加以下配置,按照实际情况调整
server { listen 80; listen [::]:80; server_name xui.example.com; location / { proxy_redirect off; proxy_pass <http://127.0.0.1:54321>; proxy_http_version 1.1; proxy_set_header Host $host; } # 反代websocket location /xray { proxy_redirect off; proxy_pass <http://127.0.0.1:10001>; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Y-Real-IP $realip_remote_addr; } } -
检查配置文件
nginx -t -
申请证书,按照提示设置
certbot --nginx --agree-tos --no-eff-email --email [email protected]更多细节可以参考 cerbot
-
刷新Nginx配置
nginx -s reload -
配置定时任务
sudo certbot renew --dry-run -
申请其他的域名证书
certbot --nginx -d xx.com -d www.xx.com
之后在面板里面配置证书位置,将证书就可以用域名:端口的形式访问。
开启BBR加速
我推荐debian13 系统
创建配置文件:
sudo nano /etc/sysctl.d/99-bbr.conf
写入:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
保存后执行:
sudo sysctl --system
或者:
sudo sysctl -p /etc/sysctl.d/99-bbr.conf
这样重启后依然生效。
certbot常用指令
1.查看证书指令
certbot certificates
-
手动续期
方法1:certbot --nginx certonly -n -d domaindomain为你的域名
方法2:
certbot renew --cert-name domain --dry-run -
删除证书
sudo certbot delete --cert-name example.com
Reality协议
目标网站最低标准:国外网站,支持 TLSv1.3 与 H2,域名非跳转用
加分项:IP 相近(更像,且延迟低),Server Hello 后的握手消息一起加密(如 dl.google.com),有 OCSP Stapling
配置加分项:禁回国流量,TCP/80、UDP/443 也转发(REALITY 对外表现即为端口转发,目标 IP 冷门或许更好)
可以使用这个网站:点击访问 ,来寻找 TLS1.3 / X25519 / H2 的指向站点。
也可以使用这个网站:点击访问 ,来查询目标网站是否支持 OCSP Stapling (加分项而已,不支持也没有太大关系)
注意:大家代理出现问题,第一个需要检查的是目标网站是否存在问题!!!!!!
评论区