---
title: "VMess"
description: "Cipher, phương thức truyền tải, liên kết và tính năng VMess mà Potatso hỗ trợ."
---

> 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

Máy chủ VMess được mô tả bằng **UUID**, **cipher** mã hóa lưu lượng và **phương thức truyền tải** mang kết nối, như WebSocket hoặc gRPC, có hoặc không có TLS. Potatso kết nối với máy chủ khi hỗ trợ cipher, phương thức truyền tải và cài đặt TLS của máy chủ đó. Hãy dùng các bảng dưới đây để kiểm tra cài đặt máy chủ của bạn, như nhà cung cấp hiển thị hoặc trong liên kết `vmess://` của nó.

Bạn có thể thêm máy chủ VMess thủ công, bằng [liên kết `vmess://`](#links), hoặc bằng cách nhập:

- đăng ký Clash hoặc Mihomo,
- cấu hình Xray hoặc V2Ray,
- cấu hình Surge.

Potatso chưa nhập máy chủ VMess từ cấu hình sing-box. Hãy dùng liên kết `vmess://` của máy chủ thay thế.

## Cipher {#ciphers}

| Cipher | Hỗ trợ |
| --- | --- |
| `auto` | ✅ Potatso chọn `aes-128-gcm`, mà mọi thiết bị Apple đều chạy bằng phần cứng. |
| `aes-128-gcm` | ✅ |
| `chacha20-poly1305` | ✅ |
| `none` | ✅ |
| `zero` | ❌ |
| `aes-128-cfb` (cũ) | ❌ |

`none` và `zero` gửi lưu lượng của bạn không mã hóa. Chỉ dùng `none` với TLS, lúc đó TLS mã hóa kết nối. Potatso không kết nối với `zero`, cipher này cũng bỏ bảo vệ chống giả mạo: hãy chọn cipher khác trên máy chủ của bạn.

### alterId {#alterid}

Potatso luôn dùng xác thực VMess hiện tại, tương đương `alterId` 0. Máy chủ mà người dùng vẫn còn `alterId` lớn hơn 0 cũng chấp nhận nó, nên bạn có thể để máy chủ như cũ. Potatso không hỗ trợ xác thực cũ mà chỉ `alterId` lớn hơn 0 dùng, vốn đã bị các máy chủ loại bỏ từ năm 2022.

## Phương thức truyền tải {#transports}

| Truyền tải | `net` / `type` của liên kết | Hỗ trợ | Đã kiểm thử với |
| --- | --- | --- | --- |
| Không (TCP thuần) | `tcp`, hoặc không có | ✅ Có hoặc không có TLS | Xray, sing-box, V2Ray |
| WebSocket | `ws` | ✅ Có hoặc không có TLS và early data | Xray, sing-box, V2Ray |
| gRPC | `grpc` | ✅ Có hoặc không có TLS | Xray, sing-box, V2Ray |
| HTTP/2 | `h2` hoặc `http` | ✅ Với TLS | sing-box, V2Ray |
| HTTP Upgrade | `httpupgrade` | ✅ Có hoặc không có TLS | Xray, sing-box |
| TCP với header HTTP | `tcp` với `type=http` | ❌ | |
| XHTTP | `xhttp` | ❌ | |
| mKCP, QUIC | `kcp`, `quic` | ❌ | |

Mọi phương thức truyền tải được hỗ trợ đều hoạt động với UDP. Potatso không nhập máy chủ có phương thức truyền tải mà nó không hỗ trợ.

Early data của WebSocket gửi những byte đầu của kết nối cùng với bắt tay WebSocket, tiết kiệm một vòng khứ hồi. Nó được đặt bằng `?ed=2048` ở cuối đường dẫn của liên kết, hoặc `max-early-data` trong đăng ký Clash.

Xray không còn cung cấp HTTP/2: các máy chủ Xray từng dùng nó nay dùng XHTTP, mà Potatso chưa hỗ trợ.

## TLS {#tls}

| Cài đặt | Khóa Clash | Trường liên kết | Hỗ trợ |
| --- | --- | --- | --- |
| Tên máy chủ (SNI) | `servername` | `sni` | ✅ Nếu không có, Potatso dùng địa chỉ của máy chủ. |
| ALPN | `alpn` | `alpn` | ✅ Nếu không có, Potatso gửi `http/1.1` cho WebSocket và `h2` cho gRPC và HTTP/2. |
| Bỏ qua xác minh chứng chỉ | `skip-cert-verify` | `allowInsecure` | ✅ |
| Dấu vân tay trình duyệt | `client-fingerprint` | `fp` | ✅ `chrome`, `firefox`, `safari`, `ios`, `android`, `edge` và `random`. Các tên khác kết nối bằng bắt tay mặc định. |
| Ghim chứng chỉ | `fingerprint` | `pcs` | ❌ |
| REALITY | `reality-opts` | `security=reality` | ❌ |
| Encrypted Client Hello (ECH) | `ech-opts` | `ech` | ❌ |
| Chứng chỉ CA tùy chỉnh | | | ❌ |

Tắt xác minh chứng chỉ cho phép bất kỳ ai nằm giữa bạn và máy chủ đọc được lưu lượng của bạn. Potatso không kết nối với máy chủ VMess cần REALITY, ECH hoặc ghim chứng chỉ, vì kết nối mà không có chúng sẽ không đem lại sự bảo vệ mà máy chủ yêu cầu. Hãy dùng VLESS hoặc Trojan cho REALITY.

Dấu vân tay trình duyệt làm cho bắt tay TLS của kết nối trông giống của trình duyệt đó. Nó không thay đổi những gì máy chủ phải hỗ trợ.

## UDP {#udp}

UDP tắt theo mặc định với máy chủ VMess. Hãy bật **Chuyển tiếp UDP** trong cài đặt máy chủ, hoặc đặt `udp: true` trong đăng ký Clash.

Potatso gửi mỗi luồng UDP qua kết nối VMess riêng, mà mọi máy chủ VMess đều chấp nhận. Nó không hỗ trợ các mã hóa XUDP và PacketAddr (`packetEncoding` trong liên kết, `packet-encoding` hoặc `xudp` trong đăng ký Clash), vốn mang nhiều luồng UDP trên một kết nối: máy chủ được thiết lập với chúng vẫn hoạt động, và Potatso báo cho bạn khi nhập rằng nó dùng UDP riêng của mình thay thế. Các ứng dụng cần full-cone NAT, như một số trò chơi, có thể không hoạt động với nó.

Khi [ghép kênh](#mux) bật, UDP đi qua kết nối dùng chung thay thế.

## Ghép kênh {#mux}

Potatso có thể chạy nhiều kết nối trên một kết nối VMess, đặt bằng `smux` trong đăng ký Clash:

| Giao thức | `protocol` của `smux` | Máy chủ |
| --- | --- | --- |
| Mux.Cool | `muxcool` | Xray, V2Ray và sing-box, không cần cài đặt phía máy chủ |
| sing-mux | `h2mux`, `smux`, `yamux` | sing-box với ghép kênh được bật |

Cả TCP và UDP đều hoạt động. Mux.Cool đóng cả hai chiều của kết nối cùng lúc, nên ứng dụng ngừng gửi rồi chờ phản hồi nên dùng máy chủ không có ghép kênh.

## Tùy chọn yêu cầu {#request-options}

Máy khách VMess chọn một vài tùy chọn cho mỗi kết nối, và mọi máy chủ đều chấp nhận bất kỳ tùy chọn nào trong số đó. Potatso luôn gửi lưu lượng theo các khối được mã hóa và đánh dấu kết thúc mỗi lần tải lên, và không đặt các tùy chọn còn lại:

| Tùy chọn | Khóa Clash | Potatso |
| --- | --- | --- |
| Chunk stream | | Luôn bật |
| Chunk masking | | Tắt |
| Global padding | `global-padding` | Tắt. Potatso cảnh báo khi bạn nhập máy chủ đặt nó. |
| Authenticated length | `authenticated-length` | Tắt. Potatso cảnh báo khi bạn nhập máy chủ đặt nó. |

Chunk masking và global padding che kích thước của từng khối khỏi bất kỳ ai theo dõi. Không có chúng, lưu lượng của bạn vẫn không thể đọc được, nhưng mẫu của nó dễ nhận ra hơn.

### Tải lên lớn {#large-uploads}

Một kết nối VMess đơn lẻ có thể tải lên khoảng 1 GiB. VMess đánh số các khối đã mã hóa bằng một bộ đếm sẽ cạn sau mức đó, và tiếp tục sẽ làm yếu mã hóa, nên Potatso đóng kết nối thay vì làm vậy. Tải xuống không có giới hạn. Với tải lên lớn hơn 1 GiB trong một kết nối, hãy dùng máy chủ VLESS hoặc Trojan.

## Hỗ trợ tính năng {#features}

| Tính năng | Hỗ trợ |
| --- | --- |
| [Xác thực AEAD](https://www.v2fly.org/en_US/developer/protocols/vmess.html) (`alterId` 0) | ✅ |
| Xác thực MD5 cũ (`alterId` lớn hơn 0) | ❌ Máy chủ có `alterId` lớn hơn 0 chấp nhận xác thực AEAD. |
| Cipher `aes-128-gcm`, `chacha20-poly1305`, `none`, `auto` | ✅ |
| Cipher `zero` và `aes-128-cfb` cũ | ❌ |
| Chunk stream, dấu kết thúc tải lên | ✅ |
| Chunk masking, global padding, authenticated length | ❌ Máy chủ chấp nhận kết nối không có chúng |
| UDP | ✅ Một kết nối cho mỗi luồng |
| Tải lên trên khoảng 1 GiB trong một kết nối | ❌ Xem [Tải lên lớn](#large-uploads) |
| XUDP, PacketAddr | ❌ |
| Mux.Cool | ✅ TCP và UDP |
| sing-mux (h2mux, smux, yamux) | ✅ TCP và UDP |
| Phương thức truyền tải | Xem [Phương thức truyền tải](#transports) |
| TLS | Xem [TLS](#tls) |
| [Liên kết chia sẻ v2rayN](#links) (phiên bản 2) | ✅ |
| [Liên kết chia sẻ Xray](https://github.com/XTLS/Xray-core/discussions/716) | ✅ |
| Liên kết chia sẻ Shadowrocket | Chỉ nhập |

## Liên kết `vmess://` {#links}

Liên kết `vmess://` chứa toàn bộ máy chủ trong một dòng. Potatso nhập ba dạng và chia sẻ hai dạng đầu.

Dạng v2rayN, phổ biến nhất, là một đối tượng JSON mã hóa Base64:

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

| Trường | Mô tả |
| --- | --- |
| `v` | Phiên bản định dạng, `2`. |
| `ps` | Tùy chọn. Tên của máy chủ trong Potatso. |
| `add` | Địa chỉ máy chủ. |
| `port` | Cổng máy chủ. |
| `id` | UUID. |
| `aid` | `alterId`. Xem [alterId](#alterid). |
| `scy` | [Cipher](#ciphers). Nếu không có, là `auto`. |
| `net` | [Phương thức truyền tải](#transports): `tcp`, `ws`, `grpc`, `h2` hoặc `httpupgrade`. |
| `type` | `none`, hoặc `http` cho header HTTP của TCP, mà Potatso không hỗ trợ. |
| `host` | Header `Host` cho WebSocket, HTTP/2 và HTTP Upgrade. |
| `path` | Đường dẫn cho WebSocket, HTTP/2 và HTTP Upgrade, hoặc tên dịch vụ cho gRPC. Đường dẫn WebSocket có thể kết thúc bằng `?ed=2048` cho early data. |
| `tls` | `tls` để dùng TLS, hoặc để trống. |
| `sni`, `alpn`, `fp` | Tên máy chủ [TLS](#tls), danh sách ALPN và dấu vân tay trình duyệt. |

Dạng Xray là một URL, với cipher trong `encryption` và phương thức truyền tải cùng cài đặt TLS dưới dạng tham số truy vấn:

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

| Tham số | Mô tả |
| --- | --- |
| `type` | [Phương thức truyền tải](#transports). |
| `encryption` | [Cipher](#ciphers). Nếu không có, là `auto`. |
| `security` | `tls`, hoặc `none`. |
| `sni`, `alpn`, `fp` | Tên máy chủ [TLS](#tls), danh sách ALPN và dấu vân tay trình duyệt. |
| `host`, `path` | Header `Host` và đường dẫn, như trong dạng v2rayN. |
| `serviceName` | Tên dịch vụ gRPC. |
| `ed` | Early data của WebSocket, tính bằng byte. |

Potatso cũng nhập dạng của Shadowrocket, `vmess://base64(cipher:uuid@host:port)?remarks=…&obfs=websocket&…`.

### Ví dụ {#link-examples}

Mỗi ví dụ cho thấy liên kết để nhập. UUID là `b831381d-6324-4d53-ad4f-8cda48b30811`.

WebSocket với TLS và early data, qua `cdn.example.com`, với dấu vân tay Chrome:

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

gRPC với TLS và `aes-128-gcm`, tên dịch vụ `vmess-grpc`:

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

TCP thuần với `chacha20-poly1305`, ở dạng Xray:

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

HTTP Upgrade với TLS, ở dạng 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
```

### Trong đăng ký 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/vi/protocols/vmess/index.mdx
