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

rtty:反向代理 WebTTY ,Linux 远程维护调试工具rtty 非常适合远程维护你的或者你公司的部署在全球各地的成千上万的 Linux 设备。-- 赵建辉

有用的原文链接请访问文末的“

原文链接

”获得可点击的文内链接、全尺寸原图和相关文章。致谢

转载自 | http://github.com/zhaojh329/rtty



 作者 | 赵建辉

rtty 是一个反向代理 WebTTY。它由客户端和

服务端

[1]

组成。服务端采用 Go 语言实现, 以及使用了 vue + iview。你可以基于你设置的设备 ID(不设置则为设备的 MAC 地址)通过 Web 浏览器访问你的任意一台终端。

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

rtty:反向代理 WebTTY ,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

  • cd

    libubox

    &&

    cmake

    -

    DBUILD_LUA

    =

    OFF

    .

    &&

    sudo

    make

    install

  • git

    clone

    https

    :

    //github.com/zhaojh329/libuwsc.git

  • cd

    libuwsc

    &&

    cmake

    -

    DUWSC_SSL_SUPPORT

    =

    OFF

    .

    &&

    sudo

    make

    install

  • 编译和安装 rtty:

  • git

    clone

    https

    :

    //github.com/zhaojh329/rtty.git

  • 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

  • [{

    "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 浏览器访问你的服务器: http://your-server-host:5912,然后点击连接按钮。

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

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

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

    上传文件和下载文件

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

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

     

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

    远程执行命令

  • 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]