Next Terminal是使用Golang和React开发的一款HTML5的远程桌面网关,具有小巧、易安装、易使用、资源占用小的特点,支持RDP、SSH、VNC和Telnet协议的连接和管理。
Next Terminal基于 Apache Guacamole 开发,使用到了guacd服务。
目前支持的功能有:
- 授权凭证管理
- 资产管理(支持RDP、SSH、VNC、TELNET协议)
- 指令管理
- 批量执行命令
- 在线会话管理(监控、强制断开)
- 离线会话管理(查看录屏)
- 双因素认证 感谢 naiba 贡献
- 资产标签
- 资产授权
- 用户分组
之前部署过 Ubuntu开源项目Gateone实现WebSSH,Next Terminal 相比 GateOne 支持更多的协议,除 SSH 外还有 RDP、VNC 和 Telnet,界面一目了然,也有成熟的用户权限系统
内网下,RDP 的连接质量很好,体验与 Windows 远程桌面没有区别
下文将展示如何在 Debian 10 下以原生方式搭建 Next Terminal
环境
- Debian 10
参考
步骤
其实官方安装指南已经很简单了,只是没有给出 Debian 下字体的安装方式
以下步骤在 root 用户下执行,其他用户酌情添加 sudo
安装依赖
- Apache Guacamole-Server 依赖文件
apt install libcairo2-dev libjpeg62-turbo-dev libpng-dev libtool-bin libossp-uuid-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev
- 获取、解压并配置编译 Guacamole-Server
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
- 编译并安装
make && make install && ldconfig
- 配置 Guacamole-Server
mkdir /etc/guacamole/ && cat <<EOF >> /etc/guacamole/guacd.conf [daemon] pid_file = /var/run/guacd.pid log_level = info [server] bind_host = 0.0.0.0 bind_port = 4822 EOF
- 启动 Guacamole-Server
/etc/init.d/guacd start
安装字体
- 安装 fontconfig 和 mkfontscale
apt install ttf-mscorefonts-installer
- 获取字体
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
- 新建运行目录
mkdir ~/next-terminal && cd ~/next-terminal
- 获取并解压 Next terminal
wget https://github.com/dushixiang/next-terminal/releases/latest/download/next-terminal.tgz tar -xvf next-terminal.tgz cd next-terminal
- 编辑配置文件 config.yml (可略过)
db: sqlite # 默认使用 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 Teminal 系统服务
- 在 /etc/systemd/system/ 下新建文件 nextterminal.service,添加以下内容
[Unit] Description=Next Terminal service After=syslog.target network.target [Service] User=root WorkingDirectory=/[username]/next-terminal ExecStart=/[username]/next-terminal/next-terminal/next-terminal [Install] WantedBy=multi-user.target
- 在 /etc/systemd/system/ 下新建文件 nextterminal.service,添加以下内容
- 启动 Next Terminal
systemctl start nextterminal.service systemctl enable nextterminal.service # 开机启动
效果
远程桌面管理界面
RDP 连接 Windows Server
SSH 连接 Linux Server
新增远程桌面实例