rtty:反向代理 WebTTY ,Linux 远程维护调试工具
2018-03-25 00:00
1171 查看
rtty 非常适合远程维护你的或者你公司的部署在全球各地的成千上万的 Linux 设备。-- 赵建辉
有用的原文链接请访问文末的“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。
致谢转载自 | https://github.com/zhaojh329/rtty
作者 | 赵建辉rtty 是一个反向代理 WebTTY。它由客户端和服务端[1]组成。服务端采用 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 系统中。(参考[2])[2]◈ libuwsc - 一个轻量的针对嵌入式 Linux 的基于 libubox 的 WebSocket 客户端 C 库。◈ ustream-ssl - 如果你需要支持 SSL◈ mbedtls - 如果你选择 mbedtls 作为你的 SSL 后端◈ CyaSSl(wolfssl) - 如果你选择 wolfssl 作为你的 SSL 后端◈ openssl - 如果你选择 openssl 作为你的 SSL 后端部署服务端安装
curl https://raw.githubusercontent.com/zhaojh329/rttys/master/install.sh | sudo sh
手动运行
rttys -cert /etc/rttys/rttys.crt -key /etc/rttys/rttys.key
后台运行
sudo /etc/init.d/rttys start
如何编译和安装 rtty 客户端针对 Linux 发行版,例如 Ubuntu 和 CentOS安装编译工具:
sudo apt install gcc cmake git # For Ubuntu
yum install gcc cmake git # For Centos
编译和安装依赖软件包:
sudo apt install libjson-c-dev # For Ubuntu
sudo apt install json-c-devel # For Centos
git clone https://git.openwrt.org/project/libubox.git[/code]cd libubox && cmake -DBUILD_LUA=OFF . && sudo make installgit clone https://github.com/zhaojh329/libuwsc.git[/code]cd libuwsc && cmake -DUWSC_SSL_SUPPORT=OFF . && sudo make install
编译和安装 rtty:git clone https://github.com/zhaojh329/rtty.git[/code]cd rtty && cmake . && sudo make install
运行rtty,将下面的参数替换为你自己的参数:sudo rtty -I 'My-device-ID' -h 'your-server' -p 5912 -a -v -s -d 'My Device Description'
查询在线设备列表:
curl -k https://your-server:5912/devs[/code][{"id":"My-device-ID","description":"My device"}]
嵌入式Linux平台你需要自行交叉编译。如何在 OpenWRT 中使用安装:
opkg update
opkg list | grep rtty
opkg install rtty-nossl
如果安装失败,你可以自己编译[3]。配置服务器参数:
uci add rtty rtty # If it's the first configuration
uci set rtty.@rtty[0].host='your server host'
uci set rtty.@rtty[0].port='your server port'
你可以给你的设备自定义一个 ID。如果未指定,rtty 将使用指定的网络接口的 MAC 地址作为其 ID, 以 MAC 地址作为 ID 的格式为:
1A2A3A4A5A6A。
uci set rtty.@rtty[0].id='your-device-id'
使用 SSL:
uci set rtty.@rtty[0].ssl='1'
保存配置并应用:
uci commit
/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。
远程执行命令
curl -k https://your-server:5912/cmd -d '{"devid":"test","username":"test","password":"123456","cmd":"ls","params":["/"],"env":[]}'
{"Err":0,"msg":"","code":0,"stdout":"bin\ndev\netc\nlib\nmnt\noverlay\nproc\nrom\nroot\nsbin\nsys\ntmp\nusr\nvar\nwww\n","stderr":""}
贡献代码如果你想帮助 rtty [4]变得更好,请参考 CONTRIBUTING_ZH.md[5]。
相关文章推荐
- rtty:反向代理 WebTTY ,Linux 远程维护调试工具
- 使用Xshell工具远程Linux环境部署web项目
- 利用 Chrome 开发者工具远程调试 Android 中的原生 WebView
- 使用Xshell工具远程Linux环境部署web项目
- 使用Xshell工具远程Linux环境部署web项目
- 跨平台web调试代理工具---whistle
- 在Linux系统中安装web端的远程连接工具Wetty
- Windows eclipse远程调试Linux上的Java Web程序
- 本地远程调试Linux 部署的web 项目
- CentOS 6下,远程安装KVM虚拟机,并使用apache mod_proxy反向代理建立多个web服务器
- 利用 Chrome 开发者工具远程调试 Android 中的原生 WebView
- 利用 Chrome 开发者工具远程调试 Android 中的原生 WebView
- 简单好用、功能强大、可扩展的跨平台web调试代理工具--whistle
- 跨平台web调试代理工具---whistle
- 推荐:Web调试代理工具 Fiddler
- 善用 Web 调试代理工具
- web前端开发远程调试工具Weinre
- 利用 Chrome 开发者工具远程调试 Android 中的原生 WebView
- 使用XILINX SDK工具通过网络进行基于linux系统的远程调试方法
- 远程调试web项目(tomcat)