udprelay is a program that accepts UDP connections and relays all incoming data to every known peer. By default, it does this transparently, resending packets to every address it's received a packet from in the last ten minutes; however, with the
-protocol option, udprelay will implement a lightweight protocol which checks all incoming packets for commands to implement functionality such as channel switching and keep-alives.
For documentation on the program and protocol, check udprelay(1) and udprelay(7) respectively.
To make udprelay act as a transparent packet relay, just tell it what port to run on:
udprelay will now listen for incoming packets on port 9999 and relay them to any peers it has received packets from within the last ten minutes. To adjust this timeout duration, use the
udprelay -timeout 30m 9999
udprelay can also implement a command protocol as defined in udprelay(7) which adds additional functionality. Enable this with the
udprelay -protocol 9999
A udprelay package for Arch Linux is available in the AUR (udprelay). If you maintain a udprelay package for your distro, feel free to submit a patch to add a link to this README!
Building udprelay from source only requires an installation of Go and its standard library. Run
make udprelay to build the udprelay binary.
To make the man pages, you will need to have scdoc. Simply run
make docs to generate
Feel free to submit patches or ask questions at ~firstname.lastname@example.org