用go语言编写的基于web的远程terminal

1. 介绍 simple-web-terminal是一个用go语言和javascript编写的运行在浏览器的web应用,同时支持windows,mac,linux等平台,我们可以用它通过浏览器在服务器执行shell,上传下载文件。
仓库链接: https://github.com/kompasim/s...
下载链接:https://github.com/kompasim/s...
该程序用golang在服务器启动一个启动一个http服务器,并在客户端用js的websocket和服务器通讯实现在浏览器输入命令在服务器执行。
【用go语言编写的基于web的远程terminal】警告:不知道自己在做什么的情况下不要轻易的把这个程序放到自己的服务器上,用这个程序可以执行任何系统命令,这个很不安全。
2. 使用方法 我们只需从它的release页面下载我们平台对应的可执行文件,并双击运行即可。之后我们会在控制台窗口看到如下信息:
用go语言编写的基于web的远程terminal
文章图片

然后我们访问http://127.0.0.1:7777可以在浏览器看到如下ui界面:
用go语言编写的基于web的远程terminal
文章图片

我们可以在该网页输入我们启动程序的电脑所能执行的所有命令。
3. 可用命令 除了服务器上的所有命令之外,terminal还提供了方便使用的文件上传,下载和编辑等功能性命令,非常方便。支持的命令列表如下:

  • help : 打印帮助信息
  • stop : 在服务器关闭该terminal程序进程
  • save : 保存当前web页面上的日志
  • exit : 关闭当前网页和服务器的socket网页
  • shell : 设置执行系统命令的shell(powershell,sh,bash)
例子: shell powershell
  • coding : 设置输出日志的编码(例如用powershell的时候可以设置成gbk来输出中文)
例子: coding gbk
  • static : 跳转到该程序提供的静态服务器网页
  • scp : 上传或下载文件
使用scp ./test.txt命令开启下载流程,从服务器上terminal当前工作的目录下载文件到本地
使用scp ./命令启动选择文件窗口,上传本地文件到服务器上terminal当前工作的目录
用go语言编写的基于web的远程terminal
文章图片

  • vim : 在网页实现的简单编辑器,可以直接编辑服务器上的文件
用go语言编写的基于web的远程terminal
文章图片

  • 其他 : 除了这些你还可以直接执行服务器执行的所有命令
4. 启动参数 您可以在服务器启动该程序的时候给一些参数来修改一些默认行为,支持的参数如下
port : 设置terminal运行的端口 (默认为777)
shell : 默认使用的shell
coding : 默认使用的编码
static : 是否在当前目录启动静态资源服务器 (默认为true)
pass : 网页terminal的密码,如果你希望打开网页时候输入密码来确认身份可以设置一个密码(默认没有密码,随便一个人打开就可以用)
例子: 启动要给默认使用gbk编码的powershell,并且密码为5555,带了静态资源服务器的terminal
用go语言编写的基于web的远程terminal
文章图片

参考连接 该程序以学习为目的阅读以下内容,并根据学习到知识用golang和javascript实现,感兴趣可以点击打开看看。
  • character-set conversion library implemented in Go
  • A fast, well-tested and widely used WebSocket implementation for Go.
  • How do I get the local IP address in Go?
  • How to generate an MD5 file hash in JavaScript/Node.js?
  • Using HTML5/JavaScript to generate and save a file

    推荐阅读