VLESS vs VMess vs Trojan vs Shadowsocks: Which One Should You Use?
If you manage your own server, or you are choosing between configs a provider offers, you will hit this question quickly. Let's compare the four most common proxy protocols that NPV Tunnel handles, without drowning in jargon.
VMess: the veteran
VMess was the original V2Ray protocol. It has its own encryption and protections against replay attacks, so it can run without TLS if needed. That self-sufficiency made it a favourite for years. The cost is a bit of extra processing, and its traffic can look different from ordinary web browsing when it is wrapped in TLS.
VLESS: the lean successor
VLESS strips things back. It identifies you with a UUID and leaves encryption to the outer layer (TLS or REALITY). Less overhead means better speed and less CPU, which is noticeable on phones. Two terms you will see next to it:
- XTLS Vision: a flow mode that removes the "TLS inside TLS" pattern and pads the beginning of the connection so packet lengths do not give the game away.
- REALITY: a security layer that borrows the identity of a real website. A client with the right key completes a genuine-looking TLS 1.3 handshake; anyone else, including probes, sees what looks like a normal visit to that site. A big practical bonus: you do not need your own domain or certificate.
"VLESS + REALITY + Vision" on port 443 is the combination people usually mean when they say VLESS is the modern choice.
Trojan: blend in as HTTPS
Trojan's idea is simple: look exactly like HTTPS to a real website. The server has a real certificate and, when a visitor does not know the password, serves a normal web page. It is easy to set up and has low latency, but it needs a domain and a certificate, and plain TLS fingerprints can be recognised by sophisticated filters.
Shadowsocks: simple and quick
Shadowsocks is a lightweight encrypted proxy. It is fast and everywhere, which is why almost every client supports it. Its weakness is that on strictly filtered networks its traffic looks unusual (it does not impersonate any website), so it is best on ordinary networks.
Side-by-side
| VMess | VLESS | Trojan | Shadowsocks | |
|---|---|---|---|---|
| Built-in encryption | Yes | No (uses TLS/REALITY) | Via TLS | Yes |
| Overhead | Medium | Low | Low | Low |
| Needs domain + cert | Optional | No with REALITY | Yes | No |
| Looks like HTTPS | With TLS/WS | With REALITY/TLS | Yes | No |
| Best for | Compatibility | Modern default | Simple HTTPS camouflage | Plain networks |
What should you pick in NPV Tunnel?
- If a provider gave you the config, use it as given.
- Setting up a new server today: start with VLESS + REALITY.
- Already have a domain and website: Trojan is a tidy option.
- Just need something simple that works on an open network: Shadowsocks or WireGuard.
See the full list in supported protocols.
What a share link looks like
When someone gives you a link, the protocol is the first word, followed by the identity, the server and a list of options:
vless://[email protected]:443?security=reality&flow=xtls-rprx-vision&sni=example.org&pbk=PUBLICKEY#MyServer
vless://: the protocol.UUID@server:443: your identity, the server and the port.security=reality: the security layer.flow=xtls-rprx-vision: the Vision flow mode.sniandpbk: the borrowed site name and the REALITY public key.#MyServer: the label shown in your library.
You can paste such a link with Import config from Clipboard and NPV Tunnel does the rest.
Performance in everyday terms
Differences are usually small compared with the quality of the server and the route to it. A well-placed server on a good network with the "slower" protocol beats a poor server with the "fastest" one. Protocol choice matters most when a network actively interferes with traffic. In a small router benchmark found during our research, WireGuard had the best throughput and lowest CPU use while Trojan had the lowest latency, with VMess and VLESS in the middle, but that was one device and one firmware, so treat it as a hint, not a rule.
Setting up your own server
Most people use a panel such as 3x-ui or a one-line installer on a small VPS. Whatever you use, set up VLESS with REALITY on port 443, create one UUID per user and keep the server software updated. Then generate a share link or QR code and import it into NPV Tunnel.
Common mistakes
- Copying a link with a line break or trailing space.
- Using a clock that is wrong by minutes.
- Changing the SNI or flow on one side only.
- Putting several users on a single UUID, which makes revoking access impossible.
Frequently asked questions
What is the difference between VLESS and VMess?
VMess has built-in encryption and replay protection. VLESS is lighter and relies on TLS or REALITY for encryption.
Do I need a domain for VLESS?
Not with REALITY. A plain TLS setup needs a domain and certificate.
Is Shadowsocks outdated?
It is still fast and widely supported, but on strictly filtered networks it is easier to detect than newer options.
Which protocol should I pick for a new server?
VLESS with REALITY is the common modern choice. Trojan is good if you already have a domain and website.
Keep reading
NPV Tunnel Supported Protocols Explained in Plain English
Every protocol NPV Tunnel supports explained simply: VLESS, VMess, Trojan, Shadowsocks, SS…
Hysteria2 Explained: Why It Is Fast on Bad Networks
Hysteria2 is a QUIC-based protocol supported by NPV Tunnel. Learn how it works, what Bruta…
How to Set Up an SSH Tunnel in NPV Tunnel, Step by Step
Create an SSH tunnel in NPV Tunnel with your own server or a provider account: details you…