Skip to content

Support bandwidth aggregation across multiple relay nodes #1614

Description

@githubzhangfei

Is your feature request related to a problem? Please describe.

Yes.

A common deployment for Hysteria 2 is:

Client → Relay (middle server) → Exit server

In many cases, the relay server has limited bandwidth. For example, I may have three relay servers, each with only 10 Mbps uplink. A single live stream requires around 25–30 Mbps, so one relay server is not sufficient. Currently, I have to manually split traffic or deploy external bonding software.

It would be useful if Hysteria 2 could support bandwidth aggregation across multiple relay nodes.

Describe the solution you'd like

I'd like Hysteria 2 to provide a pluggable bandwidth aggregation mechanism.

For example:

  • Configure multiple relay servers as a relay group.
  • Hysteria automatically distributes packets across the available relays.
  • The receiver reorders and reconstructs the original stream.
  • If one relay fails, traffic is automatically redistributed to the remaining relays.
  • The aggregated throughput can exceed the bandwidth limit of any individual relay.

Example:

  • Relay A: 10 Mbps
  • Relay B: 10 Mbps
  • Relay C: 10 Mbps

Expected available throughput: approximately 30 Mbps (depending on network conditions), allowing a single 25 Mbps live stream to pass through.

A plugin architecture would also allow the community to experiment with different aggregation algorithms without changing Hysteria's core.

Describe alternatives you've considered

Current alternatives include:

  • Running external bonding software (such as MLVPN or similar solutions).
  • Manually splitting traffic across multiple relay servers.
  • Increasing the bandwidth of a single relay server.

These approaches either increase deployment complexity or are not always available due to provider bandwidth limits.

Additional context

This feature would mainly benefit users running high-bitrate live streaming or other continuous large-bandwidth traffic through relay servers.

The key goal is bandwidth aggregation rather than failover. Existing load balancing or failover mechanisms cannot increase the available bandwidth for a single connection, while an aggregation plugin could potentially do so.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions