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代码
- 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代码
- wget https://downloads.apache.org/guacamole/1.5.5/source/guacamole-server-1.5.5.tar.gz
- tar -xzf guacamole-server-1.5.5.tar.gz
- cd guacamole-server-1.5.5
- ./configure --with-init-dir=/etc/init.d
XML/HTML代码
- make && make install && ldconfig
4.配置 Guacamole-Server
XML/HTML代码
- 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
5.启动 guacd 服务
XML/HTML代码
- # 重载服务
- systemctl daemon-reload
- # 开机自启
- systemctl enable guacd
- # 启动服务
- systemctl start guacd
- # 查看状态
- systemctl status guacd
二、安装字体
1.安装字体管理软件
XML/HTML代码
- # Debian10+系统
- apt -y install ttf-mscorefonts-installer
- #Debian9系统
- wget http://httpredir.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.8_all.deb
- sudo dpkg -i ttf-mscorefonts-installer_3.8_all.deb
- #如果提示缺乏依赖就按提示修复一下
2.下载字体
XML/HTML代码
- cd /usr/share/fonts/
- # 下载英文字体
- wget https://gitee.com/dushixiang/next-terminal/raw/master/guacd/fonts/Menlo-Regular.ttf
- # 下载中文字体
- wget https://gitee.com/dushixiang/next-terminal/raw/master/guacd/fonts/SourceHanSansCN-Regular.otf
3.更新一下字体
XML/HTML代码
- mkfontscale
- mkfontdir
- fc-cache
三、安装 Next Terminal
1.下载安装包
XML/HTML代码
- wget https://gitee.com/dushixiang/next-terminal/releases/download/v1.3.9/next-terminal.tar.gz
2.解压
XML/HTML代码
- tar -zxvf next-terminal.tar.gz -C /usr/local/
XML/HTML代码
- 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
- # 当设置下面两个参数时会自动开启https模式(前提是证书文件存在)
- # cert: /root/next-terminal/cert.pem
- # key: /root/next-terminal/key.pem
- # 授权凭证和资产的密码,密钥等敏感信息加密的key,默认`next-terminal`
- #encryption-key: next-terminal
- guacd:
- hostname: 127.0.0.1
- port: 4822
- # 此路径需要为绝对路径,并且next-terminal和guacd都能访问到
- recording: '/usr/local/next-terminal/data/recording'
- # 此路径需要为绝对路径,并且next-terminal和guacd都能访问到
- drive: '/usr/local/next-terminal/data/drive'
- sshd:
- # 是否开启sshd服务
- enable: false
- # sshd 监听地址,未开启sshd服务时此配置不会使用
- addr: 0.0.0.0:8089
- # sshd 使用的私钥地址,未开启sshd服务时此配置不会使用
- key: ~/.ssh/id_rsa
4.执行以下命令创建 next-terminal 系统服务文件
XML/HTML代码
- cat <<EOF >> /etc/systemd/system/next-terminal.service
- [Unit]
- Description=next-terminal service
- After=network.target
- [Service]
- User=root
- WorkingDirectory=/usr/local/next-terminal
- ExecStart=/usr/local/next-terminal/next-terminal
- Restart=on-failure
- LimitNOFILE=1048576
- [Install]
- WantedBy=multi-user.target
- EOF
5.启动 Next-Terminal 服务
XML/HTML代码
- # 重载服务
- systemctl daemon-reload
- # 开机启动
- systemctl enable next-terminal
- # 启动服务
- systemctl start next-terminal
- # 查看状态
- systemctl status next-terminal
至此Next-Terminal安装完成,默认8088端口,可以使用Nginx反代,官方推荐使用 nginx 等web服务器反向代理 next-terminal 使用,一是可有效避免伪造 IP 绕过系统限制,二是开启 https 后可无缝同步系统粘贴板
XML/HTML代码
- #nginx 反向代理示例
- location / {
- proxy_pass http://127.0.0.1:8088/;
- proxy_set_header Host $host;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- }