基于Web的Linux远程维护、调试工具 - rtty
具体信息前前往github:https://github.com/zhaojh329/rtty根据您的终端的macaddr,通过Web访问您的处在NAT或防火墙里面的终端。它由客户端和服务端组成。服务端采用GO语言实现, 以及使用了vue+iview。你可以基于你设置的设备ID(不设置则为设备的MAC地址)通过Web浏览器访问你的任意一台终端。rtty非常适合远程维护你的或者你公司的部...
具体信息前前往github:https://github.com/zhaojh329/rtty
根据您的终端的macaddr,通过Web访问您的处在NAT或防火墙里面的终端。
它由客户端和服务端组成。服务端采用GO语言实现, 以及使用了vue+iview。你可以基于你设置的设备ID(不设置则为设备的MAC地址)通过Web浏览器访问你的任意一台终端。
rtty非常适合远程维护你的或者你公司的部署在全球各地的成千上万的Linux设备。
特性
- 部署简单,使用方便
- 反向代理
- 根据你设置的ID连接你的设备
- 基于Xterm.js的全功能终端
- 支持SSL: openssl, mbedtls, CyaSSl(wolfssl)
- 支持上传文件到设备
- 支持从设备下载文件
- 支持远程执行命令
- 跨平台: Linux, OpenWrt/LEDE
客户端依赖
- libev - 高性能的事件循环库
- libuwsc - 一个轻量的针对嵌入式Linux的基于libev的WebSocket客户端C库。
- protobuf-c: - Protocol Buffers的C语言实现
- mbedtls(polarssl) - 如果你选择mbedtls作为你的SSL后端
- CyaSSl(wolfssl) - 如果你选择wolfssl作为你的SSL后端
- openssl - 如果你选择openssl作为你的SSL后端
部署服务端
如何编译和安装 rtty客户端
针对Linux发行版, 例如Ubuntu和Centos
编译和安装RTTY
wget -qO- https://raw.githubusercontent.com/zhaojh329/rtty/master/tools/install.sh | sudo bash
运行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
[{"id":"My-device-ID","description":"My device"}]
嵌入式Linux平台
你需要自行交叉编译
如何在OpenWRT中使用
安装
opkg update
opkg list | grep rtty
opkg install rtty-nossl
如果安装失败,你可以自己编译。
配置服务器参数
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
远程执行命令
Shell
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":""}
Jquery
var data = {devid: 'test', username: 'test', password: '123456', cmd: 'ls', params: ['/'], env: []};
$.post('https://your-server:5912/cmd', JSON.stringify(data), function(r) {console.log(r)});
Axios
var data = {devid: 'test', username: 'test', password: '123456', cmd: 'ls', params: ['/'], env: []};
axios.post('https://your-server:5912/cmd', JSON.stringify(data)).then(function (response) {
console.log(response.data);
}).catch(function (error) {
console.log(error);
});
更多推荐
所有评论(0)