---
title: "VMess"
description: "Potatso 支援的 VMess 加密方式、傳輸、連結與功能。"
---

> Documentation Index
> Fetch the complete documentation index at: https://potatso.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# VMess

VMess 伺服器由 **UUID**、加密流量的**加密方式**，以及承載連線的**傳輸**描述，傳輸例如 WebSocket 或 gRPC，可搭配或不搭配 TLS。當 Potatso 支援伺服器的加密方式、傳輸與 TLS 設定時，就能連上該伺服器。請使用下方表格，對照服務商提供或 `vmess://` 連結中顯示的伺服器設定。

你可以手動加入 VMess 伺服器、使用 [`vmess://` 連結](#links)，或透過匯入：

- Clash 或 Mihomo 訂閱，
- Xray 或 V2Ray 設定，
- Surge 設定。

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

## 加密方式 {#ciphers}

| 加密方式 | 支援 |
| --- | --- |
| `auto` | ✅ Potatso 會選用 `aes-128-gcm`，每一台 Apple 裝置都以硬體執行它。 |
| `aes-128-gcm` | ✅ |
| `chacha20-poly1305` | ✅ |
| `none` | ✅ |
| `zero` | ❌ |
| `aes-128-cfb`（舊版） | ❌ |

`none` 和 `zero` 會以未加密的方式傳送你的流量。`none` 請只搭配 TLS 使用，由 TLS 來加密連線。Potatso 不會以 `zero` 連線，它也會移除防止竄改的保護：請在伺服器上改選其他加密方式。

### alterId {#alterid}

Potatso 一律使用目前的 VMess 驗證，等同於 `alterId` 為 0。使用者的 `alterId` 仍大於 0 的伺服器也接受這種驗證，所以你不必更動伺服器。Potatso 不支援只有 `alterId` 大於 0 時才使用的舊式驗證，伺服器自 2022 年起已棄用它。

## 傳輸 {#transports}

| 傳輸 | 連結 `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 {#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 {#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（例如某些遊戲）可能無法在其中運作。

開啟[多工](#mux)後，UDP 會改為透過共用的連線傳送。

## 多工 {#mux}

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，應該使用沒有多工的伺服器。

## 請求選項 {#request-options}

VMess 用戶端會為每個連線選擇一些選項，而每台伺服器都接受其中任何一種。Potatso 一律以加密的區塊傳送流量，並標示每次上傳的結尾，其他選項則不設定：

| 選項 | Clash 鍵 | Potatso |
| --- | --- | --- |
| 區塊串流 | | 一律開啟 |
| 區塊遮罩 | | 關閉 |
| 全域填充 | `global-padding` | 關閉。匯入設定了它的伺服器時，Potatso 會顯示警告。 |
| 已驗證的長度 | `authenticated-length` | 關閉。匯入設定了它的伺服器時，Potatso 會顯示警告。 |

區塊遮罩和全域填充可對旁觀者隱藏每個區塊的大小。沒有它們時，你的流量仍然無法被讀取，但其模式較容易被辨識。

### 大量上傳 {#large-uploads}

單一 VMess 連線可上傳約 1 GiB。VMess 以計數器為加密區塊編號，計數器在那之後就會用盡，繼續下去會削弱加密強度，所以 Potatso 會改為關閉連線。下載沒有限制。如果單一連線的上傳量超過 1 GiB，請使用 VLESS 或 Trojan 伺服器。

## 功能支援 {#features}

| 功能 | 支援 |
| --- | --- |
| [AEAD 驗證](https://www.v2fly.org/en_US/developer/protocols/vmess.html)（`alterId` 為 0） | ✅ |
| 舊式 MD5 驗證（`alterId` 大於 0） | ❌ `alterId` 大於 0 的伺服器接受 AEAD 驗證。 |
| 加密方式 `aes-128-gcm`、`chacha20-poly1305`、`none`、`auto` | ✅ |
| 加密方式 `zero` 與舊版的 `aes-128-cfb` | ❌ |
| 區塊串流、上傳結尾標記 | ✅ |
| 區塊遮罩、全域填充、已驗證的長度 | ❌ 伺服器接受沒有它們的連線 |
| UDP | ✅ 每個流向一條連線 |
| 單一連線上傳超過約 1 GiB | ❌ 請見[大量上傳](#large-uploads) |
| XUDP、PacketAddr | ❌ |
| Mux.Cool | ✅ TCP 和 UDP |
| sing-mux（h2mux、smux、yamux） | ✅ TCP 和 UDP |
| 傳輸 | 請見[傳輸](#transports) |
| TLS | 請見 [TLS](#tls) |
| [v2rayN 分享連結](#links)（版本 2） | ✅ |
| [Xray 分享連結](https://github.com/XTLS/Xray-core/discussions/716) | ✅ |
| Shadowrocket 分享連結 | 僅限匯入 |

## `vmess://` 連結 {#links}

`vmess://` 連結用一行就包含整台伺服器。Potatso 匯入三種形式，並分享前兩種。

v2rayN 形式最為常見，是經過 Base64 編碼的 JSON 物件：

```text
vmess://base64({"v":"2","ps":"name","add":"host","port":"443","id":"uuid",…})
```

| 欄位 | 說明 |
| --- | --- |
| `v` | 格式版本，`2`。 |
| `ps` | 選填。伺服器在 Potatso 中的名稱。 |
| `add` | 伺服器位址。 |
| `port` | 伺服器連接埠。 |
| `id` | UUID。 |
| `aid` | `alterId`。請見 [alterId](#alterid)。 |
| `scy` | [加密方式](#ciphers)。未指定時為 `auto`。 |
| `net` | [傳輸](#transports)：`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](#tls) 伺服器名稱、ALPN 清單與瀏覽器指紋。 |

Xray 形式是 URL，加密方式放在 `encryption`，傳輸與 TLS 設定則是查詢參數：

```text
vmess://uuid@host:port?type=ws&security=tls&sni=…&host=…&path=…&encryption=auto#name
```

| 參數 | 說明 |
| --- | --- |
| `type` | [傳輸](#transports)。 |
| `encryption` | [加密方式](#ciphers)。未指定時為 `auto`。 |
| `security` | `tls` 或 `none`。 |
| `sni`、`alpn`、`fp` | [TLS](#tls) 伺服器名稱、ALPN 清單與瀏覽器指紋。 |
| `host`、`path` | `Host` 標頭與路徑，與 v2rayN 形式相同。 |
| `serviceName` | gRPC 服務名稱。 |
| `ed` | WebSocket early data，單位為位元組。 |

Potatso 也會匯入 Shadowrocket 的形式：`vmess://base64(cipher:uuid@host:port)?remarks=…&obfs=websocket&…`。

### 範例 {#link-examples}

每個範例都顯示要匯入的連結。UUID 是 `b831381d-6324-4d53-ad4f-8cda48b30811`。

透過 `cdn.example.com` 的 WebSocket，搭配 TLS 與 early data，並使用 Chrome 指紋：

```text
vmess://eyJ2IjoiMiIsInBzIjoiV1MgVExTIiwiYWRkIjoidm1lc3MuZXhhbXBsZS5jb20iLCJwb3J0IjoiNDQzIiwiaWQiOiJiODMxMzgxZC02MzI0LTRkNTMtYWQ0Zi04Y2RhNDhiMzA4MTEiLCJhaWQiOiIwIiwic2N5IjoiYXV0byIsIm5ldCI6IndzIiwidHlwZSI6Im5vbmUiLCJob3N0IjoiY2RuLmV4YW1wbGUuY29tIiwicGF0aCI6Ii9yYXk/ZWQ9MjA0OCIsInRscyI6InRscyIsInNuaSI6ImNkbi5leGFtcGxlLmNvbSIsImFscG4iOiJodHRwLzEuMSIsImZwIjoiY2hyb21lIn0=
```

gRPC 搭配 TLS 與 `aes-128-gcm`，服務名稱為 `vmess-grpc`：

```text
vmess://eyJ2IjoiMiIsInBzIjoiZ1JQQyIsImFkZCI6InZtZXNzLmV4YW1wbGUuY29tIiwicG9ydCI6IjQ0MyIsImlkIjoiYjgzMTM4MWQtNjMyNC00ZDUzLWFkNGYtOGNkYTQ4YjMwODExIiwiYWlkIjoiMCIsInNjeSI6ImFlcy0xMjgtZ2NtIiwibmV0IjoiZ3JwYyIsInBhdGgiOiJ2bWVzcy1ncnBjIiwidGxzIjoidGxzIiwic25pIjoidm1lc3MuZXhhbXBsZS5jb20ifQ==
```

單純 TCP 搭配 `chacha20-poly1305`，使用 Xray 形式：

```text
vmess://b831381d-6324-4d53-ad4f-8cda48b30811@vmess.example.com:8080?type=tcp&encryption=chacha20-poly1305#Plain%20TCP
```

HTTP Upgrade 搭配 TLS，使用 Xray 形式：

```text
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 訂閱中 {#clash}

```yaml
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
```

Source: https://potatso.com/docs/zh-hant/protocols/vmess/index.mdx
