VXVX Docs

Configuration

vx-core server configuration reference (ServerConfig)

vx-core reads a single server config file. The root message is ServerConfig in protos/proto/vx/server.proto.

Config format

Configs are protobuf messages, serialized as either:

  • Binary protobuf — compact; used internally in some paths
  • ProtoJSON — human-readable JSON; use this for hand-edited files

Typed protocol and transport settings use google.protobuf.Any. In JSON, set @type to the message’s type URL:

{
  "@type": "type.googleapis.com/vx.proxy.trojan.TrojanServerConfig",
  "users": [{ "secret": "your-password" }]
}

Field names in JSON use camelCase (for example matchAll, outboundTag, multiInbounds).

ServerConfig overview

FieldTypePurpose
inboundsProxyInboundConfig[]Single-protocol listeners
multiInboundsMultiProxyInboundConfig[]Multi-protocol listeners (TLS/REALITY + transport matrix)
outboundsOutboundHandlerConfig[]Where traffic is sent (direct, proxy, block, …)
routerRouterConfigRules that pick an outbound or selector per connection
dnsDnsConfigDNS servers, resolvers, hijack, static records
geoGeoConfigDomain/IP/app sets used by routing and DNS
policyPolicyConfigTimeouts and per-level buffer limits
logLoggerConfigLog level, file path, redaction
usersUserConfig[]Global users (also attachable per inbound)
dispatcherDispatcherConfigSniffing and destination override
dialerFactoryDialerFactoryConfigOutbound dial timeouts and resolver binding

Minimal server example:

{
  "inbounds": [
    {
      "tag": "trojan",
      "ports": [443],
      "protocol": {
        "@type": "type.googleapis.com/vx.proxy.trojan.TrojanServerConfig"
      }
    }
  ],
  "router": {
    "rules": [{ "matchAll": true, "outboundTag": "direct" }]
  },
  "outbounds": [
    {
      "tag": "direct",
      "protocol": {
        "@type": "type.googleapis.com/vx.proxy.freedom.FreedomConfig"
      }
    }
  ]
}

Sections

CLI

vx run --config config.json
FlagDefaultDescription
--configconfig.jsonPath to the config file

When installed via the install script, the default path is /usr/local/etc/vx/config.json.

Proto sources

AreaProto path
Rootprotos/proto/vx/server.proto
Inboundsprotos/proto/vx/inbound/inbound.proto
Outboundsprotos/proto/vx/outbound/outbound.proto
Routerprotos/proto/vx/router/router.proto
DNSprotos/proto/vx/dns/dns.proto
Geoprotos/proto/vx/geo/geo.proto
Policyprotos/proto/vx/policy.proto
Logprotos/proto/vx/log/logger.proto
Usersprotos/proto/vx/user/user.proto
Dispatcherprotos/proto/vx/dispatcher/dispatcher.proto
Dialer factoryprotos/proto/vx/dialerfactory/dialerfactory.proto
Proxy protocolsprotos/proto/vx/proxy/*/docs
Transportprotos/proto/vx/transport/docs
Security (TLS/REALITY)protos/proto/vx/transport/security/docs

Comments