部署远程控制台访问服务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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

apollo配置中心入门实践

说明: (如果微服务开发没有严格统一的代码开发规范,不建议采用apollo,否则只会更浪费时间在一堆配置上) 通常情况下,我们无论是但模块开发,还是微服务多模块开发,都采用springboot…

3D元宇宙虚拟主播引领文旅产业迈向更加美好的未来!

随着文旅产业的蓬勃发展,3D数字代言人的应用正逐渐改变着传统的文旅传播方式。文旅3D数字代言人搭建编辑器的出现,正是满足大部分文旅产业借助数字人浪潮,将传统文化与现代科技完美融合的创新之举。 文旅3D数字代言人搭建编辑器不仅满足了Z世…

TQZC706开发板教程:10G光口ping测试

资源分享链接:https://pan.baidu.com/s/1zoUFCXx34qT8lm13YyyOxw提取码:k77h 调整右下角的拨码开关为↑↓↓↑↑ 从原理图中可以看出设置为156.25MHz,10Gige模式 启动模式设置为SD模式,把提供的文件复制到SD卡中,插上…

EasyRecovery2024汉化免费版电脑数据恢复软件下载

亲爱的小伙伴们,今天我要给大家分享一个超级好用的电脑数据恢复软件——EasyRecovery!🌐✨ 相信很多人都遇到过误删文件、格式化硬盘等尴尬情况吧?别担心,有了EasyRecovery,这些问题都能迎刃而解啦&#xf…

树形喇叭状异形创意LED显示屏正在成为设计师们手中的神来之笔

异形创意LED显示屏以其独特的形状和强大的视觉冲击效果,正逐渐改变着我们的视觉体验。不同于传统的矩形、平面板状的LED显示屏,异形屏以其形状各异、造型奇特的特点,为商业显示、展览展示、文旅旅游等行业带来了全新的变化。本文将重点介绍异…

32、循环语句while+until

一、循环控制语句 双层循环和循环语句的使用,while和until的语法使用 1.1、echo 打印 continue:跳出当次,后续的条件成立,继续执行。 break:一旦break,后续的条件不再执行。 exit:满足条件…

基于Django的博客系统之增加手机验证码登录(九)

需求文档 概述 实现基于Redis和第三方短信服务商的短信验证码登录功能。用户可以通过手机号码获取验证码,并使用验证码进行登录。 需求细节 用户请求验证码 用户在登录页面输入手机号码并请求获取验证码。系统生成验证码并将其存储在Redis中,同时通过…

设备保养计划不再是纸上谈兵,智能系统让执行更到位!

在物业管理的日常工作中,我们常常听到“设备保养台账”“设备保养计划”“设备保养记录”等等这些词,但你是否真正了解它们的含义?是否知道一个完善的设备保养计划、记录、台账对于物业运营的重要性?今天,我们就来深入…

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

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

【AI绘画】文心一格

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

Spring Cloud全家桶(上)【Nacos、OpenFeign、LoadBalancer、GateWay、金丝雀灰色发布】

0.零基础入门微服务实战课 1.微服务和 Spring Cloud1.1 什么是微服务?1.2 什么是 Spring Cloud?1.3 微服务 VS Spring Cloud 2.为什么要学微服务?3.Spring Cloud 组件介绍1.什么是 Nacos?1.1 Nacos 功能1.1.1 配置中心1.1.2 注册中心 1.2 Na…

openlayers 使用WMTS和XYZ加载天地图切片服务

openlayers 使用WMTS和XYZ加载天地图切片服务 本篇介绍一下使用openlayers加载天地图切片,两种方法: 使用WMTS使用XYZ 1 需求 openlayers加载天地图 2 分析 主要是不同类型source的使用 WMTS(Web Map Tile Service) 是 OGC…

《地下城与勇士》新手攻略,开荒必备!云手机多开教程!

《地下城与勇士》(DNF)是一款广受欢迎的多人在线动作角色扮演游戏。玩家将在游戏中扮演不同职业的角色,通过打怪、做任务、PK等方式不断提升自己,探索广阔的阿拉德大陆。游戏中设有丰富的副本、装备、技能系统,玩家可以…

ESP32-S3芯片的Strapping管脚功能描述

文章目录 一、Strapping管脚是什么?二、ESP32-S3芯片的Strapping管脚总体描述三、ESP32-S3芯片的Strapping管脚具体功能描述1、芯片启动模式控制2、VDD_SPI 电压控制3、ROM 日志打印控制4、JTAG 信号源控制 一、Strapping管脚是什么? 芯片每次上电或复位…

销售如何提高回复客户消息的速度?

在如今竞争激烈的商业环境中,能够快速回复客户消息是维护客户关系和提升用户体验的重要一环。尤其是对于很多企业或是销售客服人员来说,及时回复客户的咨询和反馈,能够有效增强客户的粘性和满意度。 那么怎样才能快速回复客户消息呢&#xf…

sklearn 基础教程

scikit-learn(简称sklearn)是一个开源的机器学习库,它提供了简单和有效的数据分析和数据挖掘工具。sklearn是Python语言中最重要的机器学习库之一,广泛用于统计学习和数据分析。 以下是scikit-learn的基础教程,帮助您开…

洗地机怎么选?洗地机哪个品牌比较好?四款实力超牛的单品推荐

随着生活节奏的加快,家庭清洁已经成为许多人面临的一大挑战。传统的扫地和拖地方式不仅耗时耗力,还难以彻底清洁每一个角落。家用洗地机的出现,为人们的家庭提供了一个全新的清洁解决方案。然而,在选择合适的洗地机时,…

示例:WPF中DataGrid简单设置合并列头

一、目的&#xff1a;应用DataGridTemplateColumn列模板&#xff0c;去拆分列头和单元格布局的方式设置列头合并样式 二、实现 效果如下 三、环境 VS2022 四、示例 应用DataGridTemplateColumn自定义列头信息和单元格信息 <DataGrid AutoGenerateColumns"False"…

一分钱不花!本地部署Google最强开源AI大模型Gemma教程

谷歌发布了轻量级开源系列模型Gemma&#xff0c;其性能强大&#xff0c;可与主流开源模型竞争。通过Ollama可轻松部署Gemma模型&#xff0c;并使用JANAI美化UI界面。显卡在AIGC应用中至关重要&#xff0c;推荐选择性能强、显存大的NVIDIA系列显卡。 半个月前&#xff0c;谷歌搞…

echarts引入百度地图vue3(大屏项目中缩放点偏移到左上角,解决代码在最后)

实际开发中的问题&#xff0c;遇到了大屏做了自适应&#xff0c;为非标准文档流之后&#xff0c;在缩放时不是以鼠标当前位置缩放的&#xff0c;而是偏移到左上角。 向百度地图提了工单也没解决&#xff0c;同一套适应方案用cesium地图时缩放没问题&#xff1a; 先看看效果&am…