# 代理协议

## `[l4proxies]`

定义 Shadowsocks、VMess 等第四层代理，每条记录的键为自定义代理名。

### 通用字段

| 键 | 类型 | 说明 | 必填 |
|---|---|---|---|
| `type` | 字符串 | `shadowsocks`、`vmess`、`anytls`、`vless`、`trojan`、`http` 或 `socks5`。 | 是 |
| `nickname` | 字符串 | 易读的显示名称。 | 否 |
| `server` | 字符串 | 服务器地址。 | 是 |
| `port` | 整数 | 服务器端口。 | 是 |
| `enabled` | 布尔值 | 是否启用，默认 `true`。 | 否 |
| `route-via-vpn` | 布尔值 | 1.8.0 新增，代理上游连接是否经 VPN 路由，以串联另一个 VPN/代理。默认 `false`；服务器 IP 必须为 IPv4 地址。 | 否 |

### Shadowsocks 字段

| 键 | 类型 | 说明 | 必填 |
|---|---|---|---|
| `password` | 字符串 | 密码。 | 是 |
| `method` | 字符串 | AEAD：`aes-128-gcm`、`aes-256-gcm`、`chacha20-ietf-poly1305`；2022：`2022-blake3-aes-128-gcm`、`2022-blake3-aes-256-gcm`、`2022-blake3-chacha20-poly1305`。 | 是 |
| `obfs-type` | 字符串 | 混淆类型 `tls` 或 `http`。 | 否 |
| `obfs-host` | 字符串 | 混淆主机；使用 `obfs-type` 时需要。 | 否 |
| `obfs-path` | 字符串 | 混淆路径；`obfs-type=http` 时需要。 | 否 |
| `udp-forward` | 布尔值 | 是否转发 UDP，默认 `false`。 | 否 |

Shadowsocks 2022 的 `password` 必须为 base64 编码的预共享密钥。解码后，`2022-blake3-aes-128-gcm` 需要 16 字节，`2022-blake3-aes-256-gcm` 和 `2022-blake3-chacha20-poly1305` 需要 32 字节。

### VMess 字段

| 键 | 类型 | 说明 | 必填 |
|---|---|---|---|
| `user-id` | UUID | 用户 ID。 | 是 |
| `alter-id` | 整数 | alter ID。 | 是 |
| `security` | 字符串 | 安全类型，如 `auto`。 | 是 |
| `transport-type` | 字符串 | `tcp` 或 `ws`。 | 是 |
| `ws-path` | 字符串 | WebSocket 路径；`transport-type=ws` 时需要。 | 否 |
| `sni` | 字符串 | TLS 服务器名称指示。 | 否 |
| `skip-cert-check` | 布尔值 | `true` 时跳过证书验证，默认 `false`。 | 否 |
| `alpn` | 字符串 | 应用层协议协商，默认 `h2,http/1.1`。 | 否 |

| 键 | 说明 |
|---|---|
| `ws-host` | 可选 WebSocket HTTP Host，与 TLS SNI 分开。 |
| `ws-h2-max-streams` | 可选 HTTP/2 WebSocket 并发流上限，范围 1–256。省略时使用运行时默认值。 |
| `tls-enabled` | 布尔值，默认 `true`。按服务器要求启用 TLS。 |

### AnyTLS 字段

使用 `type=anytls`。以下字段来自共享配置 schema。

| 键 | 类型 | 说明 | 必填 |
|---|---|---|---|
| `password` | 字符串 | AnyTLS 密码。 | 是 |
| `sni` | 字符串 | TLS 服务器名称指示，省略时使用 `server`。 | 否 |
| `skip-cert-check` | 布尔值 | `true` 时跳过上游证书验证，默认 `false`。 | 否 |
| `session-reuse` | 布尔值 | 启用空闲会话复用，默认 `true`。 | 否 |
| `idle-session-check-interval` | 整数 | 空闲会话检查间隔，1–3600 秒，默认 30。 | 否 |
| `idle-session-timeout` | 整数 | 空闲会话超时，1–3600 秒，默认 60。 | 否 |
| `min-idle-sessions` | 整数 | 最少保留空闲会话数，0–64，默认 1。 | 否 |
| `max-idle-sessions` | 整数 | 最多保留空闲会话数，0–64，默认 4。 | 否 |

```ini
[l4proxies]
any=type:anytls,nickname:AnyTLS,server:any.example.com,port:443,password:secret,sni:cdn.example.com,skip-cert-check:false,session-reuse:true,idle-session-check-interval:30,idle-session-timeout:60,min-idle-sessions:1,max-idle-sessions:4,enabled:true
```

### HTTP 与 SOCKS5 字段

| 键 | 类型 | 说明 | 必填 |
|---|---|---|---|
| `username` | 字符串 | 上游认证的代理用户名。 | 否 |
| `password` | 字符串 | 上游认证的代理密码。 | 否 |
| `udp-forward` | 布尔值 | SOCKS5 UDP 转发标记；目前保留用于配置兼容，实际 UDP 转发取决于运行时支持。 | 否 |

```ini
[l4proxies]
tshttp=type:http,nickname:tshttp,server:3.3.3.3,port:1055,enabled:true
tssocks=type:socks5,nickname:tssocks,server:10.1.1.1,port:1055,username:user,password:pass,enabled:true,udp-forward:false,route-via-vpn:true
ss2022=type:shadowsocks,nickname:SS2022,server:ss.example.com,port:8388,password:base64-psk,method:2022-blake3-aes-256-gcm,udp-forward:true,enabled:true
any=type:anytls,nickname:AnyTLS,server:any.example.com,port:443,password:secret,sni:cdn.example.com,skip-cert-check:false,session-reuse:true
```

### VLESS：TCP + REALITY + Vision（Pro）

2.1.0 仅支持这一组合。不支持 UDP/XUDP、WebSocket、gRPC、其他指纹和普通 VLESS/TLS。请将示例中的服务器信息和凭据替换为实际值。

| 键 | 说明 |
|---|---|
| `user-id` | 用户 UUID。 |
| `transport-type` | 仅支持 `tcp`，默认 `tcp`。 |
| `transport-security` | 必填：`reality`。 |
| `flow` | 必填：`xtls-rprx-vision`。 |
| `encryption` | 仅支持 `none`，默认 `none`。 |
| `sni` | 必填，服务器配置的 REALITY 伪装服务器 DNS 名称。 |
| `reality-public-key` | 必填，32 字节公钥的规范 base64url 编码，不带填充。 |
| `reality-short-id` | 可选；留空或偶数位十六进制数字，最多 16 位，须与服务器一致。 |
| `reality-fingerprint` | 仅支持 `chrome`，默认 `chrome`。 |
| `udp-forward` | 必须为 `false` 或省略；仅支持 TCP。 |

```ini
[l4proxies]
vless-1=type:vless,server:proxy.example.com,port:443,user-id:00010203-0405-0607-0809-0a0b0c0d0e0f,transport-type:tcp,transport-security:reality,flow:xtls-rprx-vision,encryption:none,sni:cover.example.com,reality-public-key:E59WjnvZcQMu7tR7_BgyhycuEdBS-CtKxfImRCdAvFM,reality-short-id:0123456789abcdef,reality-fingerprint:chrome,udp-forward:false
```

### Trojan：TCP 或 WebSocket + TLS（Pro）

必须使用 TLS。不支持 UDP、gRPC、mux 或 early data。日常使用请保持证书验证开启。

| 键 | 说明 |
|---|---|
| `password` | 必填，服务器密码。 |
| `transport-type` | `tcp`（默认）或 `ws`。 |
| `sni` | TLS 服务器名，默认使用 `server`，须与证书匹配。 |
| `skip-cert-check` | 默认 `false`；设为 `true` 将关闭服务器证书验证。 |
| `alpn` | 逗号分隔的 TLS ALPN，须用引号包为一个值。WebSocket 必须包含 `http/1.1`。 |
| `ws-path` | 以 `/` 开头的 WebSocket 路径，用于 `ws`。 |
| `ws-host` | 可选 WebSocket HTTP Host，独立于 TLS SNI。 |
| `tls-enabled` | 必须为 `true` 或省略。 |
| `udp-forward` | 必须为 `false` 或省略；仅支持 TCP。 |

```ini
[l4proxies]
trojan-1=type:trojan,server:trojan.example.com,port:443,password:"replace-with-password",sni:trojan.example.com,skip-cert-check:false
trojan-ws=type:trojan,server:trojan.example.com,port:443,password:"replace-with-password",transport-type:ws,ws-path:/proxy,ws-host:trojan.example.com,sni:trojan.example.com,alpn:"http/1.1",skip-cert-check:false
```

## 导入分享链接

粘贴支持的 `vless://`、`trojan://`、`vmess://`、`anytls://` 或 `ss://` 链接，也可扫描二维码或选择二维码图片。检查导入草稿后保存。导入只填充设置，不会连接或验证服务器；不支持的选项会报错，不会被静默丢弃。
