代理訂閱是代理服務商提供的私人 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 標頭,則常會成為設定檔的名稱。

自動更新
訂閱必須保持最新才有用。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)。如果外洩了,請在服務商的後台重設訂閱連結,再匯入新的連結。