蚊章汇 - gotty
type: channel
link: https://linuxcn.bwsl.wang/tag/gotty/
items: GoTTY：把你的 Linux 终端放到浏览器里面

GoTTY：把你的 Linux 终端放到浏览器里面
type: item
date: 2017-04-25T18:02:01+08:00
description: GoTTY 是一个简单的基于 Go 语言的命令行工具，它可以将你的终端（TTY）作为 web 程序共享。它会将命令行工具转换为 web 程序。它使用 Chrome OS 的终端仿真器（hterm）来在 Web 浏览器上执行基于 JavaScript 的终端。重要的是，GoTTY 运行了一个 Web 套接字服务器，它基本上是将 TTY 的输出传输给客户端，并从客户端接收输入（即允许客户端的输入），并将其转发给 TTY。它的架构（hterm + web socket 的想法）灵感来自 Wetty 项目，它使终端能够通过 HTTP 和 HTTPS 使用。先决条件你需要在 Linux 中安装 GoLang (Go 编程语言) 环境来运行 GoTTY。如何在 Linux 中安装 GoTTY如果你已经有一个可以工作的 Go 语言环境，运行下面的 go get 命令来安装它：# go get github.com/yudai/gotty 上面的命令会在你的 GOBIN 环境变量中安装 GOTTY 的二进制，尝试检查下是否如此：# $GOPATH/bin/ 检查 GOBIN 环境如何在 Linux 中使用 GoTTY要运行它，你可以使用 GOBIN 环境变量并用命令补全：# $GOBIN/gotty 另外，要不带完整命令路径运行 GoTTY 或其他 Go 程序，使用 export 命令将 GOBIN 变量添加到 ~/.profile 文件中的 PATH 环境变量中。export PATH="$PATH:$GOBIN" 保存文件并关闭。接着运行 source 来使更改生效：# source ~/.profile 运行 GoTTY 命令的常规语法是：Usage: gotty [options] <Linux command here> [<arguments...>] 现在用 GoTTY 运行任意命令，如 df 来从 Web 浏览器中查看系统分区空间及使用率。# gotty df -h GoTTY 默认会在 8080 启动一个 Web 服务器。在浏览器中打开 URL：http://127.0.0.1:8080/，你会看到运行的命令仿佛运行在终端中一样：Gotty 查看 Linux 磁盘使用率如何在 Linux 中自定义 GoTTY你可以在 ~/.gotty 配置文件中修改默认选项以及终端，如果该文件存在，它会在每次启动时加载这个文件。这是由 getty 命令读取的主要自定义文件，因此，按如下方式创建：# touch ~/.gotty 并为配置选项设置你自己的有效值（在此处查找所有配置选项）以自定义 GoTTY，例如：// Listen at port 9000 by default port = "9000" // Enable TSL/SSL by default enable_tls = true // hterm preferences // Smaller font and a little bit bluer background color preferences { font_size = 5, background_color = "rgb(16, 16, 32)" } 你可以使用命令行中的 --html 选项设置你自己的 index.html 文件：# gotty --index /path/to/index.html uptime 如何在 GoTTY 中使用安全功能由于 GoTTY 默认不提供可靠的安全保障，你需要手动使用下面说明的某些安全功能。允许客户端在终端中运行命令请注意，默认情况下，GoTTY 不允许客户端输入到TTY中，它只支持窗口缩放。但是，你可以使用 -w 或 --permit-write 选项来允许客户端写入 TTY，但是并不推荐这么做因为会有安全威胁。以下命令会使用 vi 命令行编辑器在 Web 浏览器中打开文件 fossmint.txt 进行编辑：# gotty -w vi fossmint.txt 以下是从 Web 浏览器看到的 vi 界面（像平常一样使用 vi 命令）：Gotty Web Vi 编辑器使用基本（用户名和密码）验证运行 GoTTY尝试激活基本身份验证机制，这样客户端将需要输入指定的用户名和密码才能连接到 GoTTY 服务器。以下命令使用 -c 选项限制客户端访问，以向用户询问指定的凭据（用户名：test 密码：@67890）：# gotty -w -p "9000" -c "test@67890" glances 使用基本验证运行 GoTTYGotty 生成随机 URL限制访问服务器的另一种方法是使用 -r 选项。GoTTY 会生成一个随机 URL，这样只有知道该 URL 的用户才可以访问…