Next Terminal 远程桌面网关支持RDP SSH VNC和Telnet

Next Terminal 远程桌面网关支持RDP SSH VNC和Telnet

Next Terminal简介

Next Terminal是使用Golang和React开发的一款HTML5的远程桌面网关,具有小巧、易安装、易使用、资源占用小的特点,支持RDP、SSH、VNC和Telnet协议的连接和管理。

项目地址:

GitHub:github.com/dushixiang/next-terminal

目前支持的功能

  • 授权凭证管理
  • 资产管理(支持RDP、SSH、VNC、TELNET协议)
  • 指令管理
  • 批量执行命令
  • 在线会话管理(监控、强制断开)
  • 离线会话管理(查看录屏)

Next Terminal安装方法

①使用docker安装

使用sqlite存储数据

docker run -d \
  -p 8088:8088 \
  --name next-terminal \
  --restart always dushixiang/next-terminal:latest

使用mysql存储数据

docker run -d \
  -p 8088:8088 \
  -e DB=mysql \
  -e MYSQL_HOSTNAME=172.1.0.1 \
  -e MYSQL_PORT=3306 \
  -e MYSQL_USERNAME=root \
  -e MYSQL_PASSWORD=mysql \
  -e MYSQL_DATABASE=next_terminal \
  --name next-terminal \
  --restart always dushixiang/next-terminal:latest

注意事项 ⚠️

  1. docker连接宿主机器上的mysql时连接地址不是127.0.0.1,请使用ipconfigifconfig确认宿主机器的IP。
  2. 使用其他容器内部的mysql时请使用--link <some-mysql-name>,环境变量参数为-e MYSQL_HOSTNAME=<some-mysql-name>

环境变量

参数含义
DB数据库类型,默认 sqlite,可选['sqlite','mysql']
SQLITE_FILEsqlite数据库文件存放地址,默认 'next-terminal.db'
MYSQL_HOSTNAMEmysql数据库地址
MYSQL_PORTmysql数据库端口
MYSQL_USERNAMEmysql数据库用户
MYSQL_PASSWORDmysql数据库密码
MYSQL_DATABASEmysql数据库名称
SERVER_ADDR服务器监听地址,默认0.0.0.0:8088

其他

next-terminal 使用了supervisord来管理服务,因此相关日志在 /var/log/supervisor/next-terminal-*.log

程序安装目录地址为:/usr/local/next-terminal

录屏文件存放地址为:/usr/local/next-terminal/recording

远程桌面挂载地址为:/usr/local/next-terminal/drive

②原生安装

Centos

安装Apache Guacamole-Server依赖文件

yum install -y gcc cairo-devel libjpeg-turbo-devel libpng-devel uuid-devel freerdp-devel freerdp-plugins pango-devel libssh2-devel libtelnet-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel

下载&解压&configure

wget https://mirror.bit.edu.cn/apache/guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz
tar -xzf guacamole-server-1.2.0.tar.gz
cd guacamole-server-1.2.0
./configure --with-init-dir=/etc/init.d

如果安装的依赖文件没有缺失的话,会看到RDP SSH VNC 都是 yes

------------------------------------------------
guacamole-server version 1.2.0
------------------------------------------------

   Library status:

     freerdp2 ............ yes
     pango ............... yes
     libavcodec .......... no
     libavformat.......... no
     libavutil ........... no
     libssh2 ............. yes
     libssl .............. yes
     libswscale .......... no
     libtelnet ........... yes
     libVNCServer ........ yes
     libvorbis ........... yes
     libpulse ............ yes
     libwebsockets ....... no
     libwebp ............. yes
     wsock32 ............. no

   Protocol support:

      Kubernetes .... no
      RDP ........... yes
      SSH ........... yes
      Telnet ........ yes
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... no
      guaclog .... yes

   FreeRDP plugins: /usr/lib64/freerdp2
   Init scripts: /etc/init.d
   Systemd units: no

Type "make" to compile guacamole-server.

编译和安装

make && make install & ldconfig

建立软链接

ln -s /usr/local/lib/freerdp/guacsnd.so /usr/lib64/freerdp/
ln -s /usr/local/lib/freerdp/guacdr.so /usr/lib64/freerdp/

配置guacamole-server

mkdir /etc/guacamole/ & cat <<EOF >> /etc/guacamole/guacd.conf
[daemon]
pid_file = /var/run/guacd.pid
log_level = info

[server]
bind_host = 127.0.0.1
bind_port = 4822
EOF

启动 guacamole-server

/etc/init.d/guacd start

安装字体(SSH使用)

安装字体管理软件

yum install -y fontconfig mkfontscale

下载字体文件并移动到 /usr/share/fonts/目录下

cd  /usr/share/fonts/
wget https://raw.githubusercontent.com/dushixiang/next-terminal/master/web/src/fonts/Menlo-Regular-1.ttf

更新字体

mkfontscale
mkfontdir
fc-cache

安装 Next Terminal

建立next-terminal目录

mkdir ~/next-terminal & cd ~/next-terminal

下载

wget https://github.com/dushixiang/next-terminal/releases/download/v0.0.2/next-terminal.tgz

解压

tar -xvf next-terminal.tgz
cd next-terminal

修改配置文件config.yml

db: sqlite
# 当db为sqlite时mysql的配置无效
#mysql:
#  hostname: 172.16.101.32
#  port: 3306
#  username: root
#  password: mysql
#  database: next-terminal

# 当db为mysql时sqlite的配置无效
sqlite:
  file: 'next-terminal.db'
server:
  addr: 0.0.0.0:8088

启动

./next-terminal

使用截图

资产管理

Next Terminal 远程桌面网关支持RDP SSH VNC和Telnet

批量执行命令

Next Terminal 远程桌面网关支持RDP SSH VNC和Telnet

资源占用截图

Next Terminal 远程桌面网关支持RDP SSH VNC和Telnet

rdp

Next Terminal 远程桌面网关支持RDP SSH VNC和Telnet

ssh

Next Terminal 远程桌面网关支持RDP SSH VNC和Telnet

vnc

Next Terminal 远程桌面网关支持RDP SSH VNC和Telnet

下载地址:

①GitHub: github.com/dushixiang/next-terminal/releases
②雨苁网盘 : w.ddosi.workers.dev/github/next-terminal.tgz