rtty:反向代理WebTTY ,Linux远程维护调试工具

系统 Linux
rtty 是一个反向代理 WebTTY。它由客户端和服务端组成。服务端采用 Go 语言实现, 以及使用了 vue + iview。你可以基于你设置的设备 ID(不设置则为设备的 MAC 地址)通过 Web 浏览器访问你的任意一台终端。

[[223706]]

rtty 是一个反向代理 WebTTY。它由客户端和服务端组成。服务端采用 Go 语言实现, 以及使用了 vue + iview。你可以基于你设置的设备 ID(不设置则为设备的 MAC 地址)通过 Web 浏览器访问你的任意一台终端。

rtty 非常适合远程维护你的或者你公司的部署在全球各地的成千上万的 Linux 设备。

 

特性

  • 部署简单,使用方便
  • 反向代理
  • 根据你设置的 ID 连接你的设备
  • 基于 Xterm.js 的全功能终端
  • 支持 SSL: openssl、mbedtls、 CyaSSl(wolfssl)
  • 支持上传文件到设备
  • 支持从设备下载文件
  • 支持远程执行命令
  • 跨平台: macOS、Linux、FreeBSD/OpenBSD、OpenWrt/LEDE

 

客户端依赖

  • libubox - 用于 OpenWrt 的 C 工具函数库,但也可以用于其他 Linux 系统中。(参考
  • libuwsc - 一个轻量的针对嵌入式 Linux 的基于 libubox 的 WebSocket 客户端 C 库。
  • ustream-ssl - 如果你需要支持 SSL
    • mbedtls - 如果你选择 mbedtls 作为你的 SSL 后端
    • CyaSSl(wolfssl) - 如果你选择 wolfssl 作为你的 SSL 后端
    • openssl - 如果你选择 openssl 作为你的 SSL 后端

 

部署服务端

 

安装

  1. curl https://raw.githubusercontent.com/zhaojh329/rttys/master/install.sh | sudo sh

 

手动运行

  1. rttys -cert /etc/rttys/rttys.crt -key /etc/rttys/rttys.key

 

后台运行

  1. sudo /etc/init.d/rttys start

 

如何编译和安装 rtty 客户端

 

针对 Linux 发行版,例如 Ubuntu 和 CentOS

安装编译工具:

  1. sudo apt install gcc cmake git # For Ubuntu
  2.  
  3. yum install gcc cmake git # For Centos

编译和安装依赖软件包:

  1. sudo apt install libjson-c-dev # For Ubuntu
  2.  
  3. sudo apt install json-c-devel # For Centos
  4.  
  5. git clone https://git.openwrt.org/project/libubox.git
  6. cd libubox && cmake -DBUILD_LUA=OFF . && sudo make install
  7.  
  8. git clone https://github.com/zhaojh329/libuwsc.git
  9. cd libuwsc && cmake -DUWSC_SSL_SUPPORT=OFF . && sudo make install

编译和安装 rtty:

  1. git clone https://github.com/zhaojh329/rtty.git
  2. cd rtty && cmake . && sudo make install

运行 rtty ,将下面的参数替换为你自己的参数:

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

查询在线设备列表:

  1. curl -k https://your-server:5912/devs
  2. [{"id":"My-device-ID","description":"My device"}]

 

嵌入式Linux平台

你需要自行交叉编译。

 

如何在 OpenWRT 中使用

安装:

  1. opkg update
  2. opkg list | grep rtty
  3. opkg install rtty-nossl

如果安装失败,你可以自己编译

配置服务器参数:

  1. uci add rtty rtty # If it's the first configuration
  2. uci set rtty.@rtty[0].host='your server host'
  3. uci set rtty.@rtty[0].port='your server port'

你可以给你的设备自定义一个 ID。如果未指定,rtty 将使用指定的网络接口的 MAC 地址作为其 ID, 以 MAC 地址作为 ID 的格式为:1A2A3A4A5A6A

  1. uci set rtty.@rtty[0].id='your-device-id'

使用 SSL:

  1. uci set rtty.@rtty[0].ssl='1'

保存配置并应用:

  1. uci commit
  2. /etc/init.d/rtty restart

 

如何使用

使用你的 Web 浏览器访问你的服务器: https://your-server-host:5912,然后点击连接按钮。

你可以非常方便的将 rtty 嵌入到你现有的平台: https://your-server-host:5912?id=your-id

自动登录: https://your-server:5912/?id=device-id&username=device-username&password=device-password

 

上传文件和下载文件

使用快捷键打开菜单: Ctrl+Shift+f

 

 

远程执行命令

  1. curl -k https://your-server:5912/cmd -d '{"devid":"test","username":"test","password":"123456","cmd":"ls","params":["/"],"env":[]}'
  2.  
  3. {"Err":0,"msg":"","code":0,"stdout":"bin\ndev\netc\nlib\nmnt\noverlay\nproc\nrom\nroot\nsbin\nsys\ntmp\nusr\nvar\nwww\n","stderr":""}

 

贡献代码

如果你想帮助 rtty 变得更好,请参考 CONTRIBUTING_ZH.md。 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2020-05-21 15:53:59

远程调试工具

2023-11-10 09:20:28

Java工具

2010-06-02 15:45:45

Linux 网络性能

2010-06-02 15:21:29

Linux 网络性能

2010-06-02 15:37:38

Linux 网络性能

2024-02-23 10:00:27

Linux工具

2023-10-25 09:26:23

Linux工具

2022-08-28 10:36:53

调试工具通用

2024-01-24 13:22:40

Python调试工具技巧

2023-03-29 08:18:16

Go调试工具

2011-08-15 17:38:48

iPhone开发调试工具

2022-07-01 07:33:24

nginx反向代理测试

2023-09-08 00:07:41

2018-03-13 11:38:14

2012-02-24 09:25:20

JavaScript

2016-12-02 20:23:51

AndroidADB

2023-12-05 09:14:54

2019-07-15 16:00:06

微软开源TensorWatch

2019-04-30 15:10:42

Python调试工具编程语言

2018-11-27 11:35:32

systemtapMySQL调试工具
点赞
收藏

51CTO技术栈公众号