记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

Debian/Ubuntu系统原生安装Next-Terminal:一个好用的在线SSH系统

Debian/Ubuntu系统原生安装Next-Terminal:一个好用的在线SSH系统
Next Terminal是使用Golang和React开发的一款HTML5的远程桌面网关,具有小巧、易安装、易使用、资源占用小的特点,支持RDP、SSH、VNC和Telnet协议的连接和管理
Next Terminal基于 Apache Guacamole 开发,使用到了guacd服务
官网只提供了Centos系统的安装,现记录一下在Debian/Ubuntu系统的安装
一、安装Apache Guacamole
1.安装Apache Guacamole-Server依赖文件:
 
XML/HTML代码
  1. apt -y 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
XML/HTML代码
  1. wget https://downloads.apache.org/guacamole/1.5.5/source/guacamole-server-1.5.5.tar.gz
  2. tar -xzf guacamole-server-1.5.5.tar.gz
  3. cd guacamole-server-1.5.5
  4. ./configure --with-init-dir=/etc/init.d
3.编译并安装
XML/HTML代码
  1. make && make install && ldconfig
4.配置 Guacamole-Server
XML/HTML代码
  1. mkdir /etc/guacamole/ && cat <<EOF >> /etc/guacamole/guacd.conf
  2. [daemon]
  3. pid_file = /var/run/guacd.pid
  4. log_level = info
  5.  
  6. [server]
  7. # 监听地址
  8. bind_host = 127.0.0.1
  9. bind_port = 4822
  10. EOF
5.启动 guacd 服务
XML/HTML代码
  1. # 重载服务
  2. systemctl daemon-reload
  3. # 开机自启
  4. systemctl enable guacd
  5. # 启动服务
  6. systemctl start guacd
  7. # 查看状态
  8. systemctl status guacd
二、安装字体
1.安装字体管理软件
XML/HTML代码
  1. # Debian10+系统  
  2. apt -y install ttf-mscorefonts-installer
  3.  
  4. #Debian9系统
  5. wget http://httpredir.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.8_all.deb
  6. sudo dpkg -i ttf-mscorefonts-installer_3.8_all.deb
  7. #如果提示缺乏依赖就按提示修复一下
2.下载字体
XML/HTML代码
  1. cd  /usr/share/fonts/
  2. # 下载英文字体
  3. wget https://gitee.com/dushixiang/next-terminal/raw/master/guacd/fonts/Menlo-Regular.ttf
  4. # 下载中文字体
  5. wget https://gitee.com/dushixiang/next-terminal/raw/master/guacd/fonts/SourceHanSansCN-Regular.otf
3.更新一下字体
XML/HTML代码
  1. mkfontscale
  2. mkfontdir
  3. fc-cache
三、安装 Next Terminal
1.下载安装包
XML/HTML代码
  1. wget https://gitee.com/dushixiang/next-terminal/releases/download/v1.3.9/next-terminal.tar.gz
2.解压
XML/HTML代码
  1. tar -zxvf next-terminal.tar.gz -C /usr/local/
3.在/usr/local/next-terminal下创建或修改配置文件config.yml
XML/HTML代码
  1. db: sqlite  
  2. # 当db为sqlite时mysql的配置无效  
  3. #mysql:  
  4. #  hostname: 172.16.101.32  
  5. #  port: 3306  
  6. #  username: root  
  7. #  password: mysql  
  8. #  database: next-terminal  
  9.    
  10. # 当db为mysql时sqlite的配置无效  
  11. sqlite:  
  12.   file: 'next-terminal.db'  
  13. server:  
  14.   addr: 0.0.0.0:8088  
  15. # 当设置下面两个参数时会自动开启https模式(前提是证书文件存在)  
  16. #  cert: /root/next-terminal/cert.pem  
  17. #  key: /root/next-terminal/key.pem  
  18.    
  19. # 授权凭证和资产的密码,密钥等敏感信息加密的key,默认`next-terminal`  
  20. #encryption-key: next-terminal  
  21. guacd:  
  22.   hostname: 127.0.0.1  
  23.   port: 4822  
  24.   # 此路径需要为绝对路径,并且next-terminal和guacd都能访问到  
  25.   recording: '/usr/local/next-terminal/data/recording'  
  26.   # 此路径需要为绝对路径,并且next-terminal和guacd都能访问到  
  27.   drive: '/usr/local/next-terminal/data/drive'  
  28.    
  29. sshd:  
  30.   # 是否开启sshd服务  
  31.   enable: false  
  32.   # sshd 监听地址,未开启sshd服务时此配置不会使用  
  33.   addr: 0.0.0.0:8089  
  34.   # sshd 使用的私钥地址,未开启sshd服务时此配置不会使用  
  35.   key: ~/.ssh/id_rsa  
#表示注释,不执行,看着烦的可以直接删掉,也可以根据实际情况修改,比如使用mysql数据库而不用sqlite。
4.执行以下命令创建 next-terminal 系统服务文件
XML/HTML代码
  1. cat <<EOF >> /etc/systemd/system/next-terminal.service
  2. [Unit]
  3. Description=next-terminal service
  4. After=network.target
  5.  
  6. [Service]
  7. User=root
  8. WorkingDirectory=/usr/local/next-terminal
  9. ExecStart=/usr/local/next-terminal/next-terminal
  10. Restart=on-failure
  11. LimitNOFILE=1048576
  12.  
  13. [Install]
  14. WantedBy=multi-user.target
  15. EOF
5.启动 Next-Terminal 服务
XML/HTML代码
  1. # 重载服务
  2. systemctl daemon-reload
  3. # 开机启动
  4. systemctl enable next-terminal
  5. # 启动服务
  6. systemctl start next-terminal
  7. # 查看状态
  8. systemctl status next-terminal
至此Next-Terminal安装完成,默认8088端口,可以使用Nginx反代,官方推荐使用 nginx 等web服务器反向代理 next-terminal 使用,一是可有效避免伪造 IP 绕过系统限制,二是开启 https 后可无缝同步系统粘贴板
XML/HTML代码
  1. #nginx 反向代理示例
  2. location / {
  3.     proxy_pass http://127.0.0.1:8088/;
  4.     proxy_set_header Host      $host;
  5.     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  6.     proxy_set_header X-Real-IP $remote_addr;
  7.     proxy_set_header Upgrade $http_upgrade;
  8.     proxy_set_header Connection $http_connection;
  9. }
参考来源:https://docs.next-terminal.typesafe.cn/install/native-install.html

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):