3x-ui 基本教程:安装、配置与 VLESS+Reality 节点搭建

面向自建代理节点的 3x-ui v2.9.4 部署指南,涵盖安装前准备、端口与证书配置、面板安全加固,以及 VLESS + Reality 入站创建与客户端导出

发布于 » 更新于
作者是 GEMILUXVII · 收录在 纸上谈兵 · 标签 techvpsxrayproxyreality · 约 20 分钟阅读 · 这里是

前言#

3x-ui 是一个基于 Xray 的开源管理面板,适合在 VPS 上快速搭建并管理入站规则。它是 X-UI 的增强分支,强调更高的稳定性与更广的协议支持。本文给出一套最小可用的安装与配置流程,并以 VLESS + Reality 为例,演示如何搭建一个抗检测能力强的代理节点。


一、准备工作#

安装脚本会在安装过程中自动申请域名证书,因此域名解析80 端口必须在运行脚本前就绪,否则中途会失败。开始前先准备:

  • 一台 VPS(推荐 Debian 12 或 Ubuntu 22.04 及以上),具备 root 权限
  • 一个已解析到 VPS 的域名:安装时用它申请面板 HTTPS 证书(例如 xui.example.com);需提前在 DNS 添加 A 记录,指向 VPS 公网 IP

1.1 需要开放的端口#

端口用途何时放行
80/tcp申请 / 续期域名证书运行安装脚本前——脚本用它做 Let's Encrypt 验证;之后续期也靠它,需长期保持
面板端口登录 3x-ui 面板安装后;端口在安装时随机或自定义生成
入站端口Reality 节点连接创建入站后,推荐使用 443/tcp;若 443 已被占用,再改用其他高位端口

1.2 放行方法#

① 安装前——放行 80。 此时面板还没装,用云服务商安全组加系统防火墙放行;若用 ufw

sudo ufw allow 80/tcp

② 安装后——放行面板端口与入站端口。 装完后用 3x-ui 自带的防火墙管理更省事:运行 x-ui → 选择 「防火墙管理(Firewall Management)」(v2.9.4 中通常是 21),多个端口用英文逗号分隔,例如 面板端口,入站端口。也可继续用 ufw

sudo ufw allow <面板端口>/tcp
sudo ufw allow <入站端口>/tcp
sudo ufw reload

二、安装(官方脚本一条龙)#

MHSanaei/3x-ui View this repository on GitHub

确认上一节的域名解析与 80 端口已就绪后,使用官方安装脚本,并在命令末尾指定版本号(建议先查看脚本内容再运行)。该脚本需以 root 身份运行

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) v2.9.4

脚本以交互方式一步到位,依次完成数据库、端口、账号与 SSL 证书的配置——用户名、密码、访问路径(webBasePath)均随机生成,几乎无需人工干预。

① 选择数据库

1) SQLite     (default — recommended for < 500 clients)
2) PostgreSQL (recommended for high client counts / many nodes)
Choose [1]:

个人自用直接选 1(SQLite),数据库文件位于 /etc/x-ui/x-ui.db

② 自定义面板端口

Would you like to customize the Panel Port settings? (If not, a random port will be applied) [y/n]

y 可指定固定高位端口;直接回车则随机分配。随后脚本自动生成用户名、密码与随机访问路径。

③ SSL 证书设置

证书直接在安装阶段申请并写入面板,无需事后手动操作:

1. Let's Encrypt for Domain (90-day validity, auto-renews)
2. Let's Encrypt for IP Address (6-day validity, auto-renews)
3. Custom SSL Certificate (Path to existing files)
4. Skip SSL
Choose an option (default 2 for IP):

默认是 2(IP 证书),用域名证书必须手动输入 1,随后:

  • 输入你的域名(需已解析到本机);
  • 验证端口直接回车用 80
  • 脚本自动安装 acme.sh 并签发证书;
  • 遇到 Would you like to modify --reloadcmd?n(用默认,续期后自动重启面板加载新证书);
  • 遇到 Would you like to set this certificate for the panel?y,脚本自动把证书路径写入面板。

完成后打印最终凭据,Access URL 已是 https://

Username:    <随机生成>
Password:    <随机生成>
Port:        <面板端口>
WebBasePath: <随机路径>
Database:    SQLite (/etc/x-ui/x-ui.db)
Access URL:  https://<你的域名>:<面板端口>/<webBasePath>

请立即记录这些凭据,尤其是密码——密码经加密存储,安装后 x-ui settings 也查不到明文,忘记只能重置(见第三节)。

更完整的说明可参考项目 Wiki:https://github.com/MHSanaei/3x-ui/wiki


三、首次登录与基础安全#

安装时若选了域名 SSL,证书已配好,直接用打印出的 HTTPS 地址访问即可(结尾随机路径不可省略):

https://<你的域名>:<面板端口>/<webBasePath>/

凭据虽已随机化,登录后仍建议:

  1. 面板设置 → 按需修改管理员用户名与密码;
  2. 视情况调整面板端口与访问路径(Sub Path),改动后记得同步防火墙 / 安全组;
  3. 开启面板自带的登录失败限制 / Fail2ban(如有)。

3.1 关于证书#

先分清两件事:

  • VLESS + Reality 节点不需要你自己的证书。Reality 借用目标网站的 TLS 握手特征,客户端用的是 Reality 公钥、Short ID、SNI 等参数,与你 VPS 上的证书无关。
  • 面板建议启用 HTTPS 证书,用来保护登录面板时的账号、密码与操作请求,与 Reality 节点是两码事。

按第二节的流程,安装时选了「Let's Encrypt for Domain」的话,证书已自动签发并写入面板,路径如下,可直接用 https:// 访问:

/root/cert/<你的域名>/fullchain.pem
/root/cert/<你的域名>/privkey.pem

安装时若选了「Skip SSL」想后补:运行 x-ui → 选择 「SSL 证书管理(SSL Certificate Management)」(通常为 18)申请域名证书,再用菜单里的 「Set Cert paths for the panel」 自动把证书配到面板。

若暂时不配证书,至少做到:

  • 保留随机 webBasePath,不要改成 //admin 这类常见路径;
  • 使用强密码,开启面板的失败登录限制 / Fail2ban(如有);
  • 面板端口不要和节点端口混用;
  • 更稳妥的做法是只允许固定 IP 访问面板端口,或通过 SSH 隧道访问。

四、VLESS + Reality 节点搭建#

4.1 为什么选择 VLESS + Reality#

Reality 是 Xray 独有的传输层安全方案,核心思路是借用真实网站的 TLS 握手——连接看上去与访问合法网站无异,无需自己申请证书,也没有自签证书的特征。配合 VLESS 协议,是目前抗检测能力较强的方案之一。

优点:

  • 无需域名,无需申请 SSL 证书
  • 流量特征极难被识别(TLS 指纹与目标网站一致)
  • 配置相对简单

适合场景: 个人自用,对抗 DPI 深度包检测。


4.2 选择目标伪装域名(SNI)#

Reality 需要指定一个目标域名(dest / SNI),Xray 会向该域名发起真实的 TLS 握手以获取合法证书指纹。

目标域名的最低标准

  • 国外、未被 GFW 封锁的域名;
  • 支持 TLS 1.3 与 X25519
  • 支持 HTTP/2(h2)
  • 未套 CDN、访问不跳转。

4.3 在面板中创建入站#

进入面板 → 入站列表添加入站,按以下参数填写:

基本信息

字段填写内容
启用开启
备注任意(如 vless-reality
协议vless
监听留空(监听所有)
端口推荐 443
总流量0 表示不限制
流量重置从不
到期时间留空表示不过期

客户端(Client)

展开 客户端 区域,保持 decryption = noneencryption = noneAuthentication 保持默认或点击 Get New keys 生成客户端认证信息;如果当前版本显示 Flow 字段,将其设为 xtls-rprx-vision

传输(Transport)

字段填写内容
传输TCP (RAW)
Proxy Protocol关闭
HTTP 伪装关闭
Sockopt关闭;确有路由 / 出站绑定需求时再单独配置
TCP Masks默认即可
External Proxy关闭;只有需要外置前置代理时才开启

安全(Reality)

字段填写内容
安全选择 Reality
Show关闭
Xver0
uTLSchrome
Target<你的目标域名>:443,如截图中的 www.tesla.com:443 只是示例
SNI<你的目标域名>,不带端口,需与 Target 的域名部分一致
Reality 密钥若面板显示 Public Key / Private Key,使用对应生成按钮;私钥留服务端,导出链接使用公钥 pbk
Short ID自动生成即可
mldsa65 Seed留空;不需要后量子签名时不要点 Get New Seed
mldsa65 Verify留空;只有启用 mldsa65 Seed 后才需要配套填写

Sniffing

字段填写内容
开启开启
HTTP / TLS / QUIC / FAKEDNS全部勾选
Metadata Only关闭
Route Only关闭
IPs Excluded保持默认 IP/CIDR/geoip:*/ext:*
Domains Excluded保持默认 domain:*/ext:*

完整参数示意:

协议:      VLESS
端口:      443(推荐;若被占用再换高位端口)
客户端:    Authentication / UUID 自动生成
Flow:      xtls-rprx-vision(如果面板显示该字段)
传输:      TCP (RAW)
安全:      reality
uTLS:      chrome
Target:    <你的目标域名>:443
SNI:       <你的目标域名>
Reality密钥: Public / Private Key 自动生成(导出链接使用 pbk)
ShortId:   <自动生成>
Sniffing:  开启,勾选 HTTP / TLS / QUIC / FAKEDNS

填写完毕后点击 添加 / 保存


4.4 获取客户端配置#

回到入站列表,找到刚创建的入站(标签会显示 vless tcp reality),点击该行前方的 三个点(⋮)/ 操作导出链接二维码

生成的分享链接格式类似:

vless://<UUID>@<服务器IP>:<端口>?encryption=none&flow=xtls-rprx-vision&security=reality&sni=<你的目标域名>&fp=chrome&pbk=<公钥>&sid=<ShortId>&type=tcp#vless-reality

将该链接导入客户端(v2rayN、v2rayNG、Shadowrocket、NekoBox 等)即可使用。


4.5 客户端关键参数说明#

参数说明
security=reality启用 Reality 传输层
sni伪装目标域名,与服务端 SNI 一致
fpTLS 指纹,建议设为 chromefirefox
pbk服务端公钥,客户端用于验证
sidShort ID,服务端用于识别合法客户端
flow=xtls-rprx-visionXTLS Vision 流控,提升性能与抗检测

五、备份与维护#

固定使用 v2.9.4,不必为追新频繁升级。但在调整配置或迁移服务器前,务必先备份数据目录(默认位于 /etc/x-ui/,含数据库 x-ui.db 与全部设置):

cp -r /etc/x-ui/ /root/x-ui-backup-$(date +%Y%m%d)/

迁移、还原等更完整的操作可参考项目 Wiki:https://github.com/MHSanaei/3x-ui/wiki


六、常见问题#

节点连不上 / 面板能开但节点不通

  • 最常见原因:入站端口未放行。回到第一节用 x-ui 防火墙管理放行该端口;
  • 同步检查云服务商安全组。

无法访问面板

  • 确认地址、端口与访问路径(webBasePath)与 x-ui settings 输出一致;
  • 确认防火墙 / 安全组已放行面板端口;
  • 检查服务状态:systemctl status x-ui

修改端口或路径后访问不了

  • 同步修改防火墙与安全组规则,确保新端口已放行。

面板 HTTPS 证书申请失败

  • 确认域名已经解析到当前 VPS:dig +short <你的域名>
  • 若域名托管在 Cloudflare,确认 DNS 记录为 DNS only(灰云),没有开启 Proxied(橙云/小黄云);
  • 确认 80/tcp 在系统防火墙和云安全组里都已放行;
  • 确认 80 端口没有被 Nginx、Caddy、Apache 等服务占用。

证书配置好了,但 Reality 仍然连不上

  • 面板证书只保护管理后台,不影响 Reality 入站;
  • Reality 连接失败应重点检查入站端口、防火墙、pbksidsnidest 与目标域名可用性。

节点可以连接但速度慢

  • 检查 VPS 线路,Reality 本身不会引入额外延迟;
  • 尝试更换 SNI 目标域名,部分域名延迟较高(建议按 偷域名 的方法找同机房低延迟目标)。

客户端提示"证书错误"或连接失败

  • 确认客户端 pbk(公钥)与服务端一致;
  • 确认 sni 与服务端配置的域名一致;
  • 确认没有使用 microsoft.comwww.microsoft.com 等微软域名作为 Target / SNI;
  • 确认服务端端口已在防火墙放行;
  • 检查目标域名是否可正常访问:curl -I https://<你的目标域名>

查看 Xray 日志

x-ui log
# 或
journalctl -u x-ui -f

评论