安装服务端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=offsource ~/.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 -modcacheRttys的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