VXVX Docs

Proxy Protocols

Protocol configuration in inbound protocol / protocols and outbound protocol Any fields

Proxy protocol settings are embedded in inbound protocol / protocols and outbound protocol, with type 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 and Client Messages

  • VMess — Server: vx.proxy.vmess.VmessServerConfig, Client: vx.proxy.vmess.VmessClientConfig
  • VLESS — Server: vx.proxy.vless.VlessServerConfig, Client: vx.proxy.vless.VlessClientConfig
  • Trojan — Server: vx.proxy.trojan.TrojanServerConfig, Client: vx.proxy.trojan.TrojanClientConfig
  • Shadowsocks — Server: vx.proxy.shadowsocks.ShadowsocksServerConfig, Client: vx.proxy.shadowsocks.ShadowsocksClientConfig
  • Shadowsocks 2022 — Server: vx.proxy.shadowsocks2022.Shadowsocks2022ServerConfig, Client: vx.proxy.shadowsocks2022.Shadowsocks2022ClientConfig
  • SOCKS — Server: vx.proxy.socks.SocksServerConfig, Client: vx.proxy.socks.SocksClientConfig
  • HTTP proxy — Server: vx.proxy.http.HttpServerConfig, Client: vx.proxy.http.HttpClientConfig
  • Hysteria2 — Server: vx.proxy.hysteria.Hysteria2ServerConfig, Client: vx.proxy.hysteria.Hysteria2ClientConfig
  • AnyTLS — Server: vx.proxy.anytls.AnytlsServerConfig, Client: vx.proxy.anytls.AnytlsClientConfig
  • WireGuard — Client: vx.proxy.wireguard.DeviceConfig
  • Freedom — Server: vx.proxy.freedom.FreedomConfig, Client: same as server
  • Blackhole — Server: vx.proxy.blackhole.BlackholeConfig, Client: same as server
  • Dokodemo — Server: vx.proxy.dokodemo.DokodemoConfig, Client: same as server

Transport and TLS

Most proxy protocols run over raw TCP or UDP. When TLS, WebSocket, gRPC, REALITY, etc. are needed, set transport on the inbound/outbound to TransportConfig (or use MultiProxyInboundConfig for per-SNI matrix configuration).

Hysteria2 embeds tlsConfig inside the protocol message.

Sections

Proto tree: protos/proto/vx/proxy/.

Comments