Hysteria2
Hysteria2ServerConfig and Hysteria2ClientConfig
Proto: protos/proto/vx/proxy/hysteria/hysteria.proto
Hysteria2 is built on QUIC. TLS is configured inside the protocol via tlsConfig (TlsConfig), not via TransportConfig.tls.
Hysteria2ServerConfig
ignoreClientBandwidthIgnore bandwidth hints reported by the client
addressesListen / advertised addresses
{
"@type": "type.googleapis.com/vx.proxy.hysteria.Hysteria2ServerConfig",
"users": [{ "secret": "auth-password" }],
"tlsConfig": {
"certificates": [{ "certificateFilepath": "/path/cert.pem", "keyFilepath": "/path/key.pem" }]
}
}Hysteria2ClientConfig
authAuthentication password; must match a server users[].secret
fastOpenEnable QUIC 0-RTT fast open
{
"@type": "type.googleapis.com/vx.proxy.hysteria.Hysteria2ClientConfig",
"auth": "auth-password",
"tlsConfig": { "serverName": "example.com" }
}QuicConfig
Window fields come in two groups: MB fields (initialStreamReceiveWindow, etc., uint32, internally × 1 MiB) and bytes fields (initialStreamReceiveWindowBytes, etc., uint64). MB fields take precedence when non-zero; when both are zero, the bytes fields or platform defaults are used.
initialStreamReceiveWindowInitial stream receive window (MiB)
maxStreamReceiveWindowMaximum stream receive window (MiB)
initialConnectionReceiveWindowInitial connection receive window (MiB)
maxConnectionReceiveWindowMaximum connection receive window (MiB)
initialStreamReceiveWindowBytesInitial stream receive window (bytes)
maxStreamReceiveWindowBytesMaximum stream receive window (bytes)
initialConnectionReceiveWindowBytesInitial connection receive window (bytes)
maxConnectionReceiveWindowBytesMaximum connection receive window (bytes)
maxIdleTimeoutIdle timeout (seconds, default 30)
keepAlivePeriodKeep-alive period (seconds, default 10)
disablePathMtuDiscoveryDisable QUIC path MTU discovery
maxIncomingStreamsMaximum incoming streams (server only)
ObfsConfig
salamander is the only obfuscation type currently supported (oneof).
SalamanderConfig
passwordObfuscation password
BandwidthConfig
maxTx / maxRx are in Mbps (internally converted to bytes per second).
maxTxUpload bandwidth limit. On the client, this is upload; on the server, the maximum allowed upload
maxRxDownload bandwidth limit. On the client, this is download; on the server, the maximum allowed download