rtty (δΈζ) - Access your device from anywhere via the web
This project is officially supported by GL.iNet.
Project website Β· Installation & usage guide
flowchart TB
s["rttys server"]
u1["User (Web Browser)"] --> s
u2["User (Web Browser)"] --> s
u3["User (Web Browser)"] --> s
s --> c1["rtty (Linux Device)"]
s --> c2["rtty (Linux Device)"]
s --> c3["rtty (Linux Device)"]
rtty is a remote access solution composed of device clients and the rttys server. This repository contains the C client; rttys provides the web interface and relays connections to devices. Open a terminal, transfer files, and access device services through a central server.
Client Implementations:
- C Client: Ultra-lightweight, designed for embedded Linux and resource-constrained devices.
- Go Client: Easy cross-platform compilation, suitable for rapid integration and deployment.
The server is implemented in Go, with a modern frontend built using Vue.
Both browsers and device clients must be able to reach the server. Clients initiate connections to it, so devices behind NAT do not need public IP addresses or inbound port forwarding. Access devices through your browser and identify them by device ID and group.
Use rtty to maintain OpenWrt routers, troubleshoot embedded Linux gateways, or manage distributed Linux devices remotely.
Go client repository: https://github.com/zhaojh329/rtty-go
-
C Client:
- Ultra-lightweight, designed for embedded Linux and resource-constrained devices
- Multiple SSL backends (OpenSSL, mbedtls, CyaSSl/wolfssl)
- mTLS support for mutual authentication
-
Go Client:
- Easy cross-platform compilation, suitable for rapid integration and deployment
- Dependencies managed by the Go toolchain for straightforward builds and deployment
- Connects to the same rttys server as the C client
- TLS encryption for connections between device clients and rttys
- Optional mutual TLS (mTLS) for certificate-based client authentication
- Batch command execution across multiple devices
- Device identification and organization using IDs and groups
- HTTP proxy support for accessing device web interfaces
- TCP port forwarding for accessing TCP services through connected devices
- Upload and download files through the web interface
- Full-featured terminal powered by Xterm.js
- Browser-based access from anywhere
- Virtual keyboard support for touch devices
- Window splitting for multi-session and multitasking
- Serial terminal forwarding support
- Simple deployment: configure the server and connect your devices to get started
- Manage devices, access terminals, and transfer files through the web interface
- Clients for Linux and OpenWrt environments
Trusted by leading technology companies:
- GL.iNet
- Yunlianxin Technology
- One IOT World
- bitswrt Communication Technology
- Guangzhou Lingpai Technology
- ...and many more
- Required:
- Optional (for SSL support):
- mbedtls(polarssl) - Lightweight SSL/TLS library
- CyaSSl(wolfssl) - Embedded SSL/TLS library
- openssl - Full-featured SSL/TLS toolkit
- Go module dependencies are managed by the Go toolchain.
Help us make rtty even better!
See the CONTRIBUTING.md file for detailed guidelines on how to contribute to this project.


