Disclaimer: 此项目仅供个人学习交流,请不要用于非法目的,请不要在生产环境中使用。
- 安装脚本完全汉化
- 更改面板默认语言为中文
- 增加端口测试按钮
- 增加国内环境安装教程
- 增加纯IPV6环境安装教程
- 修复部分机器无法监听
127.0.0.1:62789
的BUG - 更改
reality
协议默认域名为www.icloud.com
- 支持
windows
系统
如果此项目对你有用,请给一个🌟
bash <(curl -Ls https://raw.githubusercontent.com/admin8800/3x-ui/main/install.sh)
bash <(curl -Ls https://cdn.jsdelivr.net/gh/admin8800/3x-ui@main/install.sh)
点击查看纯IPV6网络部署
纯IPV6网络无法访问api.github.com
,可以配置dns64服务临时增加IPV4站点访问能力。
命令:
sudo tee /etc/resolv.conf <<EOF
nameserver 2a00:1098:2b::1
nameserver 2a00:1098:2c::1
nameserver 2a01:4f9:c010:3f02::1
nameserver 2a01:4f8:c2c:123f::1
EOF
点击查看国内部署方案
- 国内安装docker
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)
- 运行3x-ui镜像
docker run -itd \
-e XRAY_VMESS_AEAD_FORCED=false \
-v $PWD/db/:/etc/x-ui/ \
-v $PWD/cert/:/root/cert/ \
--network=host \
--restart=always \
--name 3x-ui \
ghcr.nju.edu.cn/admin8800/3x-ui
然后使用默认信息访问面板
查看面板信息
/app/x-ui setting -show true
修改用户名和密码
/app/x-ui setting -username 用户名 -password 密码
修改面板路径
/app/x-ui setting -webBasePath "admin"
修改面板端口
/app/x-ui setting -port 端口
清除安全令牌
/app/x-ui setting -remove_secret
重置面板所有设置为默认值(用户名和密码除外)
/app/x-ui setting -reset
重启容器
docker restart 3x-ui
点击查看SSL证书详情
使用ACME管理SSL证书:
-
确保您的域名正确解析到服务器。
-
在终端中运行
x-ui
命令,然后选择SSL证书管理
。 -
您将看到以下选项:
- Get SSL: 获取SSL证书。
- Revoke: 吊销现有的SSL证书。
- Force Renew: 强制更新SSL证书。
- Show Existing Domains: 显示服务器上所有可用的域证书。
- Set Certificate Paths for the Panel: 指定用于面板的域证书。
安装并使用Certbot:
apt-get install certbot -y
certbot certonly --standalone --agree-tos --register-unsafely-without-email -d yourdomain.com
certbot renew --dry-run
管理脚本内置了Cloudflare的SSL证书申请。要使用此脚本申请证书,您需要以下信息:
- Cloudflare注册的电子邮件
- Cloudflare全局API密钥
- 域名必须通过Cloudflare解析到当前服务器
如何获取Cloudflare全局API密钥:
- 在终端中运行
x-ui
命令,然后选择Cloudflare SSL证书
。 - 访问链接:Cloudflare API Tokens。
- 点击“查看全局API密钥”(参见下图):
- 您可能需要重新验证您的账户。之后将显示API密钥(参见下图):
点击查看 手动安装 & 升级
下载压缩包(下载地址) 到本地,下载对应系统架构的,以常见的amd64
为例:
将压缩包上传到服务器的root目录
然后依次执行以下命令,一行一个命令
cd /root
rm x-ui/ /usr/local/x-ui/ /usr/bin/x-ui -rf
tar zxvf x-ui-linux-amd64.tar.gz
chmod +x x-ui/x-ui x-ui/bin/xray-linux-* x-ui/x-ui.sh
cp x-ui/x-ui.sh /usr/bin/x-ui
cp -f x-ui/x-ui.service /etc/systemd/system/
mv x-ui/ /usr/local/
systemctl daemon-reload
systemctl enable x-ui
systemctl restart x-ui
x-ui
然后使用默认信息访问面板
点击查看 通过Docker安装
-
安装Docker:
bash <(curl -sSL https://get.docker.com)
-
运行服务:
docker run -itd \ -e XRAY_VMESS_AEAD_FORCED=false \ -v $PWD/db/:/etc/x-ui/ \ -v $PWD/cert/:/root/cert/ \ --network=host \ --restart=always \ --name 3x-ui \ ghcr.io/admin8800/3x-ui
然后使用默认信息访问面板
从Docker中删除3x-ui
docker stop 3x-ui
docker rm 3x-ui
查看面板信息
/app/x-ui setting -show true
修改用户名和密码
/app/x-ui setting -username 用户名 -password 密码
修改面板路径
/app/x-ui setting -webBasePath "admin"
修改面板端口
/app/x-ui setting -port 端口
清除安全令牌
/app/x-ui setting -remove_secret
重置面板所有设置为默认值(用户名和密码除外)
/app/x-ui setting -reset
重启容器
docker restart 3x-ui
点击查看windows系统安装
- 下载
windows
系统压缩包 - 解压文件
- 双击运行
x-ui.exe
程序 - 使用默认信息登录面板
- 如果需要后台运行请谷歌搜索
Windows任务调度器
使用教程
点击查看 反向代理配置
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:2053;
}
- 确保
/sub
面板设置中的"面板url根路径"一致 - 面板设置中的
url
需要以/
结尾
location /sub {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:2053;
}
- Ubuntu 20.04+
- Debian 11+
- CentOS 8+
- OpenEuler 22.03+
- Fedora 36+
- Arch Linux
- Parch Linux
- Manjaro
- Armbian
- AlmaLinux 8.0+
- Rocky Linux 8+
- Oracle Linux 8+
- OpenSUSE Tubleweed
- Amazon Linux 2023
- Windows x64
点击查看 支持的架构和设备
我们的平台提供与各种架构和设备的兼容性,确保在各种计算环境中的灵活性。以下是我们支持的关键架构:
-
amd64: 这种流行的架构是个人计算机和服务器的标准,可以无缝地适应大多数现代操作系统。
-
x86 / i386: 这种架构在台式机和笔记本电脑中被广泛采用,得到了众多操作系统和应用程序的广泛支持,包括但不限于 Windows、macOS 和 Linux 系统。
-
armv8 / arm64 / aarch64: 这种架构专为智能手机和平板电脑等当代移动和嵌入式设备量身定制,以 Raspberry Pi 4、Raspberry Pi 3、Raspberry Pi Zero 2/Zero 2 W、Orange Pi 3 LTS 等设备为例。
-
armv7 / arm / arm32: 作为较旧的移动和嵌入式设备的架构,它仍然广泛用于Orange Pi Zero LTS、Orange Pi PC Plus、Raspberry Pi 2等设备。
-
armv6 / arm / arm32: 这种架构面向非常老旧的嵌入式设备,虽然不太普遍,但仍在使用中。Raspberry Pi 1、Raspberry Pi Zero/Zero W 等设备都依赖于这种架构。
-
armv5 / arm / arm32: 它是一种主要与早期嵌入式系统相关的旧架构,目前不太常见,但仍可能出现在早期 Raspberry Pi 版本和一些旧智能手机等传统设备中。
- English(英语)
- Persian(波斯语)
- Traditional Chinese(繁体中文)默认语言
- Simplified Chinese(简体中文)
- Japanese(日语)
- Russian(俄语)
- Vietnamese(越南语)
- Spanish(西班牙语)
- Indonesian(印尼语)
- Ukrainian(乌克兰语)
- Turkish(土耳其语)
- Português (Brazil)(葡萄牙语(巴西))
- 系统状态监控
- 在所有入站和客户端中搜索
- 深色/浅色主题
- 支持多用户和多协议
- 支持多种协议,包括 VMess、VLESS、Trojan、Shadowsocks、Dokodemo-door、Socks、HTTP、wireguard
- 支持 XTLS 原生协议,包括 RPRX-Direct、Vision、REALITY
- 流量统计、流量限制、过期时间限制
- 可自定义的 Xray配置模板
- 支持HTTPS访问面板(自建域名+SSL证书)
- 支持一键式SSL证书申请和自动续费
- 更多高级配置项目请参考面板
- 修复了 API 路由(用户设置将使用 API 创建)
- 支持通过面板中提供的不同项目更改配置。
- 支持从面板导出/导入数据库
点击查看默认设置详情
如果您选择不修改这些设置,它们将随机生成(Docker部署不会生成路径)。
Docker 的默认设置:
- 用户名:
admin
- 密码:
admin
- 端口:
2053
您可以直接在面板中方便地进行数据库备份和还原。
- 数据库路径:
/etc/x-ui/x-ui.db
-
重置 Web 基础路径:
- 打开终端。
- 运行
x-ui
命令。 - 选择
重置 Web 基础路径
选项。
-
生成或自定义路径:
- 路径将会随机生成,或者您可以输入自定义路径。
-
查看当前设置:
- 要查看当前设置,请在终端中使用
x-ui settings
命令,或在x-ui
面板中点击查看当前设置
。
- 要查看当前设置,请在终端中使用
- 为了提高安全性,建议在URL结构中使用一个长的随机词。
示例:
http://ip:port/*webbasepath*/panel
http://domain:port/*webbasepath*/panel
点击查看 IP 限制详情
注意: 当使用 IP 隧道时,IP 限制将无法正常工作。
要启用 IP 限制功能,您需要安装 fail2ban
及其所需的文件,步骤如下:
-
在终端中运行
x-ui
命令,然后选择IP 限制管理
。 -
您将看到以下选项:
- 更改封禁时长: 调整封禁时长。
- 解除所有封禁: 解除当前的所有封禁。
- 查看日志: 查看日志。
- Fail2ban 状态: 检查
fail2ban
的状态。 - 重启 Fail2ban: 重启
fail2ban
服务。 - 卸载 Fail2ban: 卸载带有配置的 Fail2ban。
-
在面板中通过设置
Xray 配置/log/访问日志
为./access.log
添加访问日志路径,然后保存并重启 Xray。
点击查看 Telegram 机器人
Web 面板通过 Telegram Bot 支持每日流量、面板登录、数据库备份、系统状态、客户端信息等通知和功能。要使用机器人,您需要在面板中设置机器人相关参数,包括:
- 电报令牌
- 管理员聊天 ID
- 通知时间(cron 语法)
- 到期日期通知
- 流量上限通知
- 数据库备份
- CPU 负载通知
参考:
30 \* \* \* \* \*
- 在每个点的 30 秒处通知0 \*/10 \* \* \* \*
- 每 10 分钟的第一秒通知@hourly
- 每小时通知@daily
- 每天通知 (00:00)@weekly
- 每周通知@every 8h
- 每8小时通知
- 定期报告
- 登录通知
- CPU 阈值通知
- 提前报告的过期时间和流量阈值
- 如果将客户的电报用户名添加到用户的配置中,则支持客户端报告菜单
- 支持使用UUID(VMESS/VLESS)或密码(TROJAN)搜索报文流量报告 - 匿名
- 基于菜单的机器人
- 通过电子邮件搜索客户端(仅限管理员)
- 检查所有入库
- 检查服务器状态
- 检查耗尽的用户
- 根据请求和定期报告接收备份
- 多语言机器人
-
与 Botfather 对话:
在输入字段编号 3 中输入机器人令牌。 在输入字段编号 4 中输入用户 ID。具有此 id 的 Telegram 帐户将是机器人管理员。 (您可以输入多个,只需将它们用“ ,”分开即可)
- 如何获取TG ID? 使用 bot, 启动机器人,它会给你 Telegram 用户 ID。
点击查看 API 路由
- API 文档
/login
使用POST
用户名称 & 密码:{username: '', password: ''}
登录/panel/api/inbounds
以下操作的基础:
方法 | 路径 | 操作 |
---|---|---|
GET |
"/list" |
获取所有入站 |
GET |
"/get/:id" |
获取所有入站以及inbound.id |
GET |
"/getClientTraffics/:email" |
通过电子邮件获取客户端流量 |
GET |
"/createbackup" |
Telegram 机器人向管理员发送备份 |
POST |
"/add" |
添加入站 |
POST |
"/del/:id" |
删除入站 |
POST |
"/update/:id" |
更新入站 |
POST |
"/clientIps/:email" |
客户端 IP 地址 |
POST |
"/clearClientIps/:email" |
清除客户端 IP 地址 |
POST |
"/addClient" |
将客户端添加到入站 |
POST |
"/:id/delClient/:clientId" |
通过 clientId* 删除客户端 |
POST |
"/updateClient/:clientId" |
通过 clientId* 更新客户端 |
POST |
"/:id/resetClientTraffic/:email" |
重置客户端的流量 |
POST |
"/resetAllTraffics" |
重置所有入站的流量 |
POST |
"/resetAllClientTraffics/:id" |
重置入站中所有客户端的流量 |
POST |
"/delDepletedClients/:id" |
删除入站耗尽的客户端 (-1: all) |
POST |
"/onlines" |
获取在线用户 ( 电子邮件列表 ) |
*- clientId
项应该使用下列数据
点击查看 环境变量
变量 | Type | 默认 |
---|---|---|
XUI_LOG_LEVEL | "debug" | "info" | "warn" | "error" |
"info" |
XUI_DEBUG | boolean |
false |
XUI_BIN_FOLDER | string |
"bin" |
XUI_DB_FOLDER | string |
"/etc/x-ui" |
XUI_LOG_FOLDER | string |
"/var/log" |
例子:
XUI_BIN_FOLDER="bin" XUI_DB_FOLDER="/etc/x-ui" go build main.go
- Iran v2ray rules (License: GPL-3.0): Enhanced v2ray/xray and v2ray/xray-clients routing rules with built-in Iranian domains and a focus on security and adblocking.
- Russia v2ray rules (License: GPL-3.0): This repository contains automatically updated V2Ray routing rules based on data on blocked domains and addresses in Russia.