Next Terminal是使用Golang和React开发的一款HTML5的远程桌面网关,具有小巧、易安装、易使用、资源占用小的特点,支持RDP、SSH、VNC和Telnet协议的连接和管理
Next Terminal基于 Apache Guacamole 开发,使用到了guacd服务
官网只提供了Centos系统的安装,现记录一下在Debian/Ubuntu系统的安装
一、安装Apache Guacamole
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 -y
2.获取、解压并配置编译 Guacamole-Server
wget https://pan.bobqu.cyou/Code/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 = 127.0.0.1
bind_port = 4822
EOF
5.启动 guacd 服务
# 重载服务
systemctl daemon-reload
# 开机自启
systemctl enable guacd
# 启动服务
systemctl start guacd
# 查看状态
systemctl status guacd
二、安装字体
1.安装字体管理软件
# Debian10+系统
apt install ttf-mscorefonts-installer -y
#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.下载字体
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.更新一下字体
mkfontscale
mkfontdir
fc-cache
三、安装 Next Terminal
1.下载安装包
https://gitee.com/dushixiang/next-terminal/releases/download/v1.3.2/next-terminal.tar.gz
2.解压
tar -zxvf next-terminal.tar.gz -C /usr/local/
3.在/usr/local/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
# 当设置下面两个参数时会自动开启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 系统服务文件
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 服务
# 重载服务
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 后可无缝同步系统粘贴板
#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;
}
参考来源:https://next-terminal.typesafe.cn/docs/install/native-install.html
2 comments
灌水文章就不要写了,浪费别人时间。第四步骤后面不建立服务文件怎么用第五步的命令启动。
不好意思,我系统有点问题,没看到./configure --with-init-dir=/etc/init.d这一步编译开机自启了。