Skip to content

AnyTLS

Potatso 支援的 AnyTLS 的 TLS 設定、連結與功能。

Updated 以 Markdown 檢視

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

你可以手動加入 AnyTLS 伺服器、使用 anytls:// 連結,或透過匯入:

  • Clash 或 Mihomo 訂閱,
  • Surge 設定。

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

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-opts ✅
Encrypted Client Hello(ECH) ech-opts ✅ 使用訂閱中的 ECH 設定,或從 DNS 查詢
自訂 CA 憑證 ❌
TLS 用戶端憑證 certificate、private-key ❌

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

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

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

REALITY

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

連線

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 會匯入該伺服器並顯示警告。

填充

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

UDP

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

功能支援

功能 支援
AnyTLS 協定 v2:密碼、填充、連線重複使用 ✅
伺服器傳送的填充方案 ✅
UDP over TCP ✅
閒置連線設定 ✅
REALITY、ECH ✅
憑證釘選、瀏覽器指紋 ✅
自訂 CA、TLS 用戶端憑證 ❌
anytls:// 連結 ✅

每一項支援的功能都至少用一台真實的 AnyTLS 伺服器測試過:anytls-go、sing-box 或 mihomo。

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

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

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

參數遵循 anytls-go 格式,再加上一些 App 額外加入的參數:

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

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

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

基本伺服器:

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

自簽憑證,不驗證:

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

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

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

Type to search…

↑↓ navigate↵ selectEsc close