部署远程控制台访问服务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层作用是提供业务系统数据…

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

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

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

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

C语言最终文章-二叉树

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

目标检测:IOU

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

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

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

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

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

海成蜘蛛池广州官网下载

baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? 当我们给自己的泛目录设置仅蜘蛛抓取生成缓存的时候,我们需要模拟蜘蛛抓取测试我们的设置是否成功。绝大部分时候我们都使用网页蜘蛛模拟抓取测…

2024.618到底买什么数码值得?带你一起来看看!

在618期间,这些新品可能会有特别的优惠活动,包括但不限于折扣、满减、赠品等。因此,如果你正在寻找一款适合自己的数码产品,不妨关注各大电商平台的618促销活动,把握机会,以优惠的价格购买到心仪的产品。 …

文件操作(1)(C语言版)

前言: 为什么要学习文件操作: 1、如果大家写过一些代码,当运行结束的时候,这些运行结果将不复存在,除非,再次运行时这些结果才能展现在屏幕上面,就比如之前写过的通讯录。 现实中的通讯录可以保…

【数据结构初阶】--- 堆

文章目录 一、什么是堆?树二叉树完全二叉树堆的分类堆的实现方法 二、堆的操作堆的定义初始化插入数据(包含向上调整详细讲解)向上调整删除堆顶元素(包含向下调整详细讲解)向下调整返回堆顶元素判断堆是否为空销毁 三、…

一个开源的快速准确地将 PDF 转换为 markdown工具

大家好,今天给大家分享的是一个开源的快速准确地将 PDF 转换为 markdown工具。 Marker是一款功能强大的PDF转换工具,它能够将PDF文件快速、准确地转换为Markdown格式。这款工具特别适合处理书籍和科学论文,支持所有语言的转换,并…

2024年最佳插电式混合动力电动汽车

对电动汽车充满好奇和环保意识的司机们还没有准备好跨入纯电动汽车,他们可以找到一个折衷方案,即插电式混合动力车。 在过去的16年里,我一直在把握汽车行业的脉搏。试驾数百辆汽车、电动汽车、插电式混合动力车,跟踪汽车行业的新闻…

DAY04 HTMLCSS

文章目录 一 表单(1) 数字控件(2) 颜色控件(3) 日期控件(4) 月份控件(5) 星期控件(6) 搜索控件(7) 范围控件 二 浮动框架三 结构化标签四 CSS1 CSS概述2 CSS的编写位置1. inline style 行内样式2. inner style 内部样式3. outer style 外部样式4. 小结 3 CSS选择器1. 通用选择器…

一个示例学习C语言到汇编层面

给出以下代码 #include<stdio.h> int main() {int x 0, y 0, z 0;while (1) {x 0;y 1;do {printf("%d\n", x);z x y;x y;y z;} while (x < 255);}return 0; }我们把这个程序编写成32位程序&#xff0c;然后我们放入IDA中进行分析 .text:0080187…