Introduction
This document introduces and compares the proxy protocols used by V2Ray, Clash, and Clash Meta. It provides standard configuration examples for different protocols to show their differences and help users set them up correctly.
I. Platform and Protocol Support Comparison
V2Ray, Clash, and Clash Meta support different protocols. V2Ray provides the basic protocol support. Clash focuses on rules and user-friendliness. Clash Meta is an extension of Clash that supports newer, high-performance protocols.
Protocol Support Matrix
| Protocol | V2Ray | Clash | Clash Meta |
|---|---|---|---|
| VMess | ✅ | ✅ | ✅ |
| VLESS | ✅ | ❌ | ✅ |
| Trojan | ✅ | ✅ | ✅ |
| Shadowsocks (SS) | ✅ | ✅ | ✅ |
| ShadowsocksR (SSR) | ❌ | ✅ | ✅ |
| SOCKS / SOCKS5 | ✅ | ✅ | ✅ |
| HTTP(S) | ✅ | ✅ | ✅ |
| Snell | ❌ | ✅ | ✅ |
| MTProto | ✅ | ❌ | ❌ |
| Hysteria / Hysteria2 | ❌ | ❌ | ✅ |
| TUIC | ❌ | ❌ | ✅ |
Core Differences Summary
- V2Ray is a core V2Fly project that supports many protocols and is highly customizable, especially for VMess and VLESS. Its configuration is very flexible because it includes several inbound and outbound protocols.
- Clash is known for its powerful rule system and its use of a single YAML file for configuration. It combines many common protocols, but its original core is no longer updated, meaning it does not support newer protocols like VLESS.
- Clash Meta, now called mihomo, is an active and updated version of the original Clash. It is fully compatible with Clash's features while also adding support for new protocols such as VLESS, Hysteria2, and TUIC, making it the most complete version currently available.
II. Protocol Configuration Examples
Below are standard configuration snippets for each protocol on different platforms. Please note that all placeholders like server.com, your-uuid, your-password, etc., in the examples need to be replaced with your own node information.
1. Shadowsocks (SS)
Features: Classic, lightweight, and efficient.
Clash / Clash Meta (YAML)
- name: "SS-Server"
type: ss
server: server.com
port: 8388
cipher: aes-256-gcm
password: "your-password"
udp: true
V2Ray (JSON)
{
"protocol": "shadowsocks",
"settings": {
"servers": [
{
"address": "server.com",
"port": 8388,
"method": "aes-256-gcm",
"password": "your-password"
}
]
}
}
2. Trojan
Features: Mimics HTTPS traffic, providing good obfuscation.
Clash / Clash Meta (YAML)
- name: "Trojan-Server"
type: trojan
server: server.com
port: 443
password: "your-password"
sni: "your-domain.com"
udp: true
V2Ray (JSON)
{
"protocol": "trojan",
"settings": {
"servers": [
{
"address": "server.com",
"port": 443,
"password": "your-password"
}
]
},
"streamSettings": {
"security": "tls",
"tlsSettings": {
"serverName": "your-domain.com"
}
}
}
3. VMess
Features: V2Ray's core protocol, powerful with many configurable options.
Clash / Clash Meta (YAML)
- name: "VMess-Server"
type: vmess
server: server.com
port: 10086
uuid: "your-uuid"
alterId: 0
cipher: auto
network: "ws"
tls: true
servername: "your-domain.com"
ws-opts:
path: "/your-path"
headers:
Host: your-domain.com
V2Ray (JSON)
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "server.com",
"port": 10086,
"users": [
{ "id": "your-uuid", "alterId": 0, "security": "auto" }
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": { "serverName": "your-domain.com" },
"wsSettings": { "path": "/your-path", "headers": { "Host": "your-domain.com" } }
}
}
4. SOCKS5
Features: A general-purpose network transport protocol that can be used for proxy chaining.
Clash / Clash Meta (YAML)
- name: "SOCKS5-Upstream"
type: socks5
server: proxy.server.com
port: 1080
# username: "user" # optional
# password: "password" # optional
# udp: true # optional
V2Ray (JSON)
{
"protocol": "socks",
"settings": {
"servers": [
{
"address": "proxy.server.com",
"port": 1080,
"users": [
{ "user": "user", "pass": "password" }
]
}
]
}
}
5. HTTP(S)
Features: A general-purpose HTTP proxy that supports TLS encryption.
Clash / Clash Meta (YAML)
- name: "HTTP-Upstream"
type: http
server: proxy.server.com
port: 8080
# username: "user" # optional
# password: "password" # optional
# tls: true # if it is an HTTPS proxy
V2Ray (JSON)
{
"protocol": "http",
"settings": {
"servers": [
{
"address": "proxy.server.com",
"port": 8080,
"users": [
{ "user": "user", "pass": "password" }
]
}
]
}
}
6. VLESS
Features: The lightweight successor to VMess, offering better performance, often used with XTLS.
Clash Meta (YAML)
- name: "VLESS-Server"
type: vless
server: server.com
port: 443
uuid: "your-uuid"
network: "ws"
tls: true
servername: "your-domain.com"
client-fingerprint: "chrome"
ws-opts:
path: "/your-path"
V2Ray (JSON)
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "server.com",
"port": 443,
"users": [
{ "id": "your-uuid", "flow": "xtls-rprx-vision", "encryption": "none" }
]
}
]
},
"streamSettings": {
"security": "xtls",
"xtlsSettings": {
"serverName": "your-domain.com"
}
}
}
7. ShadowsocksR (SSR)
Features: An early fork of SS that added protocol obfuscation features.
Clash / Clash Meta (YAML)
- name: "SSR-Server"
type: ssr
server: server.com
port: 12345
cipher: aes-256-cfb
password: "your-password"
protocol: "auth_aes128_md5"
protocol-param: "1234:abcd"
obfs: "tls1.2_ticket_auth"
obfs-param: "your-domain.com"
8. Snell
Features: A lightweight protocol developed by Surge.
Clash / Clash Meta (YAML)
- name: "Snell-Server"
type: snell
server: server.com
port: 23456
psk: "your-pre-shared-key"
obfs-opts:
mode: tls
host: www.bing.com
9. MTProto
Features: Telegram's proprietary protocol; V2Ray can be used to proxy Telegram traffic.
V2Ray (JSON)
{
"protocol": "mtproto",
"settings": {
"servers": [
{
"address": "proxy.server.com",
"port": 443,
"users": [
{ "secret": "dd000102030405060708090a0b0c0d0e0f" }
]
}
]
}
}
10. Hysteria2
Features: Based on QUIC, performs excellently on unstable networks with strong resistance to packet loss.
Clash Meta (YAML)
- name: "Hysteria2-Server"
type: hysteria2
server: server.com
port: 34567
auth: "your-password"
sni: your-domain.com
11. TUIC
Features: Also based on QUIC, designed to maximize throughput and reduce latency.
Clash Meta (YAML)
- name: "TUIC-Server"
type: tuic
server: server.com
port: 45678
uuid: "your-uuid"
password: "your-password"
sni: your-domain.com
udp-relay-mode: "native"
congestion-controller: "bbr"
