侧边栏壁纸
博主头像
龍騰博客 博主等级

行动起来,活在当下

  • 累计撰写 101 篇文章
  • 累计创建 28 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

Docker部署3X-UI(已实操)

管理员
2025-07-06 / 0 评论 / 0 点赞 / 12 阅读 / 0 字

以下是使用 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-ui
nano 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。

首次登录后,立即修改默认用户名和密码:

  1. 进入 Panel Settings > Authentication

  2. 更新用户名和密码,保存并重启面板。

如果需要 HTTPS,进入 Panel Settings > General,配置 SSL 证书路径或使用内置工具获取 Let's Encrypt 证书:

  • 选择 SSL Certificate Management

  • 输入域名,确保 DNS 已指向服务器 IP。

  • 点击 Get SSL 获取证书。


6. 配置 Inbound(代理连接)

登录 3X-UI 面板后,配置代理协议(如 VLESS 或 Shadowsocks):

  1. 进入 Inbounds 标签,点击 Add Inbound

  2. 设置:

    • Remark: 连接名称(例如 vless-test)。

    • Protocol: 选择协议(推荐 VLESS + REALITY 或 Shadowsocks)。

    • Port: 建议使用 443(HTTPS 端口,需确保未被占用)。

    • Security: 选择 REALITY(若使用 VLESS),并设置 uTLS(如 Chrome)。

    • Client ID: 自动生成 UUID 或自定义。

  3. 保存配置,复制生成的连接 URL 或 QR 码。

  4. 在客户端(如 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。


注意事项

  1. 安全性

    • 立即更改默认登录凭据。

    • 启用 Fail2Ban(通过 X_UI_ENABLE_FAIL2BAN)。

    • 使用 HTTPS 和 REALITY 协议以提高抗检测能力。

  2. 端口占用

    • 确保 443 或其他配置端口未被其他服务占用(netstat -tuln | grep 443)。

  3. 备份

    • 定期备份 /root/3x-ui/db/ 目录,防止数据丢失。

  4. 协议选择

    • 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/

如需进一步帮助,请提供具体问题或错误信息,我会为你提供针对性指导!

0

评论区