All Projects → zhaojh329 → Rtty

zhaojh329 / Rtty

Licence: mit
Access your terminal from anywhere via the web.

Programming Languages

c
50402 projects - #5 most used programming language
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to Rtty

Fasttunnel
NAT 内网穿透 远程内网计算机 域名访问内网站点 反向代理内网服务 花生壳 端口转发 http代理 微信 小程序 expose a local server behind a NAT or firewall to the internet like ngrok and frp. NAT ssh proxy tunnel reverse-proxy
Stars: ✭ 248 (-89.81%)
Mutual labels:  proxy, http-proxy, nat
Frp
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Stars: ✭ 51,746 (+2025.97%)
Mutual labels:  proxy, http-proxy, nat
Rttys
Access your device's terminal from anywhere via the web.
Stars: ✭ 392 (-83.89%)
Mutual labels:  tty, remote-control, webshell
Proxy admin free
Proxy是高性能全功能的http代理、https代理、socks5代理、内网穿透、内网穿透p2p、内网穿透代理、内网穿透反向代理、内网穿透服务器、Websocket代理、TCP代理、UDP代理、DNS代理、DNS加密代理,代理API认证,全能跨平台代理服务器。
Stars: ✭ 487 (-79.99%)
Mutual labels:  proxy, http-proxy, nat
James
Web Debugging Proxy Application
Stars: ✭ 1,299 (-46.63%)
Mutual labels:  proxy, http-proxy
Proxy.py
⚡⚡⚡Fast, Lightweight, Pluggable, TLS interception capable proxy server focused on Network monitoring, controls & Application development, testing, debugging
Stars: ✭ 1,291 (-46.96%)
Mutual labels:  proxy, http-proxy
Sozu
Sōzu HTTP reverse proxy, configurable at runtime, fast and safe, built in Rust. It is awesome! Ping us on gitter to know more
Stars: ✭ 1,341 (-44.91%)
Mutual labels:  proxy, http-proxy
Sidedoor
SSH connection daemon for Debian/Raspbian/Ubuntu/etc
Stars: ✭ 97 (-96.01%)
Mutual labels:  proxy, nat
Smargate
内网穿透,c++实现,无需公网IP,小巧,易用,快速,安全,最好的多链路聚合(p2p+proxy)模式,不做之一...这才是你真正想要的内网穿透工具!
Stars: ✭ 1,378 (-43.39%)
Mutual labels:  proxy, nat
V2ray Core
A platform for building proxies to bypass network restrictions.
Stars: ✭ 38,782 (+1493.34%)
Mutual labels:  proxy, http-proxy
Glider
glider is a forward proxy with multiple protocols support, and also a dns/dhcp server with ipset management features(like dnsmasq).
Stars: ✭ 1,710 (-29.75%)
Mutual labels:  proxy, http-proxy
Tcptunnel
将本地内网服务器映射到公网。
Stars: ✭ 72 (-97.04%)
Mutual labels:  proxy, nat
Mr2
Mr.2 can help you expose local server to external network. Support both TCP/UDP, of course support HTTP. Zero-Configuration.
Stars: ✭ 1,102 (-54.72%)
Mutual labels:  proxy, nat
Nitmproxy
Proxy server based on netty
Stars: ✭ 94 (-96.14%)
Mutual labels:  proxy, http-proxy
Http Proxy Middleware
⚡ The one-liner node.js http-proxy middleware for connect, express and browser-sync
Stars: ✭ 8,730 (+258.67%)
Mutual labels:  proxy, http-proxy
Noginx
High performance HTTP and reverse proxy server based on Node.js. 基于 Node.js 的高性能 HTTP 及反向代理服务器,类似nginx。
Stars: ✭ 53 (-97.82%)
Mutual labels:  proxy, http-proxy
Gus Proxy
"打一枪换一个地方" 一个HTTP代理
Stars: ✭ 113 (-95.36%)
Mutual labels:  proxy, http-proxy
Php Http Proxy
HTTP proxy written in PHP based on workerman.
Stars: ✭ 134 (-94.49%)
Mutual labels:  proxy, http-proxy
Flynet
A powerful TCP/UDP tool, which support socks5 proxy by tcp and udp, http proxy and NAT traversal. This tool can help you bypass gfw easily
Stars: ✭ 124 (-94.91%)
Mutual labels:  proxy, http-proxy
Citadelcore
Cross platform filtering HTTP/S proxy based on .NET Standard 2.0.
Stars: ✭ 28 (-98.85%)
Mutual labels:  proxy, http-proxy

rtty(中文)

license PRs Welcome Issue Welcome Release Version Build Status visitors Support rtty

It is composed of a client and a server. The client is written in pure C. The server is written in go language and the front-end is written in Vue.

You can access your device's terminal from anywhere via the web. Differentiate your different device by device ID.

rtty is very suitable for remote maintenance your or your company's thousands of Linux devices deployed around the world.

Features

  • The client is writen in C language, very small, suitable for embedded Linux
    • No SSL: rtty(32K) + libev(56K)
    • Support SSL: + libmbedtls(88K) + libmbedcrypto(241K) + libmbedx509(48k)
  • Execute command remotely in a batch of devices
  • SSL support: openssl, mbedtls, CyaSSl(wolfssl)
  • mTLS
  • Very convenient to upload and download files
  • Access different devices based on device ID
  • Support HTTP Proxy - Access your device's Web
  • Fully-featured terminal based on Xterm.js
  • Simple to deployment and easy to use

Dependencies of the Client side

Deploying the server side

How to install rtty

For Linux distribution

Install Dependencies

sudo apt install -y libev-dev libssl-dev      # Ubuntu, Debian
sudo pacman -S --noconfirm libev openssl      # ArchLinux
sudo yum install -y libev-devel openssl-devel # Centos

Clone the code of rtty

git clone --recursive https://github.com/zhaojh329/rtty.git

Build

cd rtty && mkdir build && cd build
cmake .. && make install

For Buildroot

Select rtty in menuconfig and compile it

Target packages  --->
    Shell and utilities  --->
        [*] rtty

For OpenWRT

For Other Embedded Linux Platform

Command-line Options

Usage: rtty [option]
    -I, --id=string          Set an ID for the device(Maximum 63 bytes, valid
                             character:letter, number, underline and short line)
    -h, --host=string        Server's host or ipaddr(Default is localhost)
    -p, --port=number        Server port(Default is 5912)
    -d, --description=string Add a description to the device(Maximum 126 bytes)
    -a                       Auto reconnect to the server
    -s                       SSL on
    -C, --cacert             CA certificate to verify peer against
    -x, --insecure           Allow insecure server connections when using SSL
    -c, --cert               Certificate file to use"
    -k, --key                Private key file to use"
    -D                       Run in the background
    -t, --token=string       Authorization token
    -f username              Skip a second login authentication. See man login(1) about the details
    -R                       Receive file
    -S file                  Send file
    -v, --verbose            verbose
    -V, --version            Show version
    --help                   Show usage

How to run rtty

Replace the following parameters with your own parameters

sudo rtty -I 'My-device-ID' -h 'your-server' -p 5912 -a -v -d 'My Device Description'

If your rttys is configured with mTLS enabled (device key and certificate required), add the following parameters(Replace the following with valid paths to your own)

-k /etc/ssl/private/abc.pem -c /etc/ssl/certs/abc.pem

You can generate them e.g. via openssl tool openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:secp521r1 -keyout /tmp/key.pem -out /tmp/cert.pem -days 18262 -nodes -subj "/C=CZ/O=Acme Inc./OU=ACME/CN=ACME-DEV-123"

If your rttys is configured with a token, add the following parameter(Replace the following token with your own)

-t 34762d07637276694b938d23f10d7164

Usage

Use your web browser to access your server: http://your-server-host:5913, then click the connection button

connect devices with no web login required(you need to configure the device white list on the server)

http://your-server-host:5913/connect/devid1

http://your-server-host:5913/connect/devid2

Transfer file

Transfer file from local to remote device

rtty -R

Transfer file from remote device to the local

rtty -S test.txt

Execute command remotely

Contributing

If you would like to help making rtty better, see the CONTRIBUTING.md file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].