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

news2024/11/26 8:22:44

安装服务端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.coloradmin.cn/o/1833753.html

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

相关文章

Thinkphp5内核流浪猫流浪狗宠物领养平台H5源码

Thinkphp5内核流浪猫流浪狗宠物领养平台H5源码 可封装APP,适合做猫狗宠物类的发信息发布,当然懂的修改一下,做其他信息发布也是可以的。 Thinkphp5内核流浪猫流浪狗宠物领养平台H5源码

常用算法及参考算法 (1)累加 (2)累乘 (3)素数 (4)最大公约数 (5)最值问题 (6)迭代法

常用算法及参考算法 &#xff08;1&#xff09;累加 &#xff08;2&#xff09;累乘 &#xff08;3&#xff09;素数 &#xff08;4&#xff09;最大公约数 &#xff08;5&#xff09;最值问题 &#xff08;6&#xff09;迭代法 1. 累加 #include <stdio.h>int main() {…

怎么把网页上的接口信息导入postman

第一步 打开f12&#xff0c;右键选中需要的接口。选择copy-copy as cURL 第二步 打开postman&#xff0c;选择"Raw Text"&#xff0c; 把刚才复制的curl粘贴到空白位置&#xff0c;点击Continue - 最后的效果。导入的接口自带cookie&#xff0c;不用再输入cookie&a…

Cosmopolitan:一次构建,多平台原生运行的C语言库行!

Cosmopolitan&#xff1a;C语言的跨平台革命&#xff0c;无需虚拟机&#xff0c;直接运行于任何环境。- 精选真开源&#xff0c;释放新价值。 概览 Cosmopolitan是一个创新的C语言库&#xff0c;旨在实现C程序的"一次编写&#xff0c;多处运行"&#xff0c;类似于Ja…

【深度学习驱动流体力学】配置安装 OpenFOAM 及其所需的ThirdParty-10与QT5工具

本文以ThirdParty-10 为例,ThirdParty-10 是 OpenFOAM 软件包中的一个重要组件目录&#xff0c;包含了一系列外部的第三方库和工具&#xff0c;这些库和工具对于 OpenFOAM 的编译和运行至关重要。该目录提供了各种脚本和配置文件&#xff0c;用于简化这些第三方库的下载、编译和…

文生视频开源产品的一些调研(一)

笔者尝试AI视频生成的几个特点&#xff1a; 玄学prompt&#xff0c;每个视频的prompt可能也需要微调很多次&#xff0c;需要找到使用模型的最佳prompt词组合&#xff0c;不恰当的比喻&#xff0c;骑自行车&#xff0c;座位高度等都是人与车彼此熟悉玄学生成&#xff0c;因为需…

Ubuntu与RedHat Linux的不同

部署Ubuntu 安装在服务器上的系统一般追求极致的稳定&#xff0c;所以安装系统时为了避免潜在的问题&#xff0c;所以选的时候应该往后推选几个版本 首先因为现在使用的电脑是MacBook&#xff0c;还是最新的Mac所以在部署的时候要注意其安装的支持芯片架构&#xff08;最新的…

Gitlab SSH无法连接但是HTTP可以连接

项目场景&#xff1a; Gitlab在docker中布置好之后测试&#xff0c;发现SSH无法连接但是HTTP可以连接 提示&#xff1a;这是一个无效的源路径 问题描述 http可以识别为git项目&#xff0c;而ssh无法识别成git项目。 原因分析&#xff1a; 三种猜想 端口号被占用 尝试查看…

UE5开发游戏Tutorial

文章目录 PlayerStart 初始化设置默认 LevelBP_Character 初始化BP_Character 添加动画BP_Character 攻击BP_Enemy 初始化 以及 AI 运动Camera Collision 相机碰撞BP_Character 生命以及伤害Wave Spawner 波生成UI 初始化以及 Damage Screen指定位置随机生成添加声音环境 Envir…

Apache Doris 全新分区策略 Auto Partition 应用场景与功能详解 | Deep Dive系列

编辑&#xff1a;SelectDB 技术团队 在当今数据驱动的时代&#xff0c;如何高效、有序地管理数据库中的海量数据成为挑战。为了处理庞大的数据集&#xff0c;分布式数据库引入了类似分区和分桶策略&#xff0c;通过将数据按特定规则划分成较小的单位并分布到不同节点上&#x…

Azure创建虚拟机

Azure创建虚拟机 一、创建步骤(1)登录到Azure portal(2)启动新实例(3)填写必要信息选择系统镜像(4)选择实例类型(5)配置管理员帐户和入站端口规则(6) 磁盘:保持默认(7) 网络:保持默认(8) 管理:保持默认(9) Monitoring:Boot diagnostics选择Disable(10) 最后直接点击查看 + …

2024年第三届数据统计与分析竞赛(A题)数学建模完整思路+完整代码全解全析

本次A题主要涉及正态分布、数据处理、自然语言处理等知识点 问题一题目重述&#xff1a;根据附件中抖音用户的评论数据&#xff0c;对抖音 APP 的“评分”和“点赞数”进行数据统计与分析&#xff0c;并使用假设检验判断这两个指标的分布是否服从正态分布。 接下来对问题一进…

深度学习工具jupyter的new没有环境选项以及遇到的EnvironmentLocationNotFound:Not such a environment

jupyter安装使用 安装完Anaconda&#xff08;安装Anaconda具体请参考其他教程&#xff09;后&#xff0c;一般默认有安装jupyter打开 注意当前是base环境&#xff0c;后期使用jupyter需要切换环境 我们找到文件地址。用记事本打开 可以搜索&#xff1a;c.NotebookApp.noteb…

redis持久化方式—AOF

redis为什么需要持久化 redis是内存数据库&#xff0c;redis所有的数据都保存在内存中 如果此时pc关机或重启&#xff0c;那么内存中的用户数据岂不是丢失了&#xff1f;redis这么不安全吗&#xff1f; 作为数据库&#xff0c;保证数据的安全&#xff0c;持久是基本需求&…

RERCS系统开发实战案例-Part05 FPM Application的Feeder Class搜索组件的实施

1、通过事务码 SE24对Feeder Class实施 1&#xff09;接口页签的简单说明&#xff1a; ① IF_FPM_GUIBB&#xff1a;通用UI构建块&#xff0c;整个UIBB模块的基础接口&#xff1b; ② IF_FPM_GUIBB_SEARCH&#xff1a;通用搜索UI构建块&#xff0c;搜索组件UIBB的基础接口&…

操作系统入门 -- CPU调度算法

操作系统入门 – CPU调度算法 在了解完进程和线程的概念后&#xff0c;我们就需要了解当一个进程就绪后系统会进行怎样的资源分配并运行进程&#xff0c;因此我们就需要了解CPU的调度算法 1.CPU调度 1.1概念 CPU调度即按照某种算法将CPU资源分配给某个就绪的进程。 1.2调度…

外链是否会增加流量?

外链确实可以间接地帮助增加网站流量&#xff0c;不过要了解的是这不是直接影响&#xff0c;首先&#xff0c;外链主要是提升你的网站在搜索引擎中的整体权重。简单地说&#xff0c;当你的网站被很多其他的网站通过dofollow链接指向时&#xff0c;搜索引擎会认为你的网站内容质…

TCP三次握手和四次挥手过程简介(抓包分析,简单易懂,小白)

接上篇 传输层部分 链路层、网络层、传输层和应用层协议详解分析-CSDN博客文章浏览阅读689次&#xff0c;点赞10次&#xff0c;收藏15次。wireshark抓包分析-CSDN博客wireshark是网络包分析工具网络包分析工具的主要作用是尝试捕获网络包&#xff0c;并尝试显示包的尽可能详细…

SQL Server数据库安装

原文&#xff1a;https://blog.c12th.cn/archives/26.html SQL Server数据库安装 测试&#xff1a;笔记本原装操作系统&#xff1a;Windows 10 家庭中文版 资源分享链接&#xff1a;提取码&#xff1a;qbt2 注意事项&#xff1a; 请严格按照步骤安装&#xff0c;SQL软件安装较…

单片机 PWM输入捕获【学习记录】

前言 学习是永无止境的&#xff0c;就算之前学过的东西再次学习一遍也能狗学习到很多东西&#xff0c;输入捕获很早之前就用过了&#xff0c;但是仅仅是照搬例程没有去进行理解。温故而知新&#xff01; 定时器 定时器简介 定时器的分类 高级定时器 通用定时器 基本定时器…