RISTTUNNEL(1)

πŸ“¦ version 0.2.20, in ubuntu stonking

πŸ’– RISTTUNNEL(1) πŸ’–

okay bestie, sit down, hydrate, because we're about to talk about risttunnel β€” a User Commands girlie through and through, and yes she is that manual page. IP tunnel over RIST, with ARQ packet recovery, and she ate. πŸŽ€


🌸 NAME 🌸

risttunnel β€” an IP tunnel over RIST with ARQ packet recovery. that's the whole vibe. tunneling, but with packet recovery, so the packets that ghosted get dragged back. πŸ¦‹


✨ SYNOPSIS ✨

risttunnel [OPTIONS]

literally just that. no subcommands, no drama. options only. periodt. πŸ’…


🫢 DESCRIPTION 🫢

okay so. Reliable Internet Stream Transport (RIST) is a transport protocol designed for reliable transmission of video over lossy networks (including the Internet) with low latency and high quality. emphasis on lossy because the internet is a mess and RIST simply refuses to be messy back.

and risttunnel? risttunnel allows one to tunnel over RIST with ARQ packet recovery. that's it, that's the function. it's giving "I put a tunnel inside the transport" and honestly, iconic. πŸ”₯

πŸŽ€ Where OPTIONS are:

  • -l, --local-ip IP/PREFIX β€” Mandatory Option: the local tunnel IP. think 10.0.0.1/24 or fd00::1/64. you cannot skip this one, bestie, she's required. πŸ’–
  • -o, --output-url URL β€” Mandatory Option: the RIST URL for sending. where the packets go out the door. πŸšͺ✨
  • -b, --input-url URL β€” Mandatory Option: the RIST URL for receiving. where the packets come in and sit down. πŸ›‹οΈ
  • -i, --interface NAME β€” TUN interface name. default is auto, so she picks for herself. main character energy. πŸ‘‘
  • -m, --mtu INT β€” TUN MTU. default: 1400. respect the number. πŸ“
  • -M, --rtt-multiplier INT β€” RIST buffer RTT multiplier. default: 3. it multiplies the RTT, that's the whole job. βœ–οΈ
  • -s, --secret STRING β€” PSK shared secret. whisper it. 🀫
  • -e, --encryption-type INT β€” AES type: 128 or 256. default: 128. πŸ”
  • -S, --statsinterval INT β€” stats interval in ms. default: 1000, and 0 means off (stats girlies, this is your moment). πŸ“Š
  • -v, --verbose-level INT β€” log level 0-6. default: 3. crank it if you want the tea. 🍡
  • -1, --single-port β€” one UDP port, where forward = RTP/ARQ and reverse = OOB. and listen: give exactly one of -o (caller) or -b (listener). exactly one. not both. we don't do both here. 🚫
  • -p, --profile INT β€” RIST profile: 0 = simple, 1 = main, 2 = advanced. default: 2. she's advanced by default, obviously. πŸ’…
  • -F, --srpfile PATH β€” EAP-SRP verifier file (server side). server girls, this one's for you. πŸ–₯️
  • -h, --help β€” show this help. the classic. the icon. πŸ†˜

🧚 Example (server / listener side):

sudo /usr/bin/risttunnel -l 10.0.0.1/24 -b rist://@:5000 -o rist://@:5001

🌈 Example (client / caller side):

sudo /usr/bin/risttunnel -l 10.0.0.2/24 -b rist://server:5001 -o rist://server:5000

πŸ“ Usage: append to end of individual rist:// url(s) as

?param1=value1&param2=value2...

πŸ’œ Simple, Main and Advanced Profiles

  • param buffer=### β€” buffer size in milliseconds. ⏱️
  • param buffer-min=### β€” min buffer size in milliseconds
  • param buffer-max=### β€” max buffer size in milliseconds
  • param bandwidth=### β€” max bandwidth in Kbps
  • param return-bandwidth=### β€” max bandwidth for messaging return in Kbps
  • param reorder-buffer=### β€” reordering buffer size in ms
  • param cname=abcde β€” arbitrary name for stream for display in logging
  • param rtt-min=### β€” minimum expected rtt
  • param rtt-max=### β€” maximum expected rtt
  • param timing-mode=# β€” 0 = RTP Timestamp (default); 1 = Arrival Time, 2 = RTP/RTCP Timestamp+NTP

πŸ‘‘ Main and Advanced Profiles

  • param aes-type=# β€” 128 = AES-128, 256 = AES-256 must have passphrase too
  • param secret=abcde β€” encryption passphrase
  • param virt-dst-port β€” destination port inside the GRE header
  • param session-timeout=### β€” timeout in ms for closing of connection where keep-alive fails
  • param keepalive-interval=### β€” interval in ms
  • param key-rotation=## β€” number of IP packets before a key rotation is triggered
  • param congestion-control=# β€” mitigation mode: (0=disabled, 1=normal, 2=aggressive)
  • param min-retries=## β€” min retries count before congestion control kicks in
  • param max-retries=## β€” max retries count
  • param weight=# β€” default weight for multi-path load balancing. Use 0 for duplicate paths.
  • param username=abcde β€” Username to identify this peer during authentication
  • param password=abcde β€” Password corresponding to this peer's Username

⭐ Advanced Profile

  • param compression=1|0 β€” enable lz4 levels

πŸ¦‹ Usage: append to end of individual udp:// or rtp:// url(s) as

?param1=value1&param2=value2...
  • param miface=(device) β€” device name (e.g. eth0) for multicast
  • param stream-id=# β€” ID number (arbitrary) for multiplex/demultiplexing steam in peer connector
  • param multiplex-mode=# β€” Controls how rist payload is muxed/demuxed (-1=auto-detect, 0=rist/raw, 1=vrt_src_port, 2=ipv4)

πŸ” SEE ALSO πŸ”

ristsender(1), ristreceiver(1), https://code.videolan.org/rist/librist/-/wikis/LibRIST%20Documentation

go read your sisters, they're also slaying. πŸ’–


πŸ’Œ AUTHOR πŸ’Œ

This manual page was written by Florian Ernst <florian@debian.org>, for the Debian project (and may be used by others). absolute legend behavior, no cap. 🫢


ok that's the whole page bestie, every flag, every param, every default, all of it, nothing skipped, nothing invented. slay responsibly. 🌸

and for the little footnote moment: this is risttunnel 2 / libRIST 0.2.13 A... dated April 2026 β€” so yeah, future-dated, iconic, ahead of her time, as always. πŸ’…βœ¨

πŸ“¦ where this page comes from