当前位置: 首页 > 科技观察

rtty:反向代理WebTTY,Linux远程维护调试利器

时间:2023-03-11 21:22:56 科技观察

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-如果你需要支持SSLmbedtls-如果你选择mbedtls作为你的SSL后端CyaSSl(wolfssl)-如果你选择wolfssl作为你的SSL后端openssl-如果你选择openssl作为你的SSL后端部署服务安装curlhttps://raw.githubusercontent.com/zhaojh329/rttys/master/install.sh|sudosh手动运行rttys-cert/etc/rttys/rttys.crt-key/etc/rttys/rttys.key后台运行sudo/etc/init.d/rttysstart如何编译安装rttyclient针对Linux发行版,如Ubuntu和CentOS,安装编译工具:sudoaptinstallgcccmakegit#ForUbuntuyuminstallgcccmakegit#ForCentos编译安装依赖包:sudoaptinstalllibjson-c-dev#ForUbuntusudoaptinstalljson-c-devel#对于Centosgit克隆https://git.openwrt.org/project/libubox.gitcdlibubox&&cmake-DBUILD_LUA=OFF。&&sudomakeinstallgitclonehttps://github.com/zhaojh329/libuwsc.gitcdlibuwsc&&cmake-DUWSC_SSL_SUPPORT=OFF。&&sudomakeinstall编译安装rtty:gitclonehttps://github.com/zhaojh329/rtty.gitcdrtty&&cmake。&&sudomakeinstall运行rtty,将以下参数替换为你自己的:sudortty-I'My-device-ID'-h'your-server'-p5912-a-v-s-d'MyDeviceDescription'查询在线设备列表:curl-khttps://your-server:5912/devs[{"id":"My-device-ID","description":"Mydevice"}]EmbeddedLinuxplatformyouNeed自己交叉编译OpenWRT中如何使用和安装:opkgupdateopkglist|greprttyopkginstallrtty-nossl如果安装失败,可以自己编译。配置服务器参数:uciaddrttyrtty#如果是第一次配置ucisetrtty.@rtty[0].host='yourserverhost'ucisetrtty.@rtty[0].port='yourserverport'可以给您的设备自定义一个ID。如果不指定,rtty将使用指定网络接口的MAC地址作为其ID,MAC地址作为ID的格式为:1A2A3A4A5A6A。ucisetrtty.@rtty[0].id='your-device-id'使用SSL:ucisetrtty.@rtty[0].ssl='1'保存配置并应用:ucicommit/etc/init.d/rttyrestart如何使用使用网络浏览器访问您的服务器: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-khttps://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\nr??oot\nsbin\nsys\ntmp\nusr\nvar\nwww\n","stderr":""}贡献代码如果你想帮助rtty变得更好,请参考到CONTRIBUTING_ZH.md。