AGG-TUNNEL

Forward TCP ports through a connection of aggregated links.

This uses Aggligator to combine multiple TCP links into one connection,
providing the combined speed and resilience to individual link faults.

Usage: agg-tunnel [OPTIONS] <COMMAND>

Commands:
  client    Tunnel client
  server    Tunnel server
  show-cfg  Shows the default configuration
  help      Print this message or the help of the given subcommand(s)

Options:
      --cfg <CFG>
          Configuration file

  -d, --dump <DUMP>
          Dump analysis data to file

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

AGG-TUNNEL CLIENT

Tunnel client

Usage: agg-tunnel client [OPTIONS] --port <PORT>

Options:
  -4, --ipv4
          Use IPv4

  -6, --ipv6
          Use IPv6

  -n, --no-monitor
          Do not display the link monitor

      --compress [<LEVEL>]
          Compress all links using zstd with the specified level (default 1).

          The level is optional; --compress without a value uses level 1. Must
          be enabled on both ends. Not supported by WebSocket, USB and Bluetooth
          links. Compression only helps if the transferred data is compressible.

  -a, --all-links
          Display all possible (including disconnected) links in the link
          monitor

  -p, --port <PORT>
          Ports to forward from server to client.

          Takes the form `server_port:client_port` and can be specified multiple
          times.

          The port must have been enabled on the server.

  -g, --global
          Forward ports on all local interfaces.

          If unspecified only loopback connections are accepted.

      --once
          Exit after handling one connection

      --tcp <TCP>
          TCP server name or IP addresses and port number

      --tcp-links <TCP_LINKS>
          Number of parallel TCP links per path

          [default: 1]

      --tcp-link-filter <TCP_LINK_FILTER>
          TCP link filter.

          none: no link filtering.

          interface-interface: one link for each pair of local and remote
          interface.

          interface-ip: one link for each pair of local interface and remote IP
          address.

          [default: interface-interface]

      --tcp-congestion <TCP_CONGESTION>
          TCP congestion control algorithm of TCP links, for example bbr.

          Only supported on Linux, Android and FreeBSD and the algorithm must be
          available in the kernel. If unspecified, the system default is used.

      --quic <QUIC>
          QUIC server name or IP addresses and port number.

          Links are encrypted using TLS. The server is only authenticated if
          --quic-ca is specified.

      --quic-ca <QUIC_CA>
          PEM file containing the CA certificates for authenticating the QUIC
          server.

          The server certificate must be valid for the host name of the first
          QUIC target. If unspecified, the server is not authenticated.

      --quic-link-filter <QUIC_LINK_FILTER>
          QUIC link filter.

          none: no link filtering.

          interface-interface: one link for each pair of local and remote
          interface.

          interface-ip: one link for each pair of local interface and remote IP
          address.

          [default: interface-interface]

      --quic-congestion <QUIC_CONGESTION>
          QUIC congestion control algorithm

          Possible values:
          - cubic:    CUBIC
          - bbr:      BBR
          - new-reno: NewReno

          [default: cubic]

      --socks <SOCKS>
          SOCKS5 proxy server names or IP addresses, optionally with port
          numbers.

          One link is established through each proxy by default. The default
          proxy port number is 1080.

      --socks-links <SOCKS_LINKS>
          Number of parallel links per SOCKS5 proxy

          [default: 1]

      --socks-target <SOCKS_TARGET>
          Target server name or IP address reached through the SOCKS5 proxies.

          Defaults to the first TCP target.

      --rfcomm <RFCOMM>
          Bluetooth RFCOMM server address.

          Takes the form `[00:11:22:33:44:55]:7`, with a Bluetooth address and
          channel. Quote the value in your shell to preserve the brackets.

      --usb <USB>
          USB device serial number (equals hostname of speed test device).

          Use - to match any device.

      --usb-interface-name <USB_INTERFACE_NAME>
          USB interface name

          [default: agg-tunnel]

  -h, --help
          Print help (see a summary with '-h')

AGG-TUNNEL SERVER

Tunnel server

Usage: agg-tunnel server [OPTIONS] --port <PORT>

Options:
  -n, --no-monitor
          Do not display the link monitor

      --compress [<LEVEL>]
          Compress all links using zstd with the specified level (default 1).

          The level is optional; --compress without a value uses level 1. Must
          be enabled on both ends. Not supported by WebSocket, USB and Bluetooth
          links. Compression only helps if the transferred data is compressible.

  -p, --port <PORT>
          Ports to forward to clients.

          Takes the form `port` for localhost or `host:target_port:server_port`
          for an explicit target, and can be specified multiple times.

          The final server_port is the identifier requested by the client, not a
          listening port. For example, `db.internal:5432:5432` maps identifier
          5432 to db.internal:5432. Host can be a host name or IP address.

      --tcp <TCP>
          TCP port to listen on

      --tcp-congestion <TCP_CONGESTION>
          TCP congestion control algorithm of TCP links, for example bbr.

          Only supported on Linux, Android and FreeBSD and the algorithm must be
          available in the kernel. If unspecified, the system default is used.

      --quic <QUIC>
          QUIC (UDP) port to listen on

      --quic-cert <QUIC_CERT>
          PEM file containing the certificate chain of the QUIC server.

          If unspecified, a built-in self-signed certificate is used.

      --quic-key <QUIC_KEY>
          PEM file containing the private key of the QUIC server

      --quic-congestion <QUIC_CONGESTION>
          QUIC congestion control algorithm

          Possible values:
          - cubic:    CUBIC
          - bbr:      BBR
          - new-reno: NewReno

          [default: cubic]

      --rfcomm <RFCOMM>
          RFCOMM channel number to listen on

      --usb
          Listen on USB device controller (UDC)

      --usb-interface-name <USB_INTERFACE_NAME>
          USB interface name

          [default: agg-tunnel]

  -h, --help
          Print help (see a summary with '-h')

AGG-TUNNEL SHOW-CFG

Shows the default configuration

Usage: agg-tunnel show-cfg

Options:
  -h, --help  Print help