安全加固
加固 3x-ui——面板认证与 2FA、Fail2ban IP 限制、防火墙规则、BBR,以及保持更新。
代理面板是高价值目标。几层加固措施就能带来很大改善。
面板加固
- 强而唯一的凭据,并启用双因素认证(TOTP)。
- 使用非默认的面板端口,以及一个长且随机的 Web 根路径。
- 为面板启用 TLS(直接启用,或通过反向代理)。
- 内置的登录限制器会在某个 IP/用户名于 5 分钟内连续 5 次登录失败后将其封锁 (封锁 15 分钟),并且面板可以将自身的出站流量经由某个 outbound 路由出去。
完整的检查清单请参见首次登录。
Fail2ban 与 IP 限制
为每个客户端设置一个 IP 限制(参见客户端),以限制同时使用的源
IP 数量。限制的执行由 Fail2ban 负责,3x-ui 会为你安装并配置好它(脚本安装时默认启用,
Docker 安装时通过 XUI_ENABLE_FAIL2BAN=true 启用)。
可从 x-ui 菜单(22 — IP Limit Management)进行管理:安装/配置、修改封锁时长
(默认 30 分钟)、封锁/解封某个 IP、查看封锁日志,以及检查状态。其底层机制如下:
- 该 jail 名为
3x-ipl;封锁日志位于/var/log/x-ui/3xipl.log与/var/log/x-ui/3xipl-banned.log(也可通过x-ui banlog查看)。 - 封锁覆盖所有 TCP/UDP,但不包括你的 SSH 端口和面板端口,因此封锁不会把你 锁在服务器或面板之外。
在 Docker 上,Fail2ban 使用 iptables 进行封锁,这需要 NET_ADMIN(以及
NET_RAW)权能——docker-compose.yml 已授予这些权能。若使用裸的
docker run,请添加 --cap-add=NET_ADMIN --cap-add=NET_RAW,否则封锁只会被
记录但永远不会真正生效。
防火墙
只开放你实际使用的端口:SSH、面板端口、订阅端口以及你的入站端口。x-ui 菜单
(23 — Firewall Management)封装了 ufw,或者你也可以在此生成规则:
Firewall rules generator
Pick the ports to open and copy ready-made ufw and nftables rules.
ufw allow 22/tcp # SSH
ufw allow 2053/tcp # panel
ufw allow 443/tcp # inbound (HTTPS)
ufw enable#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif "lo" accept
ct state established,related accept
icmp type echo-request accept
tcp dport 22 accept # SSH
tcp dport 2053 accept # panel
tcp dport 443 accept # inbound (HTTPS)
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}在启用默认拒绝(default-deny)的防火墙之前,请确保 SSH 始终处于放行状态,否则你 可能把自己锁在外面。请在保留第二个会话的情况下进行测试。
网络调优(BBR)
x-ui 菜单(26 — Enable BBR)用于切换 Google 的 BBR 拥塞控制算法
(net.ipv4.tcp_congestion_control = bbr、net.core.default_qdisc = fq),它在拥塞链路
上通常能提升吞吐量。

3x-ui