Run a config
Load and validate JSON, then start every inbound.
tcptun --config config.jsonLoad and validate JSON, then start every inbound.
tcptun --config config.jsonValidate and compile without listening on ports.
tcptun config check --config config.jsonGenerate matching server / client configs with credentials and REALITY keys.
tcptun config native --server proxy.example.com --port 9443 --server-name example.com --dest example.com:443Build a client config from a native URI.
tcptun uri import --input client.uri --client --output client.jsonGenerate native Reality with carrier.mode=quic (no TCP fallback).
tcptun config native --quic --server proxy.example.com --port 9443After generating a native REALITY pair with carrier.mode=auto, set mux.resume=true on both ends (v0.3.0+).
# on both server inbound and client outbound mux blocks
"mux": {
"enabled": true,
"resume": true,
"resume_timeout": "15s",
"resume_buffer_size": 4194304
}