你想将Linux终端会话/应用程序共享到Web浏览器中吗?本文介绍的方法教你实现这个目的。GoTTY是一个小型Go应用程序,专门用于将CLI工具转换为Web应用程序,通过GoTTY,远程用户可以通过网络连接查看在Web浏览器上公开的终端应用程序。
GoTTY下载地址
在Linux下安装GoTTY
当前最新稳定版本是1.0.1,可以使用curl、wget或从Web浏览器手动下载:
wget https://github.com/yudai/gotty/releases/download/v1.0.1/gotty_linux_amd64.tar.gz
提取下载的文件:
tar xvf gotty_linux_amd64.tar.gz
给二进制文件执行位并将其移动到相应文件夹:
chmod +x gotty
sudo mv gotty /usr/local/bin/
检查Gotty版本,可以运行以下命令:
$ gotty -version
gotty version 1.0.1
使用Gotty在Web浏览器下共享Linux终端
安装Gotty后,可以使用--help选项检查其使用的方法:
$ gotty --help
一般用法是:
$ gotty [options] []
以下示例将显示Linux系统的内存和CPU利用率作为Web应用程序,我正在使用htop,参考htop命令_Linux htop命令使用详解:用彩色标识出处理器、swap和内存状态,它可以安装在Ubuntu/Debian系统中:
sudo apt install -y htop
然后运行:
$ gotty htop
2019/01/18 9:07:29 Server is starting with command: htop
2019/01/18 9:07:29 URL: http://127.0.0.1:8080/
2019/01/18 9:07:29 URL: http://[::1]:8080/
2019/01/18 9:07:29 URL: http://192.168.100.27:8080/
2019/01/18 9:07:29 URL: http://[fe80::fa2e:617f:c315:6983]:8080/
2019/01/18 9:07:29 URL: http://192.168.122.1:8080/
默认情况下,GoTTY在端口8080启动Web服务器,但可以更改,打开给定的URL以在Web浏览器下查看命令输出:
GoTTY身份验证
只运行gotty命令不会提供任何用于在Web浏览器下查看终端会话的身份验证系统,使用以下选项为GoTTY配置简单的HTTP身份验证:
--credential user:pass
比如:
$ gotty --credential admin:AdminPass htop
当访问提供的URL时,系统会要求你提供用户名和密码:
在我的示例中,用户名是admin,密码是AdminPass。
使用配置文件
可以使用配置文件自定义GoTTY的默认选项,加载的默认配置文件是~/.gotty。
让我们创建一个在启动GoTTY应用程序时使用的简单配置文件:
cat< ~/.gotty
// Listen at port 19000 by default
port = "19000"
// Enable TSL/SSL by default
enable_tls = true
// Enable basic Authentication
enable_basic_auth = true
credential = "admin:AdminPassword"
// Permit Write - Enable only with Strong Authentication
permit_write = true
// Enable Random URL
random-url = true
如果启用SSL,请在启动gotty之前生成证书:
openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt
然后启动GoTTY终端应用程序进行显示:
$ gotty htop
2019/01/18 9:30:47 Loading config file at: /home/jmutai/.gotty
2019/01/18 9:30:47 Server is starting with command: htop
2019/01/18 9:30:47 URL: https://127.0.0.1:19000/
2019/01/18 9:30:47 URL: https://[::1]:19000/
2019/01/18 9:30:47 URL: https://192.168.100.27:19000/
2019/01/18 9:30:47 URL: https://[fe80::fa2e:617f:c315:6983]:19000/
2019/01/18 9:30:47 URL: https://192.168.122.1:19000/
2019/01/18 9:30:47 TLS crt file: /home/jmutai/.gotty.crt
2019/01/18 9:30:47 TLS key file: /home/jmutai/.gotty.key
与多个客户共享
使用终端多路复用器与多个客户端共享单个进程。
例如,你可以通过以下命令使用top命令启动名为gotty的新tmux会话:
$ gotty tmux new -A -s gotty top
要从终端连接到tmux会话,可以使用以下命令:
$ tmux new -A -s gotty
相关主题