Next Terminal - 又一个远程桌面网关

Next Terminal – 又一个远程桌面网关

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

安装依赖

  1. 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
  2. 获取、解压并配置编译 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
  3. 编译并安装
    make && make install && ldconfig
  4. 配置 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
  5. 启动 Guacamole-Server
    /etc/init.d/guacd start

安装字体

  1. 安装 fontconfig 和 mkfontscale
    apt install ttf-mscorefonts-installer
  2. 获取字体
    cd  /usr/share/fonts/
    wget https://raw.githubusercontent.com/dushixiang/next-terminal/master/web/src/fonts/Menlo-Regular-1.ttf
  3. 更新字体
    mkfontscale
    mkfontdir
    fc-cache

安装 Next-terminal

  1. 新建运行目录
    mkdir ~/next-terminal && cd ~/next-terminal
  2. 获取并解压 Next terminal
    wget https://github.com/dushixiang/next-terminal/releases/latest/download/next-terminal.tgz
    tar -xvf next-terminal.tgz
    cd next-terminal
  3. 编辑配置文件 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 # 更改监听端口
  4. 新建 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
  5. 启动 Next Terminal
    systemctl start nextterminal.service
    systemctl enable nextterminal.service # 开机启动

效果

Next Terminal - 又一个远程桌面网关远程桌面管理界面Next Terminal - 又一个远程桌面网关RDP 连接 Windows ServerNext Terminal - 又一个远程桌面网关SSH 连接 Linux ServerNext Terminal - 又一个远程桌面网关新增远程桌面实例

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据