A fast reverse proxy that exposes local servers behind NAT or firewalls to the internet over TCP, UDP, HTTP and HTTPS.
zhaojh329/rtty
Remote access to Linux devices through a web browser, with a terminal, file transfer and device web UI proxying via a central server.
Open-source alternative to:TeamViewer
ngrok
- Stars
- 4,046
- Forks
- 551
- Open issues
- 10
- Last commit
- 6 days ago
What is it?
rtty is a remote access tool for Linux devices, made up of a C device client and the rttys server, which provides the web interface and relays connections. Devices initiate outbound connections to the server, so units behind NAT need no public IP address or inbound port forwarding. Users open a browser terminal, transfer files, and reach a device's web interface or TCP services through the server.
The C client is lightweight and aimed at embedded Linux and resource-constrained devices, and it can be built against OpenSSL, mbedtls or wolfssl. A Go client that connects to the same server is also available for easier cross-platform builds. Connections are protected with TLS, with optional mutual TLS for certificate-based client authentication.
The project is positioned for maintaining OpenWrt routers, troubleshooting embedded gateways and managing distributed Linux devices. Devices are identified by ID and group, and batch command execution across multiple devices is supported.
Key features
- 01Browser-based terminal powered by Xterm.js, with virtual keyboard support for touch devices.
- 02File upload and download through the web interface.
- 03HTTP proxy for reaching a device's web interface and TCP port forwarding for TCP services.
- 04TLS encryption with optional mutual TLS client authentication.
- 05Batch command execution across devices grouped by ID and group.
- 06Serial terminal forwarding and window splitting for multiple sessions.
Use cases
- Maintaining OpenWrt routers at remote sites without public IPs.
- Troubleshooting embedded Linux gateways from a browser.
- Managing a fleet of distributed Linux devices behind NAT.
Quick start
- 1
Open the installation and usage guide on the project website
- 2
Deploy the rttys server (the web interface and relay), as described in the rttys repository
Things to know
- Remote access requires you to run your own rttys server, since the central server is a separate project.
- The C client depends on libev and inih, and SSL support needs one of OpenSSL, mbedtls or wolfssl.
Topics
FAQ
- What is rtty?
- Remote access to Linux devices through a web browser, with a terminal, file transfer and device web UI proxying via a central server. rtty is a remote access tool for Linux devices, made up of a C device client and the rttys server, which provides the web interface and relays connections. Devices initiate outbound connections to the server, so units behind NAT need no public IP address or inbound port forwarding. Users open a browser terminal, transfer files, and reach a device's web interface or TCP services through the server.
- Is rtty free to use? What license does it have?
- rtty is open source under the MIT license. Check the license terms before using it in commercial products.
- Is rtty still maintained?
- Actively maintained. The last commit to rtty was on Oct 16, 2026.
- What can I use rtty for?
- Maintaining OpenWrt routers at remote sites without public IPs. Troubleshooting embedded Linux gateways from a browser. Managing a fleet of distributed Linux devices behind NAT.
- How do I install rtty?
- Open the installation and usage guide on the project website Deploy the rttys server (the web interface and relay), as described in the rttys repository
- Where can I get rtty?
- The source code and installation instructions are on GitHub: https://github.com/zhaojh329/rtty
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Peer-to-peer, end-to-end encrypted private network that reaches your own LAN machines and services from anywhere, with no port forwarding or public URLs.
An open source RDP server that gives Linux machines a graphical remote login compatible with standard Microsoft RDP clients.
A netcat-like CLI and Go library that connects two machines over Tailscale's WireGuard data plane without needing a Tailscale account or control plane.
A scriptable, single-binary MITM proxy in Rust for inspecting, intercepting, replaying and rewriting HTTP, HTTPS and WebSocket traffic from a TUI, web GUI or CLI.
A DeepSeek Harness plugin that lets you view and control the dsh web interface on your phone via QR code over LAN or a public Cloudflare tunnel.