Configuration
vx-core server configuration reference (ServerConfig)
vx-core reads a single server configuration file. The root message is ServerConfig in protos/proto/vx/server.proto.
Configuration format
The configuration is a protobuf message that can be serialized as:
- Binary protobuf — Compact; used in some internal paths
- ProtoJSON — Human-readable JSON; suitable for manual editing
Typed settings for protocols and transports use google.protobuf.Any. In JSON, set @type to the message type URL:
{
"@type": "type.googleapis.com/vx.proxy.trojan.TrojanServerConfig",
"users": [{ "secret": "your-password" }]
}JSON field names use camelCase (e.g. matchAll, outboundTag, multiInbounds).
ServerConfig overview
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
Inbounds
ProxyInboundConfig and MultiProxyInboundConfig
Outbounds
OutboundHandlerConfig and protocol Any
Router
RuleConfig, conditions, selectors, fallbacks
DNS
Servers, resolvers, hijacking, Fake DNS
Geo
Domain/IP/app sets used by rules
Policy
Timeouts and buffer sizes
Log
LoggerConfig
Users
UserConfig
Dispatcher
Sniffing and session stats
Dialer factory
Dial timeouts and interface binding
Proxy protocols
VMess, VLESS, Trojan, Shadowsocks, etc.
Transport
TCP, WebSocket, gRPC, KCP, xhttp, socket
Security
TLS and REALITY
CLI
vx run --config config.json`--config`Path to the configuration file
When installed via the install script, the default path is /usr/local/etc/vx/config.json.
Proto source files
RootInboundsOutboundsRouterDNSGeoPolicyLogUsersDispatcherDialer factoryProxy protocolsprotos/proto/vx/proxy/*/ — Documentation
Transportprotos/proto/vx/transport/ — Documentation
Security (TLS/REALITY)protos/proto/vx/transport/security/ — Documentation