Docker一键部署X-UI面板:从安装到配置的完整指南(附SSL证书配置)

发布时间:2026/7/17 22:25:45

Docker一键部署X-UI面板:从安装到配置的完整指南(附SSL证书配置) Docker容器化部署X-UI管理面板实战手册在当今云计算和容器化技术蓬勃发展的时代Docker已经成为应用部署的黄金标准。对于需要高效管理网络服务的用户来说X-UI面板提供了一个直观的图形化界面而将其容器化部署则进一步简化了安装和维护流程。本文将带领您从零开始通过Docker快速搭建X-UI服务环境并实现安全可靠的SSL加密访问。1. 环境准备与Docker安装在开始部署X-UI之前我们需要确保基础环境准备就绪。大多数现代Linux发行版都支持Docker运行这里以Ubuntu 20.04 LTS为例进行说明。首先更新系统软件包并安装必要的依赖sudo apt update sudo apt upgrade -y sudo apt install -y curl gnupg2 software-properties-common接下来安装Docker官方提供的安装脚本是最简便的方式curl -fsSL https://get.docker.com | sh安装完成后将当前用户加入docker组以避免每次都需要sudosudo usermod -aG docker $USER newgrp docker验证Docker是否安装成功docker --version docker run hello-world如果看到Docker版本信息和Hello from Docker!的欢迎消息说明安装正确。为了优化Docker性能建议进行以下配置调整sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json EOF { log-driver: json-file, log-opts: { max-size: 100m, max-file: 3 }, storage-driver: overlay2 } EOF sudo systemctl restart docker2. X-UI容器部署详解X-UI是一个轻量级的网络管理面板通过Docker部署可以避免复杂的依赖关系和环境配置问题。在开始部署前我们先创建必要的目录结构mkdir -p /opt/x-ui/{db,ssl,conf}这种目录结构设计将配置、数据库和SSL证书分开存放便于后续管理和备份。接下来直接运行X-UI容器docker run -d \ --namex-ui \ --restartunless-stopped \ -p 54321:54321 \ -v /opt/x-ui/db:/etc/x-ui \ -v /opt/x-ui/ssl:/ssl \ -v /opt/x-ui/conf:/conf \ stilleshan/x-ui这个命令包含了几个关键参数--restartunless-stopped确保容器在意外退出时自动重启-p 54321:54321将容器内部端口映射到主机-v参数挂载了三个关键目录实现数据持久化部署完成后可以通过以下命令检查容器运行状态docker ps -f namex-ui如果看到x-ui容器状态为Up说明部署成功。此时可以通过浏览器访问http://服务器IP:54321使用默认账号admin/admin登录。强烈建议首次登录后立即修改默认密码登录X-UI面板导航至系统设置→修改密码输入当前密码和新密码点击保存3. SSL证书配置与安全加固在生产环境中使用HTTP明文传输存在安全风险我们需要为X-UI配置SSL证书实现HTTPS加密访问。这里介绍两种常见的证书获取方式。3.1 使用Lets Encrypt免费证书Certbot是获取Lets Encrypt证书的官方推荐工具。首先安装Certbotsudo apt install -y certbot然后申请证书需要提前将域名解析到服务器IPsudo certbot certonly --standalone -d yourdomain.com --email youremail.com --agree-tos --non-interactive申请成功后证书通常存放在/etc/letsencrypt/live/yourdomain.com/目录下。我们需要将这些文件复制到X-UI的SSL目录并设置适当权限sudo cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem /opt/x-ui/ssl/cert.pem sudo cp /etc/letsencrypt/live/yourdomain.com/privkey.pem /opt/x-ui/ssl/key.pem sudo chown -R $USER:$USER /opt/x-ui/ssl3.2 使用自签名证书测试环境对于测试环境可以快速生成自签名证书openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /opt/x-ui/ssl/key.pem \ -out /opt/x-ui/ssl/cert.pem \ -subj /CNyourdomain.com3.3 配置X-UI使用SSL证书修改X-UI容器运行命令添加SSL相关参数docker stop x-ui docker rm x-ui docker run -d \ --namex-ui \ --restartunless-stopped \ -p 54321:54321 \ -v /opt/x-ui/db:/etc/x-ui \ -v /opt/x-ui/ssl:/ssl \ -v /opt/x-ui/conf:/conf \ -e SSL_CERT_FILE/ssl/cert.pem \ -e SSL_KEY_FILE/ssl/key.pem \ stilleshan/x-ui现在可以通过https://yourdomain.com:54321安全访问X-UI面板了。为了增强安全性建议修改默认访问端口设置防火墙规则限制访问IP定期更新证书启用面板的双因素认证如果支持4. 高级配置与维护技巧4.1 数据库备份与恢复X-UI的所有配置都存储在SQLite数据库中定期备份至关重要。创建一个简单的备份脚本#!/bin/bash BACKUP_DIR/opt/x-ui/backups mkdir -p $BACKUP_DIR cp /opt/x-ui/db/x-ui.db $BACKUP_DIR/x-ui_$(date %Y%m%d_%H%M%S).db # 保留最近7天备份 find $BACKUP_DIR -name x-ui_*.db -mtime 7 -delete将脚本保存为/usr/local/bin/backup-xui.sh并添加可执行权限chmod x /usr/local/bin/backup-xui.sh设置每天自动备份(crontab -l 2/dev/null; echo 0 3 * * * /usr/local/bin/backup-xui.sh) | crontab -恢复数据库时只需停止容器替换数据库文件然后重启容器docker stop x-ui cp /path/to/backup/x-ui.db /opt/x-ui/db/x-ui.db docker start x-ui4.2 性能监控与日志管理X-UI容器日志可以通过以下命令查看docker logs -f x-ui为了更好的监控性能可以安装cAdvisordocker run \ --volume/:/rootfs:ro \ --volume/var/run:/var/run:ro \ --volume/sys:/sys:ro \ --volume/var/lib/docker/:/var/lib/docker:ro \ --volume/dev/disk/:/dev/disk:ro \ --publish8080:8080 \ --detachtrue \ --namecadvisor \ --privileged \ --device/dev/kmsg \ gcr.io/cadvisor/cadvisor:v0.47.0访问http://服务器IP:8080即可查看容器资源使用情况。4.3 版本升级与回滚升级X-UI到最新版本docker stop x-ui docker rm x-ui docker pull stilleshan/x-ui:latest # 使用之前的运行命令重新创建容器如果新版本出现问题可以回滚到特定版本docker pull stilleshan/x-ui:2.1.0 # 指定旧版本号 docker stop x-ui docker rm x-ui # 使用之前的运行命令但指定镜像版本5. 常见问题排查指南问题1无法访问X-UI面板检查容器是否运行docker ps -a | grep x-ui检查端口是否开放ss -tulnp | grep 54321检查防火墙设置sudo ufw status查看容器日志docker logs x-ui问题2SSL证书不生效确保证书文件路径正确检查文件权限ls -l /opt/x-ui/ssl/验证证书有效性openssl x509 -in /opt/x-ui/ssl/cert.pem -text -noout重启容器使配置生效问题3忘记管理员密码停止容器后删除数据库文件并重新启动docker stop x-ui rm /opt/x-ui/db/x-ui.db docker start x-ui这将重置为默认admin/admin密码记得立即修改。问题4性能问题检查资源使用docker stats x-ui考虑限制容器资源docker update x-ui --memory 512M --memory-swap 1G优化数据库docker exec x-ui sqlite3 /etc/x-ui/x-ui.db VACUUM;在实际使用中我发现将X-UI的数据库定期压缩可以显著提升面板响应速度特别是在有大量配置项的情况下。另外为Docker配置适当的日志轮转策略也能避免磁盘空间被日志文件占满的问题。

相关新闻