# rtty([中文](/README_ZH.md))
**This project is officially supported by [GL.iNet](https://github.com/gl-inet).**
[1]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=plastic
[2]: /LICENSE
[3]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=plastic
[4]: https://github.com/zhaojh329/rtty/pulls
[5]: https://img.shields.io/badge/Issues-welcome-brightgreen.svg?style=plastic
[6]: https://github.com/zhaojh329/rtty/issues/new
[7]: https://img.shields.io/badge/release-8.1.0-blue.svg?style=plastic
[8]: https://github.com/zhaojh329/rtty/releases
[9]: https://github.com/zhaojh329/rtty/workflows/build/badge.svg
[![license][1]][2]
[![PRs Welcome][3]][4]
[![Issue Welcome][5]][6]
[![Release Version][7]][8]
![Build Status][9]
![visitors](https://visitor-badge.laobi.icu/badge?page_id=zhaojh329.rtty)
[Xterm.js]: https://github.com/xtermjs/xterm.js
[libev]: http://software.schmorp.de/pkg/libev.html
[openssl]: https://github.com/openssl/openssl
[mbedtls(polarssl)]: https://github.com/ARMmbed/mbedtls
[CyaSSl(wolfssl)]: https://github.com/wolfSSL/wolfssl
[vue]: https://github.com/vuejs/vue
[server]: https://github.com/zhaojh329/rttys
![](/doc/diagram.png)
![](/doc/terminal.gif)
![](/doc/file.gif)
![](/doc/web.gif)
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
## Who's using rtty
- [GL.iNet](https://www.gl-inet.com/)
- [Yunlianxin Technology](http://www.iyunlink.com/)
- [One IOT World](https://www.oneiotworld.com/)
- [bitswrt Communication Technology](http://bitswrt.com/)
## Dependencies of the Client side
* [libev] - A full-featured and high-performance event loop
* [mbedtls(polarssl)] or [CyaSSl(wolfssl)] or [openssl] - If you want to support SSL
## [Deploying the server side](https://github.com/zhaojh329/rttys)
## 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](/OPENWRT.md)
### [For Other Embedded Linux Platform](/CROSS_COMPILE.md)
## 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](https://github.com/zhaojh329/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](/COMMAND.md)
## Contributing
If you would like to help making [rtty](https://github.com/zhaojh329/rtty) better,
see the [CONTRIBUTING.md](https://github.com/zhaojh329/rtty/blob/master/CONTRIBUTING.md) file.
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
详细编译过程 1、编译libev 解压 ./configure --prefix=/opt/a40i/libev --host=arm-linux-gnueabihf- CC=arm-linux-gnueabihf-gcc make make install 2、编译rtty 解压rtty cd build cmake ../ -DCMAKE_INSTALL_PREFIX=/opt/a40i/rtty -DCMAKE_TOOLCHAIN_FILE=../arm_linux_setup.cmake make make install
资源推荐
资源详情
资源评论
收起资源包目录
A40I-RTTY-LIBEV-SRC (166个子文件)
libev.so.4.0.0 196KB
ev.3 258KB
libev.so.4 14B
libev.a 473KB
configure.ac 406B
Makefile.am 533B
feature_tests.bin 12KB
CMakeDetermineCompilerABI_CXX.bin 10KB
CMakeDetermineCompilerABI_C.bin 10KB
ev.c 126KB
CMakeCCompilerId.c 18KB
rtty.c 17KB
openssl.c 11KB
file.c 11KB
mbedtls.c 10KB
event.c 10KB
ev_epoll.c 10KB
command.c 9KB
ev_select.c 9KB
buffer.c 8KB
http.c 8KB
main.c 8KB
ev_kqueue.c 7KB
ev_port.c 6KB
filectl.c 6KB
ev_win32.c 5KB
utils.c 5KB
net.c 5KB
ev_poll.c 4KB
example-client.c 4KB
example-server.c 4KB
log.c 3KB
feature_tests.c 688B
Changes 27KB
cmake.check_cache 85B
CMakeCXXCompiler.cmake 5KB
CMakeCCompiler.cmake 3KB
FindWolfSSL.cmake 2KB
cmake_install.cmake 2KB
DependInfo.cmake 2KB
Makefile.cmake 2KB
cmake_install.cmake 2KB
FindMbedTLS.cmake 1KB
FindLibev.cmake 1KB
CMakeDirectoryInformation.cmake 668B
CMakeDirectoryInformation.cmake 668B
cmake_clean.cmake 541B
CMakeSystem.cmake 439B
arm_linux_setup.cmake 221B
compile 7KB
configure 410KB
CMakeCXXCompilerId.cpp 17KB
example.crt 1KB
feature_tests.cxx 10KB
depcomp 23KB
diagram.drawio 1KB
Symbols.ev 1KB
Symbols.event 378B
file.gif 704KB
terminal.gif 463KB
web.gif 400KB
.gitignore 437B
.gitmodules 255B
config.guess 42KB
ev.h 29KB
ev++.h 20KB
buffer.h 11KB
event.h 6KB
ev_vars.h 6KB
list.h 6KB
ev_wrap.h 5KB
config.h 3KB
rtty.h 3KB
file.h 2KB
command.h 2KB
example.h 2KB
http.h 2KB
utils.h 2KB
net.h 2KB
log.h 1KB
config.h 1KB
ssl.h 1KB
Makefile.in 29KB
config.h.in 3KB
config.h.in 1KB
C.includecache 5KB
install-sh 14KB
depend.internal 4KB
example.key 2KB
libev.la 928B
libev.la 11B
libev.lai 929B
libtool 287KB
LICENSE 2KB
LICENSE 1KB
LICENSE 1KB
event.lo 285B
ev.lo 276B
CMakeOutput.log 53KB
config.log 36KB
共 166 条
- 1
- 2
资源评论
lindong0217
- 粉丝: 0
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功