3X-UI 面板安装与首次配置完整教程(VPS 2026)
3X-UI 安装只需一行 bash 命令,但要安全使用还需完成:防火墙放行端口、获取面板登录凭证、用 acme.sh 配置 SSL 证书、创建第一个 VLESS Reality 入站。这篇把每个命令的预期输出写清,方便对照排错。把准备材料、配置差异和上线后的收尾动作放在一起,减少照搬旧教程带来的误判。
3X-UI 是目前最活跃的 Xray 面板之一,支持 VLESS、VMess、Trojan、Shadowsocks 等协议。安装只需一行命令,但要安全使用需要完成:放行端口 → 安装脚本 → 获取面板登录信息 → 配置 SSL 证书 → 创建入站 → 测试连通性。
这篇文章适合已经买了 VPS、SSH 能连上去、但还不知道怎么从头搭起一个能用的 Xray 面板的读者。如果你还没有 VPS,先去选一台 Debian 11+ 或 Ubuntu 20.04+ 的机器——这两个系统对 3X-UI 兼容性最好,CentOS 也能装但偶尔会遇到依赖版本问题。全程约 15 分钟。
VPS 最低需要什么配置才能跑 3X-UI?
很多人在这一步买了配置过高的机器。3X-UI 本身是一个 Golang 写的轻量面板,对资源消耗很低:
| 配置项 | 最低要求 | 推荐配置 | 说明 |
|---|---|---|---|
| CPU | 1 核(共享) | 1-2 核 | Xray 流量转发主要吃 CPU,但单核够用 |
| 内存 | 512 MB | 1 GB | 面板 + Xray 平时占用不到 200MB,1GB 留余量给系统 |
| 硬盘 | 10 GB | 20 GB+ | 主要是系统和日志占用,面板数据库本身很小 |
| 系统 | Debian 11+ / Ubuntu 20.04+ | Debian 12 / Ubuntu 22.04 | CentOS 7 也能装,但 acme.sh 依赖可能缺、调试成本更高 |
| 带宽 | 不限 | 取决于你的实际流量需求 | 面板本身不限制,就看你的 VPS 套餐带宽 |
除了 VPS 本身,你还需要一个已经解析到 VPS IP 的域名。SSL 证书申请需要域名验证,3X-UI 面板通过 HTTPS 访问也需要域名。用免费域名(如 freenom 上拿的 .tk)也可以,前提是 DNS 能正常解析。
SSH 登录后先放行哪些端口?
拿到 VPS 后先别急着跑脚本。VPS 出厂默认通常没有开防火墙,但为安全起见,先主动配置一遍 ufw,也确保后续步骤不被防火墙阻断。
# 安装基础工具
apt update && apt install ufw curl -y
# 按顺序放行端口——这一行最重要,先保住 SSH
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 2053/tcp
# 确认规则正确,然后启用
ufw enable
四个端口分别是:22(SSH,保住不掉线)、80(HTTP,给 acme.sh 做证书验证用)、443(HTTPS,给 Reality 入站和面板 HTTPS)、2053(3X-UI 面板 Web 端口,安装脚本随机生成的默认值)。
云服务商的安全组也要同步放行。 如果你用的是 AWS Lightsail、阿里云 ECS 或腾讯云 CVM,SSH 到云控制台,找到安全组或防火墙规则页面,添加入站规则放行上述四个端口的 TCP 协议。这一步容易被跳过——ufw 开了但云防火墙没开,面板照样访问不了。
安装脚本在做什么?每一步的输出
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/main/install.sh)
这条命令跑下去,脚本按顺序做五件事:
- 检测系统版本和 CPU 架构。 终端会打出
Detected OS: Ubuntu 22.04和Architecture: amd64。如果架构不被支持(如 32 位 x86),会直接中止并提示。 - 安装依赖包。 curl、tar、socat、openssl、ca-certificates——这些都是 Xray 和面板运行的基础依赖,脚本自动用 apt 装。
- 下载 Xray-core 和 3X-UI。 从 GitHub Release 拉取对应架构的二进制文件,解压到
/usr/local/x-ui/和/usr/local/xray/目录下。 - 生成随机凭证。 脚本会自动生成 10 位随机用户名、10 位随机密码和一段 web base path(URL 路径后缀),写入配置文件。这样即使别人扫到你的 IP:2053 也看不到登录页。
- 注册 systemd 服务。 创建
/etc/systemd/system/x-ui.service,设置为开机自启,立即启动面板。
安装正常结束时,终端最后几行输出类似:
Panel URL: http://你的IP:2053/随机路径/
Username: abc123def4
Password: xyz987uvw5
这三行务必复制下来。 关掉 SSH 窗口后没有别的办法找回来(除非用 x-ui 菜单重置)。先用鼠标选中这三行,右键复制,贴到一个安全的地方(本地密码管理器比记事本更好)。
面板登录信息忘记了怎么办?
如果在安装时没记下或者已经关掉了终端:
x-ui
输入 x-ui 回车,弹出交互菜单。按 7 然后回车,是「重置用户名和密码」选项——系统会让你输入新用户名和新密码,输完就更新。按 3 可以修改面板监听端口。
如果你连面板端口也忘了,运行 x-ui settings 直接打印当前面板的访问地址、端口和 web base path,不用进菜单翻。
acme.sh 证书申请失败?先排查 80 端口和 DNS 解析
在面板后台点「申请证书」后报错,最常见的原因只有两个。
第一个:80 端口没通。 acme.sh 用 HTTP-01 方式验证域名所有权,Let’s Encrypt 的验证服务器会向 http://你的域名/.well-known/acme-challenge/ 发请求,这个过程必须走 80 端口。如果你在 ufw 或云安全组里没放行 80,验证请求到不了你的 VPS。
用这条命令检查 80 端口有没有被其他程序占用:
lsof -i :80
如果有输出(比如 nginx 或 apache 的进程),说明 80 端口被占用了。3X-UI 的 acme.sh 需要独占 80 端口做验证,先停掉占用的服务:systemctl stop nginx 或 systemctl stop apache2,点申请证书,证书拿到后再把 nginx 开回来。
第二个:DNS 还没解析到 VPS IP。 刚添加了 A 记录,全球 DNS 生效需要时间(通常 1-5 分钟,偶尔更长)。先用下面两条命令确认:
# 查域名的 A 记录
dig +short 你的域名
# 或者用 ping 看返回的 IP
ping -c 2 你的域名
返回的 IP 不是你 VPS 的 IP,就说明 DNS 还没生效。等几分钟再试。如果中途换过 DNS 服务商(比如从域名注册商的默认 DNS 换到 Cloudflare),确认 NS 记录也已更新。
Reality 的 dest 域名怎么选?为什么不能用国内站?
创建入站时选 VLESS + Reality 协议,dest 字段填的是「伪装目标域名:端口」。Reality 的工作原理是:你的 VPS 发出的 TLS 握手数据包在外层看起来像是访问目标网站的流量,利用目标网站的真实 TLS 证书作掩护。
关键选择标准:
- 必须是全球大站,TLS 证书长期有效且稳定。 微软、苹果、亚马逊、Cloudflare 的根域名都是好选择。它们的证书由专业团队管理,几乎不会过期或更换 CA。
- 不能选中国大陆网站。 国内大站的 CDN 节点分布在不同地区,TLS 指纹和海外用户行为不一致,且部分网站有严格的 CDN 调度策略——来自海外 VPS 的访问可能被路由到不同节点,导致握手指纹异常。
- 不要选小网站或个人博客。 小站可能随时换服务器、换 CDN、换证书,一旦证书指纹变了你的入站就断了,排查起来也很麻烦。
推荐 dest 列表(截至 2026 年 5 月均稳定可用):
| dest 域名 | 适用场景 | 注意事项 |
|---|---|---|
| microsoft.com | 通用推荐,全球节点多 | CDN 节点覆盖广,响应快 |
| apple.com | 适合对延迟敏感的场景 | Apple 的 CDN 在某些 VPS 机房延迟偏高 |
| amazon.com | 适合流量较大的入站 | Amazon 的 TLS 指纹特征与其他电商站不同 |
| cloudflare.com | 备选,TLS 稳定 | Cloudflare 对自己域名的访问控制较严 |
填好 dest 后点「生成密钥对」,面板会给出 private key 和 public key 两个值。Flow 选 xtls-rprx-vision,这是 Xray 官方推荐的 Reality 流控方式。shortId 留空即可,除非你有特殊需求需要额外混淆。
客户端连不上?按这个顺序排查 5 个环节
创建完入站、复制了节点链接,客户端显示连接超时或连接拒绝。别同时改多个地方,按下面五个环节逐一检查。
环节一:检查入站端口是否在监听。 SSH 到 VPS 运行:
netstat -tlnp | grep 你的入站端口
如果输出为空,说明 Xray 没有在这个端口上启动监听。回面板看入站状态是否为「运行中」。如果不是,点一下旁边的启动按钮。如果点不动,可能是端口被占用——换个端口重新保存。
环节二:ufw 有没有放行入站端口。 很多人在第一步只放了面板端口(2053),忘了给入站端口也放行。跑 ufw status,确认你的入站端口(比如 443 或 8443)在 ALLOW 列表里。没有就 ufw allow 你的端口/tcp 补上。
环节三:云安全组有没有同步放行。 这一步被跳过最多。ufw 放行了但云防火墙(AWS 安全组 / 阿里云安全组 / 腾讯云安全组)没放行,外部流量到不了 VPS。登录云控制台确认有对应端口的入站规则。
环节四:客户端配置是否和入站匹配。 面板生成的分享链接里包含地址、端口、协议、flow、public key 等参数。确认你导入客户端后这些字段没有被修改。特别是 public key 字段——Reality 依赖公私钥配对,如果客户端填的 public key 和面板入站的 private key 不匹配,连接直接失败。
环节五:VPS 的 IP 在国内是否可达。 少数情况下 VPS IP 段被路由策略影响,SSH 能连(走的是国际带宽)但入站端口不通。用第三方端口检测工具(如 portchecktool.com)从外部扫一下你的 IP:端口,确认端口对外可见。如果外部扫描显示关闭但 netstat 显示端口在监听,IP 可能被上游路由策略限制,换一个 IP 段是唯一办法。
常见安装和配置错误速查表
| 错误表现 | 最可能原因 | 修复方法 |
|---|---|---|
curl: command not found | VPS 没装 curl | apt update && apt install curl -y 后重新跑安装脚本 |
| 安装脚本中途报错退出 | 系统版本太旧或是不支持的架构(32 位) | 检查 uname -m 输出是否在 amd64/arm64/armv7 范围;检查 /etc/os-release 是否为 Debian/Ubuntu |
| 面板访问地址打开是空白页或 502 | web base path 没输对,或面板服务挂了 | 运行 x-ui settings 查看完整 Panel URL(注意路径后缀);systemctl status x-ui 看服务是否 running |
| SSL 证书申请点了没反应 | 域名 DNS 没解析到 VPS IP,或 80 端口不通 | dig +short 你的域名 核对 IP;lsof -i :80 检查端口是否被占用 |
| 证书申请成功但面板还是 HTTP | 没在面板设置里开启 HTTPS 并选择证书 | 面板设置里找到 HTTPS 开关,打开后在证书下拉菜单中选择刚申请的证书域名 |
| 入站状态显示「已停止」 | 端口被占用、配置错误或 Xray 启动失败 | 点启动按钮;查看 systemctl status x-ui 日志;换一个未使用的端口 |
| 客户端连接成功但访问任何网站都超时 | 入站端口在服务器监听但客户端的 public key 填错了 | 检查客户端配置中的 public key 和面板入站展示的 public key 是否完全一致 |
相关阅读
来源与时间
本文最后查看时间:2026-05-29。操作路径会随客户端版本变化,遇到按钮名称不一致时,优先按同义菜单和官方文档查看。