---
title: "AnyTLS"
description: "Potatso 支援的 AnyTLS 的 TLS 設定、連結與功能。"
---

> Documentation Index
> Fetch the complete documentation index at: https://potatso.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# AnyTLS

AnyTLS 伺服器由**密碼**及其 **TLS 設定**描述。AnyTLS 在 TLS 內執行並填充流量，因此連線看起來就像一般的 HTTPS 瀏覽，不會顯示 TLS 內代理常見的特徵。當 Potatso 支援伺服器的 TLS 設定時，就能連上該伺服器。請使用下方表格，對照服務商提供或 `anytls://` 連結中顯示的伺服器設定。

你可以手動加入 AnyTLS 伺服器、使用 [`anytls://` 連結](#links)，或透過匯入：

- Clash 或 Mihomo 訂閱，
- Surge 設定。

Potatso 目前還無法從 sing-box 設定匯入 AnyTLS 伺服器。請改用該伺服器的 `anytls://` 連結。

## TLS {#tls}

| 設定 | Clash 鍵 | 連結參數 | 支援 |
| --- | --- | --- | --- |
| 伺服器名稱（SNI） | `sni` | `sni` | ✅ 未設定時，Potatso 會使用伺服器的位址。 |
| ALPN | `alpn` | `alpn` | ✅ 未設定時，Potatso 不傳送任何值，與 Clash 相同。 |
| 略過憑證驗證 | `skip-cert-verify` | `insecure` | ✅ |
| 憑證釘選（SHA-256） | `fingerprint` | `hpkp` | ✅ |
| 瀏覽器指紋 | `client-fingerprint` | `fp` | ✅ `chrome`、`firefox`、`safari`、`ios`、`android`、`edge` 和 `random`。其他名稱會以預設的交握連線。 |
| [REALITY](#reality) | `reality-opts` | | ✅ |
| Encrypted Client Hello（ECH） | `ech-opts` | | ✅ 使用訂閱中的 ECH 設定，或從 DNS 查詢 |
| 自訂 CA 憑證 | | | ❌ |
| TLS 用戶端憑證 | `certificate`、`private-key` | | ❌ |

關閉憑證驗證會讓你與伺服器之間的任何人都能讀取你的流量。如果伺服器使用自簽憑證，請改為釘選伺服器的憑證：把該憑證的 SHA-256 設為憑證釘選。

瀏覽器指紋會讓連線的 TLS 交握看起來像該瀏覽器的交握。它不會改變伺服器必須支援的內容。

Potatso 不會匯入需要 TLS 用戶端憑證的伺服器，因為伺服器會拒絕連線。

### REALITY {#reality}

REALITY 伺服器借用另一個網站的 TLS 憑證，因此不需要自己的憑證。sing-box 伺服器提供搭配 REALITY 的 AnyTLS。請依服務商給你的內容設定伺服器的**公鑰**和 **short ID**，並把伺服器名稱設為該伺服器所借用的網站。REALITY 需要瀏覽器指紋，例如 `chrome`。

## 連線 {#connections}

AnyTLS 會重複使用它的 TLS 連線：當與某個網站的連線結束時，下一個連線會使用同一條 TLS 連線，而不是開啟新的。每條 TLS 連線一次只承載一個連線，所以同時有多個連線時會開啟多條 TLS 連線，之後再重複使用。

| 設定 | Clash 鍵 | 支援 |
| --- | --- | --- |
| 檢查閒置連線的頻率 | `idle-session-check-interval` | ✅ 單位為秒，預設 30 |
| 閒置連線保持開啟的時間 | `idle-session-timeout` | ✅ 單位為秒，預設 60 |
| 保持開啟的閒置連線數量 | `min-idle-session` | ✅ 預設 1 |

5 秒以下的值會視為 30，與 Clash 相同。這些設定來自 Clash 訂閱。對於你手動或透過連結加入的伺服器，Potatso 使用預設值。

Surge 設定中的 `reuse=false` 不會生效：Potatso 一律重複使用連線，與 AnyTLS 規格相同。Potatso 會匯入該伺服器並顯示警告。

## 填充 {#padding}

AnyTLS 會填充每個連線的開頭，以隱藏洩漏代理特徵的封包大小。伺服器可以傳送自己的填充方案，Potatso 會從下一條 TLS 連線開始採用，與 AnyTLS 的定義相同。你的裝置上不需要設定任何東西。

## UDP {#udp}

AnyTLS 在它的 TLS 連線內承載 UDP（UDP over TCP）。UDP 預設為關閉，與 Clash 相同。如果你的伺服器轉送 UDP，請在伺服器的設定中開啟 UDP 轉送。Clash 訂閱以 `udp: true` 開啟它，Surge 設定則一律開啟。

## 功能支援 {#features}

| 功能 | 支援 |
| --- | --- |
| [AnyTLS 協定](https://github.com/anytls/anytls-go/blob/main/docs/protocol.md) v2：密碼、填充、連線重複使用 | ✅ |
| 伺服器傳送的填充方案 | ✅ |
| UDP over TCP | ✅ |
| [閒置連線設定](#connections) | ✅ |
| REALITY、ECH | ✅ |
| 憑證釘選、瀏覽器指紋 | ✅ |
| 自訂 CA、TLS 用戶端憑證 | ❌ |
| `anytls://` 連結 | ✅ |

每一項支援的功能都至少用一台真實的 AnyTLS 伺服器測試過：[anytls-go](https://github.com/anytls/anytls-go)、[sing-box](https://sing-box.sagernet.org/) 或 [mihomo](https://wiki.metacubex.one/)。

密碼錯誤時，伺服器會關閉連線。當 AnyTLS 伺服器始終無法連線時，請先檢查密碼。

## `anytls://` 連結 {#links}

`anytls://` 連結用一行就包含整台伺服器：

```text
anytls://password@host:port/?parameters#name
```

| 部分 | 說明 |
| --- | --- |
| `password` | 密碼，經過百分比編碼。 |
| `host` | 伺服器位址。IPv6 位址請放在方括號中，例如 `[2001:db8::1]`。 |
| `port` | 伺服器連接埠。缺少時，Potatso 使用 443。 |
| `name` | 選填。伺服器在 Potatso 中的名稱。 |

參數遵循 [anytls-go 格式](https://github.com/anytls/anytls-go/blob/main/docs/uri_scheme.md)，再加上一些 App 額外加入的參數：

| 參數 | 說明 |
| --- | --- |
| `sni` | TLS 伺服器名稱。 |
| `insecure` | `1` 表示關閉憑證驗證。 |
| `alpn` | ALPN 清單，以逗號分隔並經過百分比編碼。 |
| `fp` | 瀏覽器指紋。 |
| `hpkp` | 伺服器憑證的 SHA-256。 |

Potatso 分享 AnyTLS 伺服器時，會提供帶有相同參數的 `anytls://` 連結。

### 範例 {#link-examples}

每個範例都顯示要匯入的連結。密碼是 `secret`。

基本伺服器：

```text
anytls://secret@anytls.example.com:443/?sni=anytls.example.com#Basic
```

自簽憑證，不驗證：

```text
anytls://secret@203.0.113.7/?insecure=1#Self-signed
```

Chrome 指紋、ALPN 清單與釘選的憑證：

```text
anytls://secret@anytls.example.com:443/?sni=anytls.example.com&alpn=h2%2Chttp%2F1.1&fp=chrome&hpkp=abababababababababababababababababababababababababababababababab#Shaped
```

Source: https://potatso.com/docs/zh-hant/protocols/anytls/index.mdx
