百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

运维神器!一个可以通过Web访问Linux终端的工具

sinye56 2025-02-04 16:02 5 浏览 0 评论

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个通过Web访问设备终端的工具——rtty。

rtty由客户端和服务端组成。客户端采用纯C实现,服务端采用GO语言实现,前端界面采用vue实现。使用rtty可以在任何地方通过Web访问您的设备的终端,通过设备ID来区分您的不同的设备。rtty非常适合远程维护Linux设备。


特性

  • 客户端 C 语言实现,非常小,适合嵌入式 Linux

不支持 SSL:rtty(32K) + libev(56K)

支持的 SSL:+ libmbedtls(88K) + libmbedcrypto(241K) + libmbedx509(48k)

  • 远程批量执行命令
  • 支持SSL:openssl, mbedtls, CyaSSl(wolfssl)
  • SSL 双向认证(mTLS)
  • 非常方便地上传和下载文件
  • 根据设备ID访问不同的设备
  • 支持 HTTP 代理 - 访问您的设备的 Web
  • 基于Xterm.js的全功能终端
  • 部署简单,使用方便


客户端依赖

  • libev - 高性能的事件循环库
  • mbedtls(polarssl)CyaSSl(wolfssl)或者openssl - 如果您需要支持SSL

部署服务端

1 从Release页面下载编译好的二进制文件或者自己编译

git clone https://github.com/zhaojh329/rttys

cd ui
npm install
npm run build
cd ..

./build.sh linux amd64

2 认证

  • Token

生成一个 token:

$ rttys token
Please set a password:******
Your token is: 34762d07637276694b938d23f10d7164

使用 token:

$rttys -t 34762d07637276694b938d23f10d7164
  • SSL 双向认证(mTLS)

您可以在配置文件中指定设备 CA 存储(有效文件)或在 CLI 中指定设备 CA 存储(参数 ssl-cacert) 来启用 mTLS。 存储中没有有效 CA 的设备将在 TLS 握手中断开连接。

3 运行服务

移动rttys可执行程序到/usr/local/bin/

sudo mv rttys /usr/local/bin/

拷贝配置文件到/etc/rttys/

sudo mkdir /etc/rttys
sudo cp rttys.conf /etc/rttys/

创建一个systemd单元文件: /etc/systemd/system/rttys.service

[Unit]
Description=rttys
After=network.target

[Service]
ExecStart=/usr/local/bin/rttys run -c /etc/rttys/rttys.conf
TimeoutStopSec=5s

[Install]
WantedBy=multi-user.target

要首次启动该服务,请执行通常的systemctl操作

sudo systemctl daemon-reload
sudo systemctl enable rttys
sudo systemctl start rttys

可以通过以下方式停止服务

sudo systemctl stop rttys

4 数据库准备(Sqlite、MySql 或者 Mariadb)

在数据库实例上,以root用户身份登录到数据库控制台

mysql -u root -p

创建将由 Rttys 使用的数据库用户,通过密码验证。本例使用 “rttys” 作为密码。请为您的实例使用安全密码

CREATE USER 'rttys' IDENTIFIED BY 'rttys';

使用 UTF-8 字符集和排序规则创建数据库。确保使用 utf8mb4 字符集而不是 utf8,因为前者支持基本多语言平面 之外的所有 Unicode字符(包括emojis)。另外,根据您期望的内容选择排序规则。如有疑问,请使用 unicode_ci 或general_ci

CREATE DATABASE rttys CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';

将数据库上的所有权限授予上面创建的数据库用户

GRANT ALL PRIVILEGES ON rttys.* TO 'rttys';
FLUSH PRIVILEGES;


安装rtty(针对Linux发行版)

安装依赖

sudo apt install -y libev-dev libssl-dev      # Ubuntu, Debian
sudo pacman -S --noconfirm libev openssl      # ArchLinux
sudo yum install -y libev-devel openssl-devel # Centos

克隆rtty代码

git clone --recursive https://github.com/zhaojh329/rtty.git

编译

cd rtty && mkdir build && cd build
cmake .. && make install

运行rtty

将下面的参数替换为您自己的参数

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

如果您的 rttys 配置了一个 token,请加上如下参数(将下面的 token 替换为您自己生成的)

-t 34762d07637276694b938d23f10d7164

通过浏览器访问

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

或者直接连接设备,无需 Web 登录(需要在服务端配置设备白名单)

http://your-server-host:5913/connect/devid1

http://your-server-host:5913/connect/devid2

从本地传输文件到远程设备

rtty -R

从远程设备传输文件到本地

rtty -S test.txt


—END—

开源协议:MIT

开源地址:
https://github.com/zhaojh329/rtty

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: