VXVX Docs

SOCKS

SocksServerConfig and SocksClientConfig

SOCKS proxy configuration. Proto: protos/proto/vx/proxy/socks/socks.proto

The server inbound supports SOCKS5 (TCP connections and UDP associate), and is compatible with SOCKS4/4a TCP when authType is NO_AUTH. The client outbound uses the SOCKS5 handshake.

AuthType

NO_AUTH
0
PASSWORD
1

Use enum names in JSON (for example "authType": "PASSWORD").

  • NO_AUTH: no username/password required; SOCKS4/4a clients are allowed
  • PASSWORD: SOCKS5 username/password authentication required; SOCKS4 requests are rejected

SocksServerConfig

authType

Authentication mode

accounts

Allowed users when PASSWORD is set. id is the username, secret is the password.

address
string

BND.ADDR used in SOCKS replies. Mainly affects the bind address in UDP ASSOCIATE replies: if set, this IP is used; otherwise loopback for local clients, or the inbound listen address for external clients.

udpEnabled
bool

When true, allow SOCKS5 UDP ASSOCIATE commands and enable inbound UDP relay. When false, UDP commands return not supported.

{
  "@type": "type.googleapis.com/vx.proxy.socks.SocksServerConfig",
  "authType": "PASSWORD",
  "udpEnabled": true,
  "address": "203.0.113.1",
  "accounts": [{ "id": "u1", "secret": "pass" }]
}

SocksClientConfig

name
string

SOCKS5 username. When both name and password are empty, password authentication is not sent (corresponds to server NO_AUTH).

password
string

SOCKS5 password, corresponding to server accounts[].secret.

delayAuthWrite
bool

false (default): send authentication in the initial handshake message.

true: send supported authentication methods first, then write the username/password after the server selects PASSWORD. Used for upstream SOCKS servers that require a step-by-step handshake.

{
  "@type": "type.googleapis.com/vx.proxy.socks.SocksClientConfig",
  "name": "u1",
  "password": "pass"
}
  • UsersUserConfig
  • Transport — often used with TCP inbounds/outbounds

Comments