Protocols and cores
Project V#
Project V is the collective name for the V2Ray family of tools: an open-source set of proxy programs built around the same JSON configuration format. The client handles the interface and process management, while the core does the actual forwarding. Two core branches, V2Fly and Xray, dominate the ecosystem today, and their configuration file structures are largely interchangeable.
Protocols and cores
Xray#
Xray is the most actively developed core branch in the Project V ecosystem, extending the original protocols with features such as VLESS, XTLS and REALITY. v2rayNG uses the Xray core by default, and v2rayN lets you switch core type in its settings. Its configuration fields are broadly the same as V2Ray's, so most server parameters work with either one.
Protocols and cores
V2Fly#
V2Fly is the core branch kept alive by the community after the original repository was archived, and it stays compatible with the existing V2Ray configuration format. v2flyNG is the Android client built on the V2Fly core, a good fit when the server side runs the same branch. Its release cadence is steady rather than fast, and most of its configuration fields overlap with Xray's.
Protocols and cores
VMess#
VMess is the proxy protocol Project V developed in its early days; the client and server identify each other with a UUID and alterId. The protocol derives a connection check value from the current time, so a large clock difference between the two ends can produce a server that passes latency tests but refuses to connect. Newer cores have reduced alterId to a minor role, so leaving it at the default or setting it to 0 is enough.
Protocols and cores
VLESS#
VLESS is the lightweight replacement for VMess: it drops the built-in encryption layer and leaves encryption to TLS or REALITY. Identification needs only a UUID, the configuration has fewer fields, and the handshake costs less. Both ends must support it, and cores that are too old will not recognize the protocol at all.
Protocols and cores
Trojan#
Trojan is designed so that proxy traffic looks like ordinary HTTPS at the transport layer, which is why it must run with TLS. The configuration needs a server address, port and password, and the password doubles as the credential. V2Ray family cores support it as an outbound protocol, so Trojan servers can sit in the same subscription as VMess and VLESS ones.
Protocols and cores
REALITY#
REALITY is the transport security scheme introduced by Xray. It borrows the TLS handshake characteristics of a real site instead of a self-signed certificate, so the client needs no certificate files. Its configuration includes publicKey, shortId and serverName fields, all of which must match the server exactly. It only shapes the transport-layer handshake and does not affect which upper-layer protocol you choose.
Protocols and cores
Shadowsocks#
Shadowsocks is an early lightweight proxy protocol that V2Ray family cores support as one of the outbound options. Its configuration fields cover the server address, port, encryption method and password, and the encryption method must match the server exactly. When a subscription contains this protocol, the client list usually shows only the encryption method and no transport options.