VMess 伺服器由 UUID、加密流量的加密方式,以及承載連線的傳輸描述,傳輸例如 WebSocket 或 gRPC,可搭配或不搭配 TLS。當 Potatso 支援伺服器的加密方式、傳輸與 TLS 設定時,就能連上該伺服器。請使用下方表格,對照服務商提供或 vmess:// 連結中顯示的伺服器設定。
你可以手動加入 VMess 伺服器、使用 vmess:// 連結,或透過匯入:
- Clash 或 Mihomo 訂閱,
- Xray 或 V2Ray 設定,
- Surge 設定。
Potatso 目前還無法從 sing-box 設定匯入 VMess 伺服器。請改用該伺服器的 vmess:// 連結。
加密方式
| 加密方式 | 支援 |
|---|---|
auto |
✅ Potatso 會選用 aes-128-gcm,每一台 Apple 裝置都以硬體執行它。 |
aes-128-gcm |
✅ |
chacha20-poly1305 |
✅ |
none |
✅ |
zero |
❌ |
aes-128-cfb(舊版) |
❌ |
none 和 zero 會以未加密的方式傳送你的流量。none 請只搭配 TLS 使用,由 TLS 來加密連線。Potatso 不會以 zero 連線,它也會移除防止竄改的保護:請在伺服器上改選其他加密方式。
alterId
Potatso 一律使用目前的 VMess 驗證,等同於 alterId 為 0。使用者的 alterId 仍大於 0 的伺服器也接受這種驗證,所以你不必更動伺服器。Potatso 不支援只有 alterId 大於 0 時才使用的舊式驗證,伺服器自 2022 年起已棄用它。
傳輸
| 傳輸 | 連結 net / type |
支援 | 測試對象 |
|---|---|---|---|
| 無(單純 TCP) | tcp,或不指定 |
✅ 可搭配或不搭配 TLS | Xray、sing-box、V2Ray |
| WebSocket | ws |
✅ 可搭配或不搭配 TLS 與 early data | Xray、sing-box、V2Ray |
| gRPC | grpc |
✅ 可搭配或不搭配 TLS | Xray、sing-box、V2Ray |
| HTTP/2 | h2 或 http |
✅ 搭配 TLS | sing-box、V2Ray |
| HTTP Upgrade | httpupgrade |
✅ 可搭配或不搭配 TLS | Xray、sing-box |
| 帶有 HTTP 標頭的 TCP | tcp 搭配 type=http |
❌ | |
| XHTTP | xhttp |
❌ | |
| mKCP、QUIC | kcp、quic |
❌ |
每種支援的傳輸都支援 UDP。Potatso 不會匯入使用不支援傳輸的伺服器。
WebSocket early data 會把連線最初的幾個位元組隨 WebSocket 交握一起傳送,省下一次往返。它以連結路徑結尾的 ?ed=2048 設定,或在 Clash 訂閱中以 max-early-data 設定。
Xray 已不再提供 HTTP/2:原本使用它的 Xray 伺服器現在改用 XHTTP,而 Potatso 尚未支援 XHTTP。
TLS
| 設定 | Clash 鍵 | 連結欄位 | 支援 |
|---|---|---|---|
| 伺服器名稱(SNI) | servername |
sni |
✅ 未設定時,Potatso 會使用伺服器的位址。 |
| ALPN | alpn |
alpn |
✅ 未設定時,Potatso 對 WebSocket 傳送 http/1.1,對 gRPC 和 HTTP/2 傳送 h2。 |
| 略過憑證驗證 | skip-cert-verify |
allowInsecure |
✅ |
| 瀏覽器指紋 | client-fingerprint |
fp |
✅ chrome、firefox、safari、ios、android、edge 和 random。其他名稱會以預設的交握連線。 |
| 憑證釘選 | fingerprint |
pcs |
❌ |
| REALITY | reality-opts |
security=reality |
❌ |
| Encrypted Client Hello(ECH) | ech-opts |
ech |
❌ |
| 自訂 CA 憑證 | ❌ |
關閉憑證驗證會讓你與伺服器之間的任何人都能讀取你的流量。Potatso 不會連線到需要 REALITY、ECH 或憑證釘選的 VMess 伺服器,因為沒有這些設定就連線,無法提供伺服器所要求的保護。需要 REALITY 時,請使用 VLESS 或 Trojan。
瀏覽器指紋會讓連線的 TLS 交握看起來像該瀏覽器的交握。它不會改變伺服器必須支援的內容。
UDP
VMess 伺服器的 UDP 預設為關閉。請在伺服器的設定中開啟 UDP 轉送,或在 Clash 訂閱中設定 udp: true。
Potatso 會把每個 UDP 流向各自透過一條 VMess 連線傳送,每台 VMess 伺服器都接受這種方式。它不支援 XUDP 和 PacketAddr 編碼(連結中的 packetEncoding,Clash 訂閱中的 packet-encoding 或 xudp),這些編碼會讓許多 UDP 流向共用一條連線:以此設定的伺服器仍然可以使用,Potatso 會在匯入時告訴你,它改用自己的 UDP 方式。需要 full-cone NAT 的 App(例如某些遊戲)可能無法在其中運作。
開啟多工後,UDP 會改為透過共用的連線傳送。
多工
Potatso 可以讓多個連線共用同一條 VMess 連線,在 Clash 訂閱中以 smux 設定:
| 協定 | smux protocol |
伺服器 |
|---|---|---|
| Mux.Cool | muxcool |
Xray、V2Ray 和 sing-box,不需要伺服器設定 |
| sing-mux | h2mux、smux、yamux |
已開啟多工的 sing-box |
TCP 與 UDP 都適用。Mux.Cool 會同時關閉連線的兩個方向,所以停止傳送後再等待回覆的 App,應該使用沒有多工的伺服器。
請求選項
VMess 用戶端會為每個連線選擇一些選項,而每台伺服器都接受其中任何一種。Potatso 一律以加密的區塊傳送流量,並標示每次上傳的結尾,其他選項則不設定:
| 選項 | Clash 鍵 | Potatso |
|---|---|---|
| 區塊串流 | 一律開啟 | |
| 區塊遮罩 | 關閉 | |
| 全域填充 | global-padding |
關閉。匯入設定了它的伺服器時,Potatso 會顯示警告。 |
| 已驗證的長度 | authenticated-length |
關閉。匯入設定了它的伺服器時,Potatso 會顯示警告。 |
區塊遮罩和全域填充可對旁觀者隱藏每個區塊的大小。沒有它們時,你的流量仍然無法被讀取,但其模式較容易被辨識。
大量上傳
單一 VMess 連線可上傳約 1 GiB。VMess 以計數器為加密區塊編號,計數器在那之後就會用盡,繼續下去會削弱加密強度,所以 Potatso 會改為關閉連線。下載沒有限制。如果單一連線的上傳量超過 1 GiB,請使用 VLESS 或 Trojan 伺服器。
功能支援
| 功能 | 支援 |
|---|---|
AEAD 驗證(alterId 為 0) |
✅ |
舊式 MD5 驗證(alterId 大於 0) |
❌ alterId 大於 0 的伺服器接受 AEAD 驗證。 |
加密方式 aes-128-gcm、chacha20-poly1305、none、auto |
✅ |
加密方式 zero 與舊版的 aes-128-cfb |
❌ |
| 區塊串流、上傳結尾標記 | ✅ |
| 區塊遮罩、全域填充、已驗證的長度 | ❌ 伺服器接受沒有它們的連線 |
| UDP | ✅ 每個流向一條連線 |
| 單一連線上傳超過約 1 GiB | ❌ 請見大量上傳 |
| XUDP、PacketAddr | ❌ |
| Mux.Cool | ✅ TCP 和 UDP |
| sing-mux(h2mux、smux、yamux) | ✅ TCP 和 UDP |
| 傳輸 | 請見傳輸 |
| TLS | 請見 TLS |
| v2rayN 分享連結(版本 2) | ✅ |
| Xray 分享連結 | ✅ |
| Shadowrocket 分享連結 | 僅限匯入 |
vmess:// 連結
vmess:// 連結用一行就包含整台伺服器。Potatso 匯入三種形式,並分享前兩種。
v2rayN 形式最為常見,是經過 Base64 編碼的 JSON 物件:
vmess://base64({"v":"2","ps":"name","add":"host","port":"443","id":"uuid",…})| 欄位 | 說明 |
|---|---|
v |
格式版本,2。 |
ps |
選填。伺服器在 Potatso 中的名稱。 |
add |
伺服器位址。 |
port |
伺服器連接埠。 |
id |
UUID。 |
aid |
alterId。請見 alterId。 |
scy |
加密方式。未指定時為 auto。 |
net |
傳輸:tcp、ws、grpc、h2 或 httpupgrade。 |
type |
none,或 http(表示帶有 HTTP 標頭的 TCP,Potatso 不支援)。 |
host |
WebSocket、HTTP/2 和 HTTP Upgrade 的 Host 標頭。 |
path |
WebSocket、HTTP/2 和 HTTP Upgrade 的路徑,或 gRPC 的服務名稱。WebSocket 路徑可用結尾的 ?ed=2048 啟用 early data。 |
tls |
tls 表示使用 TLS,或留空。 |
sni、alpn、fp |
TLS 伺服器名稱、ALPN 清單與瀏覽器指紋。 |
Xray 形式是 URL,加密方式放在 encryption,傳輸與 TLS 設定則是查詢參數:
vmess://uuid@host:port?type=ws&security=tls&sni=…&host=…&path=…&encryption=auto#name| 參數 | 說明 |
|---|---|
type |
傳輸。 |
encryption |
加密方式。未指定時為 auto。 |
security |
tls 或 none。 |
sni、alpn、fp |
TLS 伺服器名稱、ALPN 清單與瀏覽器指紋。 |
host、path |
Host 標頭與路徑,與 v2rayN 形式相同。 |
serviceName |
gRPC 服務名稱。 |
ed |
WebSocket early data,單位為位元組。 |
Potatso 也會匯入 Shadowrocket 的形式:vmess://base64(cipher:uuid@host:port)?remarks=…&obfs=websocket&…。
範例
每個範例都顯示要匯入的連結。UUID 是 b831381d-6324-4d53-ad4f-8cda48b30811。
透過 cdn.example.com 的 WebSocket,搭配 TLS 與 early data,並使用 Chrome 指紋:
vmess://eyJ2IjoiMiIsInBzIjoiV1MgVExTIiwiYWRkIjoidm1lc3MuZXhhbXBsZS5jb20iLCJwb3J0IjoiNDQzIiwiaWQiOiJiODMxMzgxZC02MzI0LTRkNTMtYWQ0Zi04Y2RhNDhiMzA4MTEiLCJhaWQiOiIwIiwic2N5IjoiYXV0byIsIm5ldCI6IndzIiwidHlwZSI6Im5vbmUiLCJob3N0IjoiY2RuLmV4YW1wbGUuY29tIiwicGF0aCI6Ii9yYXk/ZWQ9MjA0OCIsInRscyI6InRscyIsInNuaSI6ImNkbi5leGFtcGxlLmNvbSIsImFscG4iOiJodHRwLzEuMSIsImZwIjoiY2hyb21lIn0=gRPC 搭配 TLS 與 aes-128-gcm,服務名稱為 vmess-grpc:
vmess://eyJ2IjoiMiIsInBzIjoiZ1JQQyIsImFkZCI6InZtZXNzLmV4YW1wbGUuY29tIiwicG9ydCI6IjQ0MyIsImlkIjoiYjgzMTM4MWQtNjMyNC00ZDUzLWFkNGYtOGNkYTQ4YjMwODExIiwiYWlkIjoiMCIsInNjeSI6ImFlcy0xMjgtZ2NtIiwibmV0IjoiZ3JwYyIsInBhdGgiOiJ2bWVzcy1ncnBjIiwidGxzIjoidGxzIiwic25pIjoidm1lc3MuZXhhbXBsZS5jb20ifQ==單純 TCP 搭配 chacha20-poly1305,使用 Xray 形式:
vmess://b831381d-6324-4d53-ad4f-8cda48b30811@vmess.example.com:8080?type=tcp&encryption=chacha20-poly1305#Plain%20TCPHTTP Upgrade 搭配 TLS,使用 Xray 形式:
vmess://b831381d-6324-4d53-ad4f-8cda48b30811@vmess.example.com:443?type=httpupgrade&security=tls&sni=cdn.example.com&host=cdn.example.com&path=%2Fupgrade&encryption=auto#HTTP%20Upgrade在 Clash 訂閱中
proxies:
- name: VMess WS
type: vmess
server: vmess.example.com
port: 443
uuid: b831381d-6324-4d53-ad4f-8cda48b30811
alterId: 0
cipher: auto
udp: true
tls: true
servername: cdn.example.com
network: ws
ws-opts:
path: /ray
headers:
Host: cdn.example.com
max-early-data: 2048
early-data-header-name: Sec-WebSocket-Protocol