Proxy protocols
Protocol configs used in inbound protocol and outbound protocol Any fields
Proxy protocol settings are embedded in inbound protocol / protocols and outbound protocol as google.protobuf.Any.
In ProtoJSON, set @type to:
type.googleapis.com/<protobuf full name>Protobuf package names use dots (for example vx.proxy.vmess.VmessServerConfig).
Server vs client messages
| Protocol | Server (*ServerConfig) | Client (*ClientConfig) |
|---|---|---|
| VMess | vx.proxy.vmess.VmessServerConfig | vx.proxy.vmess.VmessClientConfig |
| VLESS | vx.proxy.vless.VlessServerConfig | vx.proxy.vless.VlessClientConfig |
| Trojan | vx.proxy.trojan.TrojanServerConfig | vx.proxy.trojan.TrojanClientConfig |
| Shadowsocks | vx.proxy.shadowsocks.ShadowsocksServerConfig | vx.proxy.shadowsocks.ShadowsocksClientConfig |
| Shadowsocks 2022 | vx.proxy.shadowsocks2022.Shadowsocks2022ServerConfig | vx.proxy.shadowsocks2022.Shadowsocks2022ClientConfig |
| SOCKS | vx.proxy.socks.SocksServerConfig | vx.proxy.socks.SocksClientConfig |
| HTTP proxy | vx.proxy.http.HttpServerConfig | vx.proxy.http.HttpClientConfig |
| Hysteria2 | vx.proxy.hysteria.Hysteria2ServerConfig | vx.proxy.hysteria.Hysteria2ClientConfig |
| AnyTLS | vx.proxy.anytls.AnytlsServerConfig | vx.proxy.anytls.AnytlsClientConfig |
| WireGuard | — | vx.proxy.wireguard.DeviceConfig |
| Freedom | vx.proxy.freedom.FreedomConfig | same |
| Blackhole | vx.proxy.blackhole.BlackholeConfig | same |
| Dokodemo | vx.proxy.dokodemo.DokodemoConfig | same |
Transport and TLS
Most proxy protocols run over raw TCP or UDP. When you need TLS, WebSocket, gRPC, REALITY, etc., set transport on the inbound/outbound to a TransportConfig (or use MultiProxyInboundConfig for per-SNI matrices).
Hysteria2 embeds its own tlsConfig in the protocol message.
Sections
Proto tree: protos/proto/vx/proxy/.