3x-ui 面板被人登进去,整台服务器都送人:四项设置防盗用
不翻车编辑部 · 更新于

先说结论:3x-ui 的面板密码,等于整台服务器的钥匙。3x-ui 在 10 月 25 日发的安全通报里写着,拿到管理员权限就能控制所有节点、用户、设置和面板自带的文件、程序操作,而面板通常用 root 运行。用 Docker 装的面板(3.10.2 及以前),账号密码默认都是 admin。要做的是四项:改端口、改网址路径、开双重验证、用 SSH 端口转发让面板从外网打不开。前两项五分钟,做完以后用 IP 地址加端口打开,看到的是 404;四项都做完,面板在外网就打不开了。

下面的截图来自本机临时用 Docker 起的 3x-ui v3.11.0(2026 年 10 月 30 日),面板首页和登录页上的赞助横幅裁掉了;x-ui 脚本菜单的输出取自同一版本的 x-ui.sh,服务器地址换成示例地址并遮了末两位。
面板为什么值得防
3x-ui 的设置页最上面有一个红框,标题是“安全警告”,写着“您的面板可能已暴露”,下面列三条:明文 HTTP、默认端口 2053、默认根路径”/“。这是面板自己弹出来的提醒。

10 月 25 日,3x-ui 发了安全通报 GHSA-766p-2p4j-3mfm,级别是严重(Critical,9.8 分):新数据库会带一个固定的 admin / admin 管理员账号,监听 0.0.0.0:2053,路径是”/“,面板不强制改。只有安装脚本 install.sh 会把它们换成随机值;Docker 镜像、手动运行的发布包、源码构建都会保留。3.11.0 修了这个问题,新库的第一个用户改成随机产生,但已经存在的数据库不会动。

拿到面板以后能走多远,看另外两个通报。6 月 12 日公布的 GHSA-jm48-m3rr-9hgg(3.3.1 修复)和 10 月 3 日公布的 GHSA-h4x8-qc42-f6wv(3.8.0 修复),都是登录后的管理员可以往服务器任意位置写文件,Xray 以 root 运行时就能拿到持久的 root 权限。这两个已经修好了,但它们说明面板密码丢了,丢的是整台服务器。

面板也不难找。常用的开源漏洞扫描工具 Nuclei 里有一个现成的检测项“3X-UI - Default Login”,严重程度标的是 high,内容就是用 admin / admin 试登录;检测项里还附了搜索语句 title="3x-ui",按网页标题在网络空间搜索引擎里找登录页。

别人进了面板,能做的至少有三件:用你的节点上网,流量算在你的服务器上;拿服务器去攻击别人,服务商收到投诉,停的是你的机器;把你所有用户的连接信息整份拿走。
先花两分钟自查
- 看版本。 登录面板,左上角 Xray 状态旁边那一行就是面板版本号。低于 3.8.0 的,上面说的写文件漏洞还在,先升级。
- 看账号。 还在用 admin 的,现在就换。位置:面板设置 → 安全设定 → 管理员凭据,填原用户名、原密码、新用户名、新密码,点确定。密码用一长串随机字母和数字,存进密码管理器。
- 看浏览器地址栏。 平时打开面板的网址如果是
http://服务器IP:2053/,后面没有别的路径,说明下面的前两项一项都没做。


用官方一键脚本装的面板(3x-ui 安装教程用的就是它),用户名、密码、端口(1024 到 62000 之间随机)、路径(18 位随机字母)在安装时已经随机产生。Docker 装的、手动装的要从头做一遍。下面用到的 x-ui 管理菜单,也是脚本装的才有。
第一项:改端口
面板设置 → 常规 → 面板监听端口,把 2053 改成 10000 到 60000 之间的一个数,别用 8080、8443 这种常见端口。点页面上方的“保存”,再点“重启面板”,然后用新端口打开。


![]()
顺序别反。 服务器上开了防火墙的,先放行新端口再改,不然面板重启后你自己也打不开。用 x-ui 脚本放行:
root@srv:~# x-ui
Please enter your selection [0-28]: 23
1. Install Firewall
2. Port List [numbered]
3. Open Ports
...
Choose an option: 3
Enter the ports you want to open (e.g. 80,443,2053 or range 400-500): 34567
Rules updated
Rules updated (v6)
云服务商网页后台有安全组的,那里也要加。万一改完打不开,SSH 登录服务器,输入 x-ui 选 10 改回来。
改端口的作用有限:扫描器会把每个端口都试一遍。安全警告把 2053 列出来,是因为它太好认。更管用的是下一项。
第二项:改网址路径
还是面板设置 → 常规,找到“URI 路径”,把”/“换成一串随机字母和数字,前后都要带斜杠,中间十几位以上,比如 /k8Qm2xR7vLp4Tz9Wn3/。保存,重启面板。

改完以后,不带路径打开就是 404,登录页根本不出现,按网页标题找面板的搜索语句也就找不到你:
$ curl -I http://203.0.113.■■:34567/
HTTP/1.1 404 Not Found
$ curl -s http://203.0.113.■■:34567/k8Qm2xR7vLp4Tz9Wn3/ | grep title
<title>Sign in</title>
嫌自己编麻烦,用脚本:输入 x-ui 选 8”Reset Web Base Path”,会随机产生一串 18 位的路径并重启面板。改完把完整网址存进浏览器书签。
面板设置的“订阅设置”里也有一个 URI 路径。如果还是 /sub/,安全警告也会提醒。注意:这个路径一改,所有人的订阅链接都会变,每个用户都要重新导入一次,先通知家人再改。

第三项:开双重验证
开了以后,登录面板除了密码,还要输入手机上的 6 位验证码,30 秒换一次。密码被人拿到,没有你的手机也登不进去。
- 手机上装一个验证器 App:谷歌身份验证器、微软验证器都行,iPhone 自带的“密码”App 也能存验证码。
- 面板设置 → 安全设定 → 双重验证,打开“启用 2FA”开关。
- 弹窗里用验证器 App 扫二维码,把 App 里的 6 位数字填进去,点确定。
- 再点页面上方的“保存”。 这一步最容易漏:开关打开、点完确定,设置还没存,要点保存才生效(v3.11.0 实测,不用重启面板)。
- 退出面板重新登录,登录页会多出一个“代码”框。




开完记住三点:
- 二维码下面那串字母叫令牌,抄下来存好,换手机、丢手机靠它恢复。
- 服务器时间和手机时间差一分钟以上,验证码会一直报错。3x-ui 只容忍前后各一个 30 秒窗口(源码
totp.go里SkewWindows = 1)。 - 手机丢了、令牌也没存:SSH 登录服务器,
x-ui选 7 重置用户名和密码,它会问Do you want to disable currently configured two-factor authentication? (y/n),输入 y。
另外,3x-ui 自己会挡试密码的人:同一个 IP 地址、同一个用户名,5 分钟里输错 5 次,拦 15 分钟(源码 login_limiter.go)。被拦以后页面提示和输错密码一样,对方不知道自己被拦了。你自己连着输错也会被拦,等 15 分钟再试。
第四项:用 SSH 端口转发,让面板从外网打不开
面板里没有“只允许某个 IP 登录”的开关。常规页面里那项“IP 限制白名单”管的是节点用户的设备数限制,和登录面板没关系,别填错。家里宽带的 IP 地址经常变,靠防火墙只放行自己的 IP,很容易把自己关在外面。

3x-ui 脚本给的办法是 SSH 端口转发:面板只在服务器自己的 127.0.0.1 上听,外网连不进来;你要用时,从自己电脑开一条 SSH 加密通道进去。Xray 作者 RPRX 2025 年 2 月在 net4people 发帖说,3X-UI 这类面板默认提供明文 HTTP 访问,会让密码、代理私钥被墙截获,要求面板禁止公网明文 HTTP,可以改用 SSH 端口转发或免费 TLS 证书。

设置:
- SSH 登录服务器,输入
x-ui,选 24”SSH Port Forwarding Management”。 - 选 1”Set listen IP”,再选 1”Use default IP (127.0.0.1)“。面板自动重启,屏幕上打印出以后要用的命令,复制下来:
listen IP has been set to 127.0.0.1.
SSH Port Forwarding Configuration:
Standard SSH command:
ssh -L 2222:127.0.0.1:34567 root@203.0.113.■■
After connecting, access the panel at:
http://localhost:2222/你的路径/
这时在服务器上看,面板端口只在 127.0.0.1 上听;从外面直接连,连接被重置:
tcp 0 0 127.0.0.1:34567 0.0.0.0:* LISTEN
$ curl http://203.0.113.■■:34567/你的路径/
curl: (56) Recv failure: Connection reset by peer
- 以后要用面板,在电脑上打开终端(Windows 用 PowerShell,Mac 用“终端”),粘贴那条
ssh -L 2222:127.0.0.1:你的面板端口 root@服务器IP地址,回车,输入服务器密码登录,这个窗口别关。 - 浏览器打开
http://localhost:2222/你的面板路径/,面板就出来了。

浏览器连的是自己电脑的 2222 端口,SSH 加密后送进服务器,再交给面板,整条路都是加密的,明文 HTTP 的问题一起解决。
这一步有代价:
- 手机上管理面板麻烦很多,要装支持端口转发的 SSH App,平时用电脑管理更方便。
- 整台服务器的安全全靠 SSH 这道门,SSH 密码要够长,能换成密钥登录更好。
- 节点和订阅不受影响,它们用自己的端口。
- 想恢复原样:
x-ui选 24,再选 2”Clear listen IP”。
四项过一遍
| 项 | 在哪改 | 坑 |
|---|---|---|
| 改端口 | 面板设置 → 常规 → 面板监听端口;或 x-ui 选 10 | 先在防火墙放行新端口;作用有限 |
| 改路径 | 面板设置 → 常规 → URI 路径;或 x-ui 选 8 | 订阅路径改了,所有人要重新导入 |
| 双重验证 | 面板设置 → 安全设定 → 双重验证 | 点完确定还要点“保存”;令牌抄下来 |
| SSH 端口转发 | x-ui 选 24 → 1 → 1 | 手机管理不方便;SSH 密码要够强 |
做完前三项,别人光知道 IP 地址,找不出登录页,也试不出密码;四项都做完,面板在外网就打不开了。
相关:3x-ui 面板怎么用、3x-ui 节点超时怎么办、VPS 被墙了怎么判断。
常见问题
我是用官方一键脚本装的 3x-ui,还要改吗
账号、密码、端口、路径在安装时已经随机产生,安全通报写明脚本安装的不受 admin/admin 问题影响。双重验证和 SSH 端口转发还是值得做,面板默认走明文 HTTP。
开了双重验证,手机丢了怎么办
先用开启时抄下的令牌在新手机上恢复。令牌也没有的,SSH 登录服务器,输入 x-ui 选 7 重置用户名和密码,问是否关闭双重验证时输入 y。
面板监听 IP 设成 127.0.0.1 以后,节点还能用吗
能。这一项只管面板自己的端口,节点和订阅用的是各自的端口,照常工作。
面板里的 IP 限制白名单能限制谁登录面板吗
不能。它管的是节点用户的设备数限制,写进去的地址不计数、不封禁,和登录面板没有关系。
来源
- 3x-ui 安全通报 GHSA-766p-2p4j-3mfm(2026-10-25)、GHSA-jm48-m3rr-9hgg(2026-06-12)、GHSA-h4x8-qc42-f6wv(2026-10-03)、GHSA-73xj-vvj7-fp4p(2026-10-25),github.com/MHSanaei/3x-ui/security/advisories。
- 3x-ui v3.11.0 源码:
internal/web/controller/login_limiter.go、internal/util/totp/totp.go、x-ui.sh、install.sh。 - projectdiscovery/nuclei-templates:
http/default-logins/xui/3xui-default-login.yaml。 - net4people/bbs #448,RPRX,2025-02-10。
- 截图和命令输出:本机 Docker 临时 3x-ui v3.11.0,2026 年 10 月 30 日。
