3x-ui 的面板因其特征明显,经常会被扫描探测,特别是使用免费证书时,面板域名会直接与 VPS IP 关联,存在较大的暴露风险。本方案利用 CF 小黄云、回源证书、回源规则的特性,让 3x-ui 面板与订阅都套上 CF,从而实现面板与 VPS IP 无关联。

优势

  • 回源证书有效期 15 年,无需续签
  • 隐藏 VPS IP,面板域名不关联 VPS
  • 通过 CF 强大的回源规则设置,可以实现面板访问、订阅访问
  • 面板端口任意
  • 订阅端口任意
  • 免费 DDoS 防护,CF 自带流量清洗

配合面板本身的监听域名路径功能,形成防护:

  1. 端口层:面板端口即使被扫描到,因无 CF 回源证书而无法建立 HTTPS,访问失败
  2. 路径层:即使知道面板域名,没有正确的访问路径,同样无法进入面板

原理

回源规则(Origin Rules):当访问面板域名时,回源到指定的端口,而不是默认端口。这样对外只需访问标准地址 https://dmit.deepseaside.com/路径,CF 会自动将请求转发到源站实际监听的端口。


方案

注:免费版 CF 域名计划,每个域名只支持 10 条回源规则,此方案占用 2 条——订阅一条,面板一条。

前置准备

  • 域名已托管在 CF
  • 3x-ui 安装完成(建议安装时选择申请 IP 证书)

准备以下参数(以下为路径和端口示例,建议端口选高位,路径用密码生成器生成):

项目 示例
面板端口 33321
订阅端口 33322
面板路径 /uUNE88baZ5jb/
订阅路径 /bNWkcx4kk3ra/
Clash 订阅路径 /SLt38gCV4xtq/

域名及 SSL 设置

子域名配置

进入域名页面 → DNS → 添加子域名 A 记录,开启小黄云

示例域名:dmit.deepseaside.com

SSL 设置

进入域名页面 → SSL/TLS → 概述 → SSL/TLS 加密(配置)→ 自定义 SSL/TLS → 完整(严格)


生成回源证书

进入域名页面 → SSL/TLS → 源服务器 → Origin 证书 → 创建证书

  • 复制源证书内容 → 保存为 deepseaside.com.pem
  • 复制私钥内容 → 保存为 deepseaside.com.key

⚠️ 私钥只显示一次,关闭弹窗后无法找回,请务必保存。


将证书上传至 VPS

文件可上传至 VPS 任意路径,注意文件权限。示例路径:

1
2
/etc/ssl/private/deepseaside.com.pem
/etc/ssl/private/deepseaside.com.key


回源规则设置

进入域名页面 → 规则 → 概述 → 创建回源规则(Origin Rules)

面板回源规则

1
2
3
4
5
6
主机名 等于      dmit.deepseaside.com
and
URI 开头为 /uUNE88baZ5jb/
and
SSL/HTTPS 等于
目标端口重写到 33321

订阅回源规则

1
2
3
4
5
6
7
8
9
10
11
12
主机名 等于      dmit.deepseaside.com
and
URI 包含 /bNWkcx4kk3ra/
and
SSL/HTTPS 等于
or
主机名 等于 dmit.deepseaside.com
and
URI 包含 /SLt38gCV4xtq/
and
SSL/HTTPS 等于
目标端口重写到 33322


3x-ui 面板配置

建议填写过程中多次保存,不保存直接切换页面内容会失效。
统一填写检查完成后,再重启面板。
第一次填写时,监听域名可留空,确认面板和订阅均可正常访问后,再填写监听域名。

面板设置

订阅设置

Clash 订阅设置


最终访问路径如下

项目 访问地址
面板 https://dmit.deepseaside.com/uUNE88baZ5jb/
订阅 https://dmit.deepseaside.com/bNWkcx4kk3ra/客户端订阅路径
Clash 订阅 https://dmit.deepseaside.com/SLt38gCV4xtq/客户端订阅路径

附:节点地址问题

面板套上 CF 后,3x-ui 订阅里所有节点的地址会变成面板域名。但面板域名套了 CF,节点直连走 CF 不通。

解决方案:在节点设置里开启 External Proxy 选项。

External Proxy 只影响该节点订阅里的节点地址。

External Proxy

使用fail2ban manager

更简单一点装个fail2ban manager,给面板端口设置白名单,除了你自己白名单ip谁也访问不了