# 通过 Docker 搭建 3x-ui 面板

**前提条件**，一台海外服务器来搭建面板和节点，以及一个域名用来后续 SSL 证书申请和配置，当然域名不是必须但是方便快捷。

## 部署面板

使用下方提供的 Docker Compose 文件即可一键快速部署面板。

由于容器使用 `host` 网络模式，直接与宿主机共用一个网络，因此无需映射内部端口至宿主机，即可通服务器 IP 加默认的面板端口 `2053`，用户名 `admin`，密码 `admin`，进入 WEB 面板界面进行配置。

```yaml
services:
  3xui:
    image: ghcr.io/mhsanaei/3x-ui:latest
    container_name: 3xui_app
    volumes:
      - ./db/:/etc/x-ui/
      - ./cert/:/root/cert/
    environment:
      XRAY_VMESS_AEAD_FORCED: "false"
      XUI_ENABLE_FAIL2BAN: "true"
    tty: true
    network_mode: host
    restart: always
```

## 配置面板

在此之前，如果你按照前提条件搞了一个域名准备用来配置这些内容，就需要先给这个域名申请 SSL 证书，请自行寻找教程，推荐 acme.sh 脚本申请或者使用更方便快捷的宝塔面板申请皆可。

请点击左侧菜单栏的“面板设置”，以下是我的常用的设置建议：

- **常规**
  - **常规配置**
    - **面板监听域名** ：给面板配置一个域名方便访问，域名开头无需 `http://` 或 `https://`；
    - **面板监听端口** ：用高位端口替换默认端口，减低被发现机率，以免被坏小孩扫荡；
    - **面板 url 根路径** ：打开面板是需要的路径，我习惯域名加端口打开面板，所以直接设置根目录 `/` 。
  - **证书**
    - 若配置了域名，则需要配置证书的公钥和私钥文件，填写文件路径 `/root/cert/具体文件名`。
- **安全设定**
  - **管理员凭据** ：修改默认的用户名和密码；
  - **双重验证** ：按自己需求开启。

我一般不开启面板自带的订阅链接服务功能，面板所提供的订阅文件格式并未兼容 Clash 订阅格式，至于如何订阅下面会提到方法。

而其余的配置基本保持默认。

## 配置节点

以下是一份节点协议搭配建议，按“抗封锁程度”排行，数据来源于 [L 站一个帖子](https://linux.do/t/topic/897515/16)。

```
VLESS+XHTTP+TLS（CDN，上下行分离） >
VLESS+XHTTP+TLS（CDN） =
VLESS+XHTTP（上下行分离） >
VLESS+XHTTP+Reality >
VLESS+XHTTP+TLS =
Naive =
Meek >
VLESS+Vision+Raw+Reality >
VLESS+Vision+Raw+TLS =
AnyTLS >
Hysteria2 =
TUIC >
VLESS+gRPC+Reality >
VLESS+gRPC+TLS >
VLESS+WS+Reality =
VLESS+HTTPUpgrade+Reality >
VLESS+WS+TLS =
VLESS+HTTPUpgrade+TLS >
VLESS+KCP+Reality >
VLESS+KCP+TLS >
VLESS+Raw+Reality >
VLESS+Raw+TLS >
VMESS >
以下均不推荐使用
Shadowsocks =
Trojan >
WireGuard >
Socks >
HTTP
```

### VLESS + TCP + TLS

这个协议搭配比较简单容易配置，流量特征不算太明显，如果 GFW 查的不严基本不会阻断服务器 IP。

请点击左侧菜单栏的“入站列表”，进行添加入站：

- **协议** ：选 VLESS；
- **端口** ：按自己需求设定，建议高位端口；
- **客户** ：这里的客户就是平常订阅软件里显示的节点信息了，后续可以自行添加多个客户；
  - **电子邮件** ：随便填，看自己需求，这里就是节点的名称了；
- **传输** ：选择 TCP（RAW）；
- **安全** ：选择 TLS；
  - **数字证书** ：可以从面板设置证书，就是跟面板使用一样的域名一样的 SSL 证书；
- **Sniffing** ：开启，保持默认设置即可。

创建后，即可自行添加多个客户端即节点了，默认在创建入站列表时已经自带一个客户端即节点了。

一切就绪后，我们在入站列表中点击菜单的“导出链接”，并复制好，来到 [v2ray 转 clash 节点](https://v1.v2rayse.com/v2ray-clash/) 工具站，粘贴刚才复制的节点链接即可在下方得到用于 Clash 订阅的格式文件了。

如果是自己用，点击“预览 Clash”，在弹窗的下方点击“下载”即可得到订阅文件，自行添加到订阅软件中。

如果想分享给朋友用，可以用 Nginx 运行一个静态网站，在网站目录上传订阅文件，再通过链接分发即可。

### 其余协议正在学习中...

