Skip to content

VMess

Potatso 支援的 VMess 加密方式、傳輸、連結與功能。

Updated 以 Markdown 檢視

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:// 連結用一行就包含整台伺服器。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%20TCP

HTTP 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
導覽

Type to search…

↑↓ navigate↵ selectEsc close