以下是使用 Docker 部署 3X-UI 的详细步骤,基于现有信息整理,确保简洁且实用。3X-UI 是一个管理 Xray 服务器的图形化面板,支持多种协议(如 VLESS、VMess、Shadowsocks 等)。以下教程假设你已安装 Docker 和 Docker Compose。
部署 3X-UI 的步骤
1. 准备环境
确保你的服务器已安装:
Docker:运行 docker --version 检查是否安装。
Docker Compose:运行 docker-compose --version 检查是否安装。
SSL 证书(可选):如果需要 HTTPS 访问,准备好证书文件或通过 Let's Encrypt 获取。
服务器推荐使用 Ubuntu 20.04 或更高版本,内存至少 1GB。
2. 创建 Docker Compose 文件
在服务器上创建一个工作目录(例如 /root/3x-ui),并创建 docker-compose.yml 文件:
mkdir /root/3x-ui && cd /root/3x-uinano docker-compose.yml将以下内容写入 docker-compose.yml:
version: "3"
services:
3x-ui:
image: ghcr.io/mhsanaei/3x-ui:latest
container_name: 3x-ui
hostname: yourhostname # 替换为你的域名或服务器 IP
volumes:
- ./db/:/etc/x-ui/ # 持久化数据库
- ./cert/:/root/cert/ # SSL 证书目录(可选)
environment:
XRAY_VMESS_AEAD_FORCED: "false"
X_UI_ENABLE_FAIL2BAN: "true" # 启用 Fail2Ban(可选)
tty: true
network_mode: host
restart: unless-stopped说明:image: 使用最新 3X-UI 镜像。
hostname: 设置为你服务器的域名或 IP。
volumes: 映射数据库和证书目录,确保持久化存储。
network_mode: host: 使用主机网络模式,简化端口配置。
environment: 配置 Xray 参数,X_UI_ENABLE_FAIL2BAN 可增强安全性。
保存并退出(Ctrl+O, Enter, Ctrl+X)。
3. 创建必要目录
为数据库和证书创建目录:
mkdir -p db cert如果使用 SSL 证书,将公钥和私钥文件放入 cert 目录,例如:
/root/3x-ui/cert/fullchain.pem
/root/3x-ui/cert/privkey.pem
如果没有证书,可以在后续步骤通过 3X-UI 面板获取 Let's Encrypt 证书。
4. 启动 Docker 容器
在 /root/3x-ui 目录下运行以下命令启动容器:
docker-compose up -d-d: 后台运行容器。
检查容器状态:docker ps(应看到 3x-ui 容器运行)。
5. 访问 3X-UI 面板
默认访问地址:http://<服务器IP>:2053/panel/(注意是 HTTP 而非 HTTPS)。
默认登录凭据:用户名 admin,密码 admin。
首次登录后,立即修改默认用户名和密码:
进入 Panel Settings > Authentication。
更新用户名和密码,保存并重启面板。
如果需要 HTTPS,进入 Panel Settings > General,配置 SSL 证书路径或使用内置工具获取 Let's Encrypt 证书:
选择 SSL Certificate Management。
输入域名,确保 DNS 已指向服务器 IP。
点击 Get SSL 获取证书。
6. 配置 Inbound(代理连接)
登录 3X-UI 面板后,配置代理协议(如 VLESS 或 Shadowsocks):
进入 Inbounds 标签,点击 Add Inbound。
设置:
Remark: 连接名称(例如 vless-test)。
Protocol: 选择协议(推荐 VLESS + REALITY 或 Shadowsocks)。
Port: 建议使用 443(HTTPS 端口,需确保未被占用)。
Security: 选择 REALITY(若使用 VLESS),并设置 uTLS(如 Chrome)。
Client ID: 自动生成 UUID 或自定义。
保存配置,复制生成的连接 URL 或 QR 码。
在客户端(如 v2rayNG、Nekobox)导入 URL 进行连接测试。
7. (可选)配置反向代理
若需通过 Nginx 或 Traefik 配置子域名访问(例如 panel.yourdomain.com):
安装 Nginx 或 Traefik,并配置反向代理到 127.0.0.1:2053。
示例 Nginx 配置:
server {
listen 443 ssl;
server_name panel.yourdomain.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
location / {
proxy_pass http://127.0.0.1:2053;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}重启 Nginx:systemctl restart nginx。
8. 验证和测试
使用客户端(如 v2rayNG、Shadowrocket)连接测试,确保代理正常工作。
检查 Docker 容器日志:docker logs 3x-ui。
若连接失败,检查:
防火墙是否开放端口(如 443)。
DNS 记录是否正确(若使用域名)。
证书是否有效(若使用 HTTPS)。
9. 维护和更新
更新 3X-UI:
cd /root/3x-ui docker-compose down docker-compose pull docker-compose up -d查看日志:docker logs 3x-ui。
停止容器:docker-compose down。
注意事项
安全性:
立即更改默认登录凭据。
启用 Fail2Ban(通过 X_UI_ENABLE_FAIL2BAN)。
使用 HTTPS 和 REALITY 协议以提高抗检测能力。
端口占用:
确保 443 或其他配置端口未被其他服务占用(netstat -tuln | grep 443)。
备份:
定期备份 /root/3x-ui/db/ 目录,防止数据丢失。
协议选择:
VLESS + REALITY 适合高抗检测场景。
Shadowsocks 适合简单配置但抗检测能力稍弱。
参考资料
3X-UI GitHub:https://github.com/MHSanaei/3x-ui
Docker Compose 配置:https://github.com/MHSanaei/3x-ui/blob/main/docker-compose.yml
VLESS-REALITY 配置指南:https://semenov.work/blog/2024-03-14/vless-reality-vpn-docker-3x-ui/
如需进一步帮助,请提供具体问题或错误信息,我会为你提供针对性指导!
评论区