代理訂閱是代理服務商提供的私人 URL,會回傳你的伺服器清單。 代理 App 下載它之後,會一次匯入所有伺服器,並在之後重新下載,讓新增或變更的伺服器自動出現。Clash 訂閱連結也是同樣的概念,只是這個 URL 回傳的是一份完整的 Clash 設定,除了伺服器之外,還有代理群組和規則。

本文說明訂閱包含哪些內容、三種常見格式、App 如何下載和更新訂閱,以及如何保護你的訂閱不外流。

代理訂閱是什麼?

單一伺服器可以用一個分享連結來分享,例如 ss://… 或 vless://…。如果是你自己架設的一台伺服器,這樣就夠了。但服務商通常會給你分布在不同地區的許多伺服器,而且會不時更換位址、連接埠和金鑰。每次都寄新連結給你,根本不可行。

所以他們改給你一個 URL,例如:

https://sub.example.com/api/v1/client/subscribe?token=abc123

這個 URL 背後是一份列出你所有伺服器的文件。token 這部分用來識別你的帳號,所以同一個 URL 只會回傳你的伺服器,不會是別人的。你只要把它貼進 App 一次,App 就會持續保持同步。

分享連結 訂閱 URL
內容 一台伺服器 伺服器清單,通常還有群組和規則
長相 ss://、vless://、trojan://… https://…
會不會變 不會:新伺服器就是新連結 服務商會更新它回傳的內容
在 App 中更新 否 是,定期或手動更新

常見的訂閱格式

訂閱沒有統一的標準,但以下三種格式涵蓋了大多數服務商。

Base64 訂閱(V2Ray、Xray、Shadowsocks)

最早也最簡單的格式,是一份每行一個分享連結、再以 Base64 編碼的純文字清單。解碼後看起來像這樣:

ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:8388#Tokyo
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&sni=vless.example.com#Singapore
trojan://secret@trojan.example.com:443?sni=trojan.example.com#Frankfurt

任何 App 都能輕鬆讀取,但它只列出伺服器,沒有群組也沒有規則,所以流量要怎麼導向由你的 App 決定。

Clash 與 Mihomo YAML

Clash 訂閱回傳的是一份 YAML 設定。目前大多數 Clash App 背後的核心 Mihomo 也讀取相同的格式,並支援更多協定。以下是一個精簡的範例:

proxies:
  - name: Tokyo
    type: ss
    server: ss.example.com
    port: 8388
    cipher: aes-256-gcm
    password: secret
proxy-groups:
  - name: Auto
    type: url-test
    proxies: [Tokyo]
    url: https://www.gstatic.com/generate_204
    interval: 300
rules:
  - DOMAIN-SUFFIX,example.org,DIRECT
  - MATCH,Auto

除了 proxies,Clash 設定還可以包含 proxy-groups(手動、最快或備援選擇)、決定哪些流量走代理的 rules、從其他 URL 拉取更多清單的 rule-providers 和 proxy-providers,以及 dns 設定。這就是為什麼有 Clash 訂閱時大家都會優先選它:你拿到的是一套現成的分流設定,而不只是伺服器。

Surge 設定檔

Surge 使用 INI 風格的文字檔,包含 [Proxy]、[Proxy Group] 和 [Rule] 等區段。許多服務商也有提供。Surge 以外的 App 可以讀取共通的部分,但 Surge 專屬的區段(例如腳本和 URL 重寫)在其他地方沒有對應功能。

App 如何下載訂閱

App 下載訂閱時,送出的是一般的 HTTPS 請求。有兩個細節很重要。

User-Agent 決定格式

許多服務商的面板會依照發出請求的 App 回傳不同格式,而它們是靠 User-Agent 標頭來分辨 App 的。自稱是 Clash 用戶端的請求會拿到 YAML,其他請求則可能拿到 Base64 清單。有些面板也允許你在 URL 中多加一段參數來指定格式,請參考服務商的說明。

Potatso 下載訂閱時會以 clash.meta 表明身分。因此,依 App 決定格式的面板,也會把含有群組和規則的 Clash / Mihomo 設定傳給 Potatso。

標頭會帶上你的流量資訊

許多面板會在回應中加上 subscription-userinfo 標頭:

subscription-userinfo: upload=1234; download=5678; total=107374182400; expire=1798761600

upload 和 download 是你已使用的位元組數,total 是方案的流量上限,expire 則是方案到期時間的 Unix 時間戳記。能讀取這個標頭的 App,不必登入服務商網站就能顯示已用流量和到期日。帶有檔名的 Content-Disposition 標頭,則常會成為設定檔的名稱。

Potatso 中的訂閱設定檔,顯示已用流量、到期日、上次與下次更新,以及「立即更新」

自動更新

訂閱必須保持最新才有用。App 會定期重新下載(通常是每天一次),並以新的伺服器清單取代舊的。大多數 App 也允許你在某台伺服器失效時手動更新。

好的 App 也會保留你自己的修改。如果你重新命名了某個群組或新增了一條規則,你不會希望下一次更新把它還原。以 Potatso 為例,它會把你的修改記錄成覆寫,並在每次更新後重新套用,而不會動到原本的訂閱。

保護好你的訂閱 URL

訂閱 URL 實際上就等同一組密碼:

  • 任何拿到它的人都能使用你的帳號。 他們可以匯入你的伺服器,把你的流量用光。
  • 不要公開張貼。 截圖、QR 碼、錯誤回報和群組聊天都包括在內。
  • 優先使用 HTTPS。 透過一般 http:// 下載的訂閱,可能在傳輸途中被讀取或竄改。設定透過一般 HTTP 傳來時,Potatso 會顯示提示。
  • 外洩了就重設。 大多數服務商的後台都有重設訂閱連結的按鈕。重設後再匯入新的 URL。
  • 小心線上轉換工具。 把 URL 貼進第三方轉換網站,等於把你的伺服器交給那個網站。

訂閱與協定

訂閱只是一個容器。裡面的伺服器使用 Shadowsocks、VLESS、Trojan、Hysteria 2 或 AnyTLS 等協定,你的 App 必須支援每一種協定才能使用。App 通常會略過無法使用的伺服器,並告訴你原因。這些協定有什麼不同,請見代理協定比較;最常見的協定,請見 Shadowsocks 是什麼?

在 iPhone 上使用訂閱

Potatso 是適用於 iPhone 和 iPad 的免費代理用戶端,可以匯入 Clash / Mihomo YAML、Base64 訂閱、V2Ray / Xray JSON、Surge 設定檔和 Shadowsocks SIP008。它會在匯入前顯示預覽、顯示你的已用流量和到期日,並預設每天更新。

請依照逐步教學操作:iPhone 如何匯入 Clash 訂閱,或在匯入訂閱與設定中查看完整的格式清單。

常見問題

Clash 訂閱連結是什麼?
它是代理服務商提供的 URL,會回傳一份 Clash 或 Mihomo 的 YAML 設定。這份檔案列出你的伺服器,通常也包含代理群組和規則,App 會定期重新下載,讓內容保持最新。
訂閱 URL 和分享連結一樣嗎?
不一樣。ss:// 或 vless:// 這類分享連結描述的是單一伺服器,而且永遠不會變。訂閱 URL 指向服務商伺服器上的一份清單,服務商可以新增、移除或修改其中的伺服器,App 重新下載後就會套用這些變更。
為什麼我的訂閱在瀏覽器裡看起來是一堆亂碼?
許多 V2Ray 和 Shadowsocks 訂閱是經過 Base64 編碼的分享連結清單,代理 App 會負責解碼。有些服務商也會依照發出請求的 App 回傳不同格式,所以瀏覽器看到的內容可能和 App 不同。
如果別人拿到我的訂閱 URL 會怎樣?
對方可以匯入你的伺服器、用掉你的流量,因為 URL 裡通常含有一個作用等同密碼的權杖(token)。如果外洩了,請在服務商的後台重設訂閱連結,再匯入新的連結。

其他語言版本: English · 简体中文 · 日本語 · Русский