First confirm that this is Hysteria 1.x
type: hysteria corresponds to Hysteria 1.x. It is built on QUIC, but its protocol format is completely incompatible with Hysteria2; the client and server must use the same protocol generation.
A valid Hysteria node requires at least a name, type, server, port, and valid up and down. Whether authentication may be empty depends on the server, but when authentication is enabled you must provide the matching auth-str or auth。
nameRequired- The node name used by policy groups.
type: hysteriaRequired- Explicitly selects a Hysteria 1.x outbound; it is not an alias for Hysteria2.
server / portRequired- The server address and base port. The official configuration still requires port even when ports is used.
up / downRequired- Enter valid, nonzero upload and download rates. A missing value or one parsed as 0 prevents the node from being created.
Authentication and transport mode
Hysteria 1.x accepts authentication as either a plain string or a Base64 field. The transport mode controls how QUIC packets are sent on the wire and must match the server's capabilities.
auth-strAuthentication- Enter the server authentication string directly. This is the most common format and the easiest to verify.
authAuthentication- Enter the Base64-encoded authentication bytes. When both this and auth-str are present, the current implementation gives auth priority.
protocolDefault: udp- Options are udp, wechat-video, and faketcp. If omitted, udp is used.
obfsOptional- Enter the Hysteria 1.x XPlus obfuscation string, not Hysteria2's salamander or gecko type.
obfs-protocolCompatibility field- Supports compatibility with some Stash configurations. When present, it overrides protocol. Standard configurations should use protocol.
Bandwidth and congestion control
up and down provides the rate input for Hysteria 1.x Brutal congestion control. Without a unit, the value is interpreted as Mbps; explicitly use a format such as 30 Mbps .
These values are neither the advertised bandwidth of your service plan nor settings where higher is always faster. Values above the current link's achievable rate cause persistent congestion.
| Field | Direction | Guideline |
|---|---|---|
up | Client upload | Do not exceed the stable upload rate of the current network |
down | Client downloads | Do not exceed the stable download rate of the current network |
| Unit | Both fields | Explicitly use Mbps; a value without a unit is also treated as Mbps |
Port hopping
Hysteria 1.x can switch among multiple UDP ports.ports accepts a single port, a range, or combinations separated by commas or slashes, but the base port still cannot be omitted.
portRequired- Keep one base server port even when ports is also configured.
portsOptional- For example, 1000,2000-3000,4000. The server firewall and forwarding rules must open the same set of UDP ports.
hop-intervalDefault: 10 seconds- Controls the port-switching interval. Hysteria 1.x uses whole seconds.
TLS and QUIC parameters
Hysteria 1.x requires TLS 1.3. Unless the server explicitly requires it, do not copy Hysteria2's h3 ALPN. When alpn is omitted, the current core uses hysteria。
sniTLS- Sets the server name that matches the certificate; when omitted, uses server.
alpnDefault: hysteria- Override only when the server uses a different ALPN. Do not enter h3 merely because the protocol is based on QUIC.
skip-cert-verifyRisk- Skips certificate validation. Use only for testing or self-signed deployments that explicitly require it.
name-cert-verify / fingerprintTLS- Specify the certificate-name validation target and pin the certificate fingerprint, respectively.
recv-window-connAdvanced- Adjusts the receive window for an individual QUIC stream; usually keep the default.
recv-windowAdvanced- Adjusts the receive window for the entire QUIC connection. Increasing it blindly only uses more memory.
disable-mtu-discoveryAdvanced- Disables path MTU discovery. Use only after confirming an MTU issue on the platform or link.
fast-openDefault: false- Reduces connection setup latency but changes when destination reachability is confirmed.
Hysteria and Hysteria2 field comparison
Both protocol generations use UDP and QUIC, but their authentication, obfuscation, and bandwidth semantics differ. Generate a new node when migrating instead of mechanically renaming fields.
| Area | Hysteria 1.x | Hysteria2 |
|---|---|---|
| Authentication | auth-str or auth | password |
| Transport mode | udp、wechat-video、faketcp | QUIC over UDP; does not use protocol |
| Bandwidth | up and down Must be valid | Optional by direction; enables Brutal when provided |
| Obfuscation | obfs String | salamander or gecko plus obfs-password |
| Compatibility | Connects only to Hysteria 1.x servers | Connects only to Hysteria2 servers |
Base example and common misconfigurations
The example below depends on matching authentication, SNI, and bandwidth limits from the server. When alpn is omitted, the Hysteria 1.x default is used.
- Using Hysteria2's
password、obfs-passwordor salamander field by mistake. - Omitting
upordown, or setting either value to 0, prevents the node from being created because the rate is invalid. - Setting ALPN to h3 while the server still uses the Hysteria 1.x default, hysteria.
- Removing port after enabling ports, which violates the current Hysteria configuration requirements.
proxies:
- name: hysteria-v1
type: hysteria
server: server.example.com
port: 443
auth-str: replace-with-server-auth
protocol: udp
up: "30 Mbps"
down: "200 Mbps"
sni: server.example.com
skip-cert-verify: false