部署远程控制台访问服务Rttys,第三部分服务端(安装Rttys)

安装服务端Rttys之前可选先在客户端安装rtty。服务端采用GO语言实现,前端界面采用vue实现。

CMAKE的安装和客户端RTTY的安装请参考前两篇文章:

Linux远程连接程序工具选型 Webssh与Rtty

部署远程控制台访问服务Rttys,第一部分客户端(安装CMAKE)

部署远程控制台访问服务Rttys,第二部分客户端(安装RTTY)

接下来部署RTTYS服务端 (这里主要基于Linux系统(Centos7)的操作流程:):

一、环境

安装Golang环境(如果尚未安装):
确保安装的Golang版本大于1.17。

下载安装go  https://go.dev/dl/go1.22.3.linux-amd64.tar.gz 上传至/home下执行

sudo tar -C /usr/local -xzf /home/go1.22.3.linux-amd64.tar.gz

编辑/etc/profile文件来设置Golang的环境变量。使用vim或其他你喜欢的文本编辑器打开文件:
sudo vim /etc/profile
在文件末尾添加以下行(确保路径与你的安装路径一致):
# Golang environment  
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin
运行以下命令使刚刚设置的环境变量生效:
source /etc/profile
运行以下命令来检查Golang是否已正确安装:
go version

二、使用goproxy代理

 如果因为网络问题(如“墙”的原因)导致github依赖无法正常导入,可以设置Go的代理。例如,使用goproxy:
vim ~/.bashrc

# Golang environment  
export GO111MODULE=on  
export GOPROXY=https://goproxy.cn,direct
export GOSUMDB=off

source ~/.bashrc

三、下载rttys

使用git从GitHub或Gitee仓库克隆rttys的源码。GitHub的链接为:https://github.com/zhaojh329/rttys
命令为:git clone --recursive https://github.com/zhaojh329/rttys.git 

四、编译rttys 

这里文件权限放到最大,只用作演示,实际生产根据需要加权

cd /home/rttys/
chmod 777 /home/rttys/build.sh 

执行编译命令:
./build.sh linux amd64(假设您是在Linux的amd64架构上编译)

Rttys及Rtty的交叉编译#
Rttys官方的Release仅提供amd64与arm64的版本,并没有armhf的版本,且并不支持将rttys部署到子目录下。因此需要手工交叉编译一个Rttys。

五、运行RTTYS

编译完成后,进入rttys-linux-amd64目录(版本号可能有所不同)。
cd /home/rttys/rttys-linux-amd64
运行rttys启动服务端。
chmod u+x ./rttys
运行并保存日志记录,执行rttys.conf配置内容:
nohup ./rttys run -c /home/rttys/rttys-linux-amd64/rttys.conf  > rttys-log.log 2>&1 &

 注(/home/rttys/rttys-linux-amd64/rttys.conf):

#addr-dev: :5912
#addr-user: :5913

# Automatically select an available port in default
#addr-http-proxy:

#http-proxy-redir-url:

#ssl-cacert: /etc/rttys/rttys.ca
#ssl-cert: /etc/rttys/rttys.crt
#ssl-key: /etc/rttys/rttys.key

#token: a1d4cdb1a3cd6a0e94aa3599afcddcf5

# No login required to connect device.
# Values can be device IDs separated by spaces,
# or a "*" indicates that all devices do not require login
# http://localhost:5913/connect/rtty1
#white-list: "*"
#white-list: rtty1 rtty2

# database source
db: sqlite://rttys.db
#db: mysql://rttys:rttys@tcp(localhost)/rttyss

说明:

addr-dev、addr-user相关配置,这里不做更改,服务启动默认5913,有需要修改的朋友这里设置就可以了。

ssl-cacert: /etc/rttys/rttys.ca  #这里对于ssl证书相关配置,我做了验证,这里不做设置,通过https域名访问到了Rttys服务,所以这里不设置也不说明了。

token: a1d4cdb1a3cd6a0e94aa3599afcddcf5  #这里的token在接下来的步骤中加以说明,但是我并没有使用,对token的设置使用不是很理解,有了解的老铁可以评论指导下。

#white-list: "*" #这里的*意思是所有的设备在进行连接远程linux时,都不需要走Rttys的登录页。可通过http://Rtty的服务端ip:5913/rtty/设备id进行访问

#white-list: rtty1 rtty2  #这里的意思是只对rtty1、rtty2不需要走登录,其他设备id在连接访问远程linux时都需要登录Rttys。

 db: sqlite://rttys.db #意思是sqlite数据库的地址,当服务端rttys运行之后,默认在rttys所在服务器上创建并建立sqlite数据库的连接。sqlite数据库的具体操作会卸载文末。

 六、查看rttys状态

ps -ef | grep rttys
查看实时日志:
tail -f /var/log/rttys.log

七、sqlite的使用

 rttys的配置文件

/home/rttys/rttys-linux-amd64/rttys.conf下的数据连接配置db: sqlite://rttys.db
进入数据库查看数据:
cd /home/rttys/rttys-linux-amd64/

执行

sqlite3 rttys.db
查看所有表:
.tables
查看账户表:
SELECT * FROM account;
删除满足特定条件的行:
DELETE FROM account WHERE username = 'newuser';
添加非admin用户:1表示是管理员,0表示不是)
INSERT INTO account (username, password, admin) VALUES ('admin', '123456', 1);
查询该用户:
SELECT * FROM account WHERE username = 'admin';
更新用户名或者密码:
UPDATE account SET username = 'newusername' WHERE username = 'oldusername';
UPDATE account SET password = 'newpassword' WHERE username = 'oldusername';

八、其他

配置与访问:
服务端启动后,您可以通过浏览器访问该服务。首先,需要注册一个账号(如果没有的话)。
您可能还需要修改rttys.conf文件来配置web端的用户名和密码。
注意事项:
如果在编译或运行过程中遇到任何问题,请检查是否有任何依赖项未安装或版本不兼容。
确保您的系统满足rttys运行所需的所有要求。

清除go缓存:
go clean -modcache

Rttys的token生成

[root@Centos7-Mode-V11 rttys-linux-amd64]# ./rttys token
Please set a password: hsiipvcom@19password
Your token is: 31a643f706911c43a4af8310c506f29e

如何使用

 使用您的 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

 最终运行效果:

也可参照我的另一篇文章,对Rttys的运行效果进行了截图。

Linux远程连接程序工具选型 Webssh与Rtty

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/29005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下饺子模式一触即发,爆款的诞生仿佛“开盲盒”?

千呼万唤始出来,国产首款3A游戏大作《黑神话:悟空》即将发售。 早在2020年的8月20日当天,《黑神话:悟空》就发布了13分钟的实机演示。仅两天,B站播放量超过1700万,微博话题阅读量超过2.4亿。 从立项开始算…

自动化产线设备联网,协同打造5G智慧工厂

1、需求背景 随着信息技术、物联网、人工智能等领域的飞速发展,智慧工厂成为制造业升级和转型的关键方向。在智慧工厂中,产线设备之间的实时通信和协同操作可以提高整个生产流程的自动化水平。 提升生产效率 通过稳定的网络连接,保证设备之…

RT-Thread简介及启动流程分析

阅读引言: 最近在学习RT-Thread的内部机制,觉得这个启动流程和一些底层原理还是挺重要的, 所以写下此文。 目录 1, RT-Thread简介 2,RT-Thread任务的几种状态 3, 学习资源推荐 4, 启动流程分…

MTANet: 多任务注意力网络,用于自动医学图像分割和分类| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割

Title 题目 MTANet: Multi-Task Attention Network for Automatic Medical Image Segmentation and Classification MTANet: 多任务注意力网络,用于自动医学图像分割和分类 01 文献速递介绍 医学图像分割和分类是当前临床实践中的两个关键步骤,其准…

Springboot3+自动装配

导言:这里主要讲述springboot3以后spring.factories功能失效,带来的解决办法。 之前有一次希望用springboot模块拿到工具模块的配置configuration的时候,想通过之前的spring.factories来实现自动装配,但是发现一直拿不到配置&…

数据仓库与数据挖掘(期末复习)

数据仓库与数据挖掘(期末复习) ETL的含义Extract 、 Transformation、Load。 ODS的全称Operational Data Store。 DW全称 Data Warehourse DM全称是Data Mart 数据仓库数据抽取时所用到技术是增量、全量、定时、调度 STAGE层作用是提供业务系统数据…

因果卷积和递归神经网络

因果卷积(causal convolution)和递归神经网络(RNN)在处理序列数据时各有优劣。这里我们分析两者的工作机制和性能特点。 ### 因果卷积 1. **因果卷积的特点**: - **不使用未来信息**:因果卷积只利用当前及…

全国各区县地区生产总值数据(GDP及人均生产总值),精度超高 区县级数据

数据名称: 全国各区县地区生产总值数据 数据格式: shpexcel 数据几何类型: 面 数据精度:区县 数据坐标系: WGS84 数据来源:网络公开数据 数据可视化.

稳了?L3规模化落地在即,激光雷达公司成首批赢家

作者 | 芦苇 编辑 | 德新 在中国,距L3级自动驾驶的规模化落地,又近了一步。 随着国内试点政策刷新,越来越多的车企在部分市域获得了自动驾驶测试牌照,能上路测试的L3级自动驾驶车辆正在快速增加。 其中一个重要节点是&#xf…

C语言最终文章-二叉树

文章目录 前言二叉树的性质二叉树的存储方式顺序存储堆及其应用TopK问题堆排序 链式存储二叉树的练习1.二叉树查找值为x的节点2.判断是否为完全二叉树LC226.翻转二叉树[LC572. 另一棵树的子树](https://leetcode.cn/problems/subtree-of-another-tree/description/)两道选择题 …

如何开展接口测试

项目中如何开展接口测试 需求分析 接口文档解析 设计测试用例 脚本开发 执行及缺陷跟踪 生成测试报告 接口自动化持续集成(可选)

音视频开发_SDL音频播放器的实现

今天向大家介绍一下如何通过 SDL 实现一个PCM音频播放器。这是一个最简单的播放器,它不涉及到音频的解复用,解码等工作。我们只需要将音频原始数据喂给 SDL 音频接口就可以听到悦耳的声音了。在下面的列子中我将向你演示,使用 SDL 做这样一个…

目标检测:IOU

IOU(Intersection over Union)交并比: 它计算的是“预测的边框”和“真实的边框”的交叠率,即它们的交集和并集的比值。这个比值用于衡量预测边框与真实边框的重叠程度,从而评估目标检测的准确性。 在目标检测任务中…

嵌入式操作系统_2.嵌入式操作系统的一般架构

1.嵌入式操作系统的概念 嵌入式操作系统通常由硬件驱动程序、调式代理、操作系统内核、文件系统和可配置组件等功能组成,并为应用软件提供标准的API(Application Programming Interface)接口服务。 2.一般嵌入式操作系统的体系结构 从嵌入…

Mysql特殊用法分享

不存在则插入,存在则更新的2种写法 前置使用条件,必须有唯一索引 -- 1 REPLACE INTO REPLACE INTO typora.ip_view_times_record (ip, view_times, url) VALUES(10.25.130.64, 1, https://10.25.168.80/fhh/index.html?urlindex.md543);-- 2 ON DUPLI…

HTTP服务器实现长连接的思路(Java语言)

一、背景 目前的HTTP服务器很多,只要是编程语言支持线程和网络通信,就能开发一个HTTP协议服务器。 市场上常用的是Tomcat、Ngnix、Httpd等技术。 二、本文目的 介绍使用Java语言来开发HTTP服务器的处理逻辑。 这是个人可以参考的HTTP服务器通用逻辑。…

使用Selenium进行元素定位的全面指南

使用Selenium进行元素定位的全面指南 引言 Selenium 是一个广泛使用的开源工具,用于自动化Web浏览器的操作。无论你是进行自动化测试,还是需要抓取网页数据,Selenium 都是一个非常有用的工具。而在Selenium中,定位网页元素是自动…

LabVIEW机械设备故障诊断中,振动分析的有效性与局限性如何

LabVIEW作为一种强大的图形化编程工具,在机械设备故障诊断中的振动分析中发挥了重要作用。振动分析通过监测机械设备的振动信号,能够有效地诊断设备故障。然而,尽管其有效性显著,但也存在一些局限性。本文将探讨LabVIEW在振动分析…

C# —— for循环语句

基本语法 for (初始表达式; 条件表达式; 增量表达式) { // 循环体 } for循环中 有三个空 第一个空(初始表达式): 一般用来声明一个临时的局部变量 用来计数 第二个空(条件表达式): 表明进入循环的条件 一个bool类型的值(bool类型 条…

深度神经网络——什么是NLP(自然语言处理)?

自然语言处理(NLP) 是对使计算机能够处理、分析、解释和推理人类语言的技术和工具的研究和应用。 NLP 是一个跨学科领域,它结合了语言学和计算机科学等领域已建立的技术。 这些技术与人工智能结合使用来创建聊天机器人和数字助理,…