Skip to content

Choosing a protocol

Short answer: start with a VLESS REALITY node as your main line; add Hysteria2 if evenings or mobile networks are lossy; add TUIC or AnyTLS as a spare. PSM runs them side by side, and you switch between them in the client.

Comparison

ProtocolTransportDomain and certificateStrengthsWatch out forCores in PSM
VLESS REALITYTCPnot neededBorrows a real website's TLS handshake, so active probes see that website; works with just an IPPick the camouflage target carefully; never one behind a CDNXray, sing-box, mihomo
VLESS VisionTCP + TLSneededA real certificate, with a camouflage websiteNeeds your own domainXray
VLESS XHTTPTCP (HTTP)depends on modeCan go through a CDN; has a REALITY modeMany optionsXray
Hysteria2UDP (QUIC)needed (self-signed works)Much faster on lossy links; optional port hoppingSome ISPs throttle or block UDPXray, sing-box, mihomo
TUIC v5UDP (QUIC)needed (self-signed works)Low latency, multiplexedDepends on UDP quality toosing-box, mihomo
AnyTLSTCP + TLSneeded (self-signed works)Designed against the TLS-in-TLS traffic patternFewer clients support itsing-box, mihomo
Shadowsocks 2022TCP / UDPnot neededSimple, fast, lightNo camouflage layer; better for relays or relaxed networksXray, sing-box, mihomo
Trojan / VMessTCP + TLSneeded (self-signed works)Widest client supportLess censorship-resistant than REALITYXray, sing-box, mihomo
SnellTCPnot neededNative in SurgeSurge users onlysing-box, mihomo
WireGuardUDPnot neededWhole-device VPNEasy to fingerprint; not for getting past censorshipsing-box

By situation

Only an IP, no domain — VLESS REALITY. It needs no certificate: clients connect to your IP, while the TLS handshake borrows a real website.

Congested evenings or lossy mobile networks — add Hysteria2. It runs over UDP with its own congestion control and is usually much faster than TCP protocols when packets get lost. If your ISP throttles one UDP port, turn on port hopping so the client rotates through a port range.

Several lines that back each other up — REALITY (TCP) plus Hysteria2 or TUIC (UDP): when one is disrupted, the other still works.

Only one open port, 443 — REALITY, Vision, XHTTP and AnyTLS can all share port 443. Hysteria2 and TUIC use UDP 443, which does not collide with TCP 443.

Surge — Snell or VLESS REALITY; Snell is Surge's native protocol.

Picking a REALITY camouflage target

REALITY needs a camouflage target: a real website that speaks TLS 1.3. Guidelines:

  • Never a site behind Cloudflare, Akamai or another CDN. Otherwise anyone can use your server to reach the whole CDN, on your bandwidth. PSM checks for this and warns you.
  • Prefer a site in the same datacenter and network as your VPS; PSM's Xray can find candidates for you through network search engines.
  • Avoid the big-brand domains every tutorial uses.
  • Before creating the node, PSM tests the target with a real handshake through the core; a target that fails is not used.

Adding ECH

TLS nodes on sing-box and mihomo (VLESS, Trojan, AnyTLS, Hysteria2, TUIC) can turn on ECH (Encrypted Client Hello), which also hides the domain in the handshake. Clients without ECH support can still connect.

Next: Quick start.

Released under the AGPL-3.0 license · For lawful use only; follow the laws where you live