目录导航
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
注意事项 ⚠️
- docker连接宿主机器上的
mysql
时连接地址不是127.0.0.1
,请使用ipconfig
或ifconfig
确认宿主机器的IP。 - 使用其他容器内部的
mysql
时请使用--link <some-mysql-name>
,环境变量参数为-e MYSQL_HOSTNAME=<some-mysql-name>
环境变量
参数 | 含义 |
---|---|
DB | 数据库类型,默认 sqlite ,可选['sqlite','mysql'] |
SQLITE_FILE | sqlite 数据库文件存放地址,默认 'next-terminal.db' |
MYSQL_HOSTNAME | mysql 数据库地址 |
MYSQL_PORT | mysql 数据库端口 |
MYSQL_USERNAME | mysql 数据库用户 |
MYSQL_PASSWORD | mysql 数据库密码 |
MYSQL_DATABASE | mysql 数据库名称 |
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
使用截图
资产管理

批量执行命令

资源占用截图

rdp

ssh

vnc

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