Skip to content

VMess

การเข้ารหัส การส่งผ่าน ลิงก์ และฟีเจอร์ของ VMess ที่ Potatso รองรับ

Updated ดูเป็น Markdown

เซิร์ฟเวอร์ VMess ถูกอธิบายด้วย UUID การเข้ารหัส (cipher) ที่เข้ารหัสทราฟฟิก และ การส่งผ่าน (transport) ที่ใช้นำการเชื่อมต่อ เช่น WebSocket หรือ gRPC ทั้งแบบมีและไม่มี TLS Potatso เชื่อมต่อกับเซิร์ฟเวอร์เมื่อรองรับการเข้ารหัส การส่งผ่าน และการตั้งค่า TLS ของเซิร์ฟเวอร์ ใช้ตารางด้านล่างเพื่อตรวจสอบการตั้งค่าของเซิร์ฟเวอร์ ตามที่ผู้ให้บริการแจ้งหรือในลิงก์ vmess:// ของเซิร์ฟเวอร์

คุณเพิ่มเซิร์ฟเวอร์ VMess ได้ด้วยตนเอง ด้วยลิงก์ vmess:// หรือโดยการนำเข้า:

  • การสมัครรับ Clash หรือ Mihomo
  • การกำหนดค่า Xray หรือ V2Ray
  • การกำหนดค่า Surge

Potatso ยังไม่นำเข้าเซิร์ฟเวอร์ VMess จากการกำหนดค่า sing-box ให้ใช้ลิงก์ vmess:// ของเซิร์ฟเวอร์แทน

การเข้ารหัส (Cipher)

การเข้ารหัส รองรับ
auto ✅ Potatso เลือก aes-128-gcm ซึ่งอุปกรณ์ Apple ทุกเครื่องรันด้วยฮาร์ดแวร์
aes-128-gcm ✅
chacha20-poly1305 ✅
none ✅
zero ❌
aes-128-cfb (รุ่นเก่า) ❌

none และ zero ส่งทราฟฟิกของคุณโดยไม่เข้ารหัส ใช้ none เฉพาะกับ 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
TCP ที่มีส่วนหัว HTTP tcp กับ type=http ❌
XHTTP xhttp ❌
mKCP, QUIC kcp, quic ❌

ทุกการส่งผ่านที่รองรับใช้ได้กับ UDP Potatso ไม่นำเข้าเซิร์ฟเวอร์ที่ใช้การส่งผ่านที่ไม่รองรับ

early data ของ WebSocket ส่งไบต์แรกของการเชื่อมต่อไปพร้อมกับ WebSocket handshake ช่วยประหยัดหนึ่งรอบ ตั้งด้วย ?ed=2048 ที่ท้ายเส้นทางของลิงก์ หรือ max-early-data ในการสมัครรับ Clash

Xray ไม่มี HTTP/2 อีกต่อไป: เซิร์ฟเวอร์ Xray ที่เคยใช้ HTTP/2 ตอนนี้ใช้ XHTTP ซึ่ง Potatso ยังไม่รองรับ

TLS

การตั้งค่า คีย์ของ Clash ฟิลด์ของลิงก์ รองรับ
ชื่อเซิร์ฟเวอร์ (SNI) servername sni ✅ หากไม่ระบุ Potatso ใช้ที่อยู่ของเซิร์ฟเวอร์
ALPN alpn alpn ✅ หากไม่ระบุ Potatso ส่ง http/1.1 สำหรับ WebSocket และ h2 สำหรับ gRPC และ HTTP/2
ข้ามการตรวจสอบใบรับรอง skip-cert-verify allowInsecure ✅
ลายนิ้วมือเบราว์เซอร์ client-fingerprint fp ✅ chrome, firefox, safari, ios, android, edge และ random ชื่ออื่นจะเชื่อมต่อด้วย handshake เริ่มต้น
การปักหมุดใบรับรอง fingerprint pcs ❌
REALITY reality-opts security=reality ❌
Encrypted Client Hello (ECH) ech-opts ech ❌
ใบรับรอง CA ที่กำหนดเอง ❌

การปิดการตรวจสอบใบรับรองทำให้ใครก็ตามที่อยู่ระหว่างคุณกับเซิร์ฟเวอร์อ่านทราฟฟิกของคุณได้ Potatso ไม่เชื่อมต่อกับเซิร์ฟเวอร์ VMess ที่ต้องใช้ REALITY, ECH หรือการปักหมุดใบรับรอง เพราะการเชื่อมต่อโดยไม่มีสิ่งเหล่านั้นจะไม่ให้การป้องกันที่เซิร์ฟเวอร์ต้องการ ใช้ VLESS หรือ Trojan สำหรับ REALITY

ลายนิ้วมือเบราว์เซอร์ทำให้ TLS handshake ของการเชื่อมต่อดูเหมือนของเบราว์เซอร์นั้น ไม่เปลี่ยนสิ่งที่เซิร์ฟเวอร์ต้องรองรับ

UDP

UDP ปิดไว้โดยค่าเริ่มต้นสำหรับเซิร์ฟเวอร์ VMess เปิด UDP Relay ในการตั้งค่าของเซิร์ฟเวอร์ หรือตั้ง udp: true ในการสมัครรับ Clash

Potatso ส่งแต่ละโฟลว์ UDP ผ่านการเชื่อมต่อ VMess ของตัวเอง ซึ่งเซิร์ฟเวอร์ VMess ทุกตัวรับได้ ไม่รองรับการเข้ารหัส XUDP และ PacketAddr (packetEncoding ในลิงก์, packet-encoding หรือ xudp ในการสมัครรับ Clash) ซึ่งนำหลายโฟลว์ UDP ผ่านการเชื่อมต่อเดียว: เซิร์ฟเวอร์ที่ตั้งค่าไว้เช่นนั้นยังใช้งานได้ และ Potatso จะแจ้งตอนนำเข้าว่าใช้ UDP แบบของตัวเองแทน แอปที่ต้องใช้ NAT แบบ full-cone เช่นเกมบางเกม อาจใช้งานไม่ได้

เมื่อเปิดการมัลติเพล็กซ์ UDP จะผ่านการเชื่อมต่อที่ใช้ร่วมกันแทน

การมัลติเพล็กซ์

Potatso รันหลายการเชื่อมต่อผ่านการเชื่อมต่อ VMess เดียวได้ ซึ่งตั้งด้วย smux ในการสมัครรับ Clash:

โปรโตคอล protocol ของ smux เซิร์ฟเวอร์
Mux.Cool muxcool Xray, V2Ray และ sing-box โดยไม่ต้องตั้งค่าฝั่งเซิร์ฟเวอร์
sing-mux h2mux, smux, yamux sing-box ที่เปิดการมัลติเพล็กซ์ไว้

ใช้ได้ทั้ง TCP และ UDP Mux.Cool ปิดทั้งสองทิศทางของการเชื่อมต่อพร้อมกัน ดังนั้นแอปที่หยุดส่งแล้วรอคำตอบควรใช้เซิร์ฟเวอร์ที่ไม่มีการมัลติเพล็กซ์

ตัวเลือกของคำขอ

ไคลเอนต์ VMess เลือกตัวเลือกบางอย่างสำหรับแต่ละการเชื่อมต่อ และเซิร์ฟเวอร์ทุกตัวยอมรับทุกตัวเลือกเหล่านั้น Potatso ส่งทราฟฟิกเป็นชังก์ที่เข้ารหัสเสมอและทำเครื่องหมายจุดสิ้นสุดของการอัปโหลดแต่ละครั้ง และไม่ตั้งตัวเลือกอื่น:

ตัวเลือก คีย์ของ Clash Potatso
Chunk stream เปิดเสมอ
Chunk masking ปิด
Global padding global-padding ปิด Potatso เตือนเมื่อคุณนำเข้าเซิร์ฟเวอร์ที่ตั้งค่านี้
Authenticated length authenticated-length ปิด Potatso เตือนเมื่อคุณนำเข้าเซิร์ฟเวอร์ที่ตั้งค่านี้

Chunk masking และ global padding ซ่อนขนาดของแต่ละชังก์จากผู้ที่คอยสังเกต หากไม่มีสิ่งเหล่านี้ ทราฟฟิกของคุณก็ยังอ่านไม่ได้ แต่จดจำรูปแบบได้ง่ายขึ้น

การอัปโหลดขนาดใหญ่

การเชื่อมต่อ 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 รุ่นเก่า ❌
Chunk stream, ตัวบอกจุดสิ้นสุดการอัปโหลด ✅
Chunk masking, global padding, authenticated length ❌ เซิร์ฟเวอร์ยอมรับการเชื่อมต่อที่ไม่มีสิ่งเหล่านี้
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 ซึ่งพบบ่อยที่สุด เป็นอ็อบเจ็กต์ JSON ที่เข้ารหัสด้วย Base64:

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 ส่วนหัว Host สำหรับ WebSocket, HTTP/2 และ HTTP Upgrade
path เส้นทางสำหรับ WebSocket, HTTP/2 และ HTTP Upgrade หรือชื่อบริการสำหรับ gRPC เส้นทาง WebSocket ลงท้ายด้วย ?ed=2048 เพื่อใช้ early data ได้
tls tls เพื่อใช้ TLS หรือเว้นว่าง
sni, alpn, fp ชื่อเซิร์ฟเวอร์ รายการ ALPN และลายนิ้วมือเบราว์เซอร์ของ TLS

รูปแบบ Xray เป็น URL โดยมีการเข้ารหัสใน encryption และการตั้งค่าการส่งผ่านและ TLS เป็นพารามิเตอร์ของ query:

vmess://uuid@host:port?type=ws&security=tls&sni=…&host=…&path=…&encryption=auto#name
พารามิเตอร์ คำอธิบาย
type การส่งผ่าน
encryption การเข้ารหัส หากไม่ระบุคือ auto
security tls หรือ none
sni, alpn, fp ชื่อเซิร์ฟเวอร์ รายการ ALPN และลายนิ้วมือเบราว์เซอร์ของ TLS
host, path ส่วนหัว Host และเส้นทาง เหมือนในรูปแบบ v2rayN
serviceName ชื่อบริการ gRPC
ed early data ของ WebSocket เป็นไบต์

Potatso ยังนำเข้ารูปแบบของ Shadowrocket คือ vmess://base64(cipher:uuid@host:port)?remarks=…&obfs=websocket&…

แต่ละตัวอย่างแสดงลิงก์ที่จะนำเข้า UUID คือ b831381d-6324-4d53-ad4f-8cda48b30811

WebSocket กับ TLS และ early data ผ่าน cdn.example.com พร้อมลายนิ้วมือ 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