X-UI(Xray-UI)是一款基于 Web 的 Xray 前端管理工具,xui为用户提供了一个方便的界面来配置和管理 Xray 服务。
- 具有简单易用、功能丰富、开源免费等特点,可以在多种平台上运行包括 Linux、Windows 和 macOS 等。
- 用户可以轻松地添加、删除和修改 Xray 的入站和出站协议,以及设置日志记录和流量统计等功能。
- 还提供了一些额外的功能,如路由策略、负载均衡、TLS 加密等,可以帮助用户更好地管理和保护网络。
部署
部署Docker教程:https://bj.cddone.com/doc/14/
1、创建工作目录
mkdir -p /home/docker/x-ui && cd /home/docker/x-ui
2、创建容器yaml文件
vim docker-compose.yaml
- 指定镜像名称
- 设置容器名称
- 设置容器自启动
- 设置容器网络模式(主机模式)
- 映射端口
version: '3'
services:
x-ui:
image: enwaiax/x-ui:latest
container_name: x-ui
restart: unless-stopped
network_mode: host
volumes:
- /home/docker/x-ui/config:/etc/x-ui/
- /usr/local/nginx/conf/ssl/:/root/cert/
3、运行容器
docker-compose up -d
4、查看容器信息
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0aa91d9de562 enwaiax/x-ui:latest "x-ui" 12 hours ago Up 12 hours x-ui
5、登录管理面板http://ip:54321
- 默认启动http
- 默认端口:54321
- 默认账户密码:admin:admin
6、面板配置(保存重启后使用https登录)
- 监听端口修改
- 添加ssl证书,参考 Acme申请ssl证书
- 证书放入主机的映射目录/home/docker/x-ui/cert
- 面板内指定的证书必须是容器内的路径/root/cert
7、用户设置
8、添加入站列表(没有说明的默认为空即可)
- 备注:自定义名称
- 协议:使用默认vmess即可
- 端口号:自行指定
- 总流量:空不限制,设置上限到达后自动关闭线路
- 到期时间:空不限制,设置一个时间到达后自动关闭线路
- id:使用默认即可
- 传输:选择ws协议
- 路径:自定义即可
- tls:开启
- 域名:解析到服务器的域名
- 证书:指定证书存放的路径
9、入站信息管理:获取二维码、编辑、重置流量、删除
10、客户端连接
- 手机端使用Shadiwrocket直接扫码获取入站参数
© 版权声明
文章版权归作者所有,未经允许请勿转载。
教程很好,比官方详细,多谢了!
关于,DOCKER环境内面板配置SSL,全网教程都语焉不详很难成功,请博主有空出个教程。主要存在的问题是:
1、docker内终端不能执行很多外部命令,无法用一键脚本。
2、YAML文件和RUN命令里映射文件目录难成功,各种问题文件为空或者宿主机文件消失,和参数或环境有关,需要设置只读:ro问题?
3、证书有有效期需要定期更新不能用直接复制方法,只能映射目录,官方脚本命令语法有问题;
4、最重要的就是需要解决docker内面板使用宿主机现有SSL证书问题,如果正确传递?enwaiax作者确认容器内面板不支持命令行。官方页面指引里需要配置宿主机Nginx,设置SOCKS代理,教程有问题不完整。
请大神研究下出个教程,谢谢!
前一段时间比较忙没有回复,特来回复一下
关于1:因为容器内部环境都比较精简化,很多命令是不支持的,大部分命令可以在外部执行,假设您要在名为my_container的容器中执行ls -l命令,您可以这样做:docker exec my_container ls -l,但是还是要注意很多命令 容器内可能bash环境不支持所以不能使用
关于2:容器的文件映射要理解清楚相对路径和绝对路径,这样在映射时候区分清楚外部和内部的关系,可以分开理解,容器内部写配置文件一定要写内部的路径,外部路径只做映射存放文件时候考虑;
关于3/4一起回答:关于ssl证书的话可以选择使用cloudflare的cdn(缺点大陆访问可能会很慢还有大陆屏蔽等问题,不过使用cdn对源服务器比较安全,可以研究一下优选域名) 使用cf的cdn可以申请他家的15年证书 这样不用频繁续签,或者用acme的3个月证书这个可以写shell自动执行命令续签,证书映射外部路径这时候可以考虑编写一个shell脚本,定期替换容器映射外部的ssl文件,重启容器重新读取也可以写在shell脚本里;