有比较好用的web终端开源项目
有许多开源的web终端项目可供参考或直接使用:
-
xterm.js:一个在前端运行的终端模拟器,它旨在创建一个类似于Unix shell的环境。然而,它仅仅提供终端用户界面,你需要为其配备一个后端来执行实际的命令。部署相对简单,因为它是一个纯前端项目,可以直接在任何能运行HTML和JavaScript的环境中使用。它有很多配置选项可以修改,也可以轻松地与其他JavaScript项目集成。但是,由于它只是一个终端模拟器,并不提供实际执行命令的后端,所以你需要另外提供一个后端服务。
官网 http://xtermjs.org/
代码:
-
ttyd:一个使用 C、HTML 和 JavaScript 编写的,可以通过浏览器访问命令行接口的工具。它使用 libwebsockets 提供 WebSocket 服务,后端使用 tty(终端)。部署相对简单,只需在服务器上安装ttyd即可。你可以通过命令行参数来配置ttyd,但是修改ttyd的源代码可能需要C语言的知识。
Github: GitHub - tsl0922/ttyd: Share your terminal over the web
-
WebSSH:一个使用Web技术(HTML、CSS、JavaScript)实现的SSH客户端,允许你通过浏览器访问远程SSH服务器。由于浏览器的限制,WebSSH 需要一个运行在服务器端的 WebSSH 代理来实现SSH通信。部署需要一些步骤,包括在服务器上设置WebSSH代理。WebSSH的前端部分使用JavaScript编写,可以相对容易地修改。然而,修改后端代理可能需要Python的知识。
比较好的开源项目:
mirrors / huashengdun / webssh · GitCode
参考博客:
超强功能WebSSH安装,解决Web远程SSH终端_鳄鱼儿的博客-CSDN博客
-
Shell In A Box (shellinabox):一个通过网页提供 AJAX 式的终端模拟器或 SSH 客户端的工具,后端使用 C++ 编写。部署需要在服务器上安装shellinabox。配置选项可以通过命令行参数来设定,但修改其源代码可能需要C++的知识。
Github: GitHub - shellinabox/shellinabox: Official-ish Fork of Shell In A Box
参考博客Shellinabox安装及使用教程_chuange6363的博客-CSDN博客
shellinabox:一款使用 AJAX 的基于 Web 的终端模拟器_Linux教程_Linux公社-Linux系统门户网站
安装:
sudo apt-get install shellinabox
如果在浏览器中访问http://localhost:4200
时没有反应,可能有几个原因导致:
-
检查
shellinabox
服务是否正在运行:使用以下命令检查服务的状态:
sudo service shellinabox status
如果服务未运行,请尝试手动启动它:
sudo service shellinabox start
-
检查端口是否被占用:确保4200端口没有被其他应用程序占用。您可以使用以下命令检查端口的占用情况
-
sudo netstat -tuln | grep 4200
如果端口已被占用,您可以尝试更改
shellinabox
的配置文件中的端口号。 -
防火墙设置:检查系统的防火墙设置,确保4200端口允许传入的连接。您可以使用以下命令查看防火墙规则:
-
sudo ufw status
如果防火墙处于活动状态,请确保已允许传入的连接到4200端口。
如果上述步骤没有解决问题,请检查系统日志以获取更多详细信息。您可以使用以下命令查看shellinabox
的日志文件:
sudo tail -f /var/log/syslog | grep shellinabox
请注意,虽然这些项目都提供了 web 终端功能,但是在安全性、兼容性和性能等方面都有可能需要额外的调整和配置。在使用这些项目之前,请仔细阅读其文档,并确保理解其安全性如何得到保证,以及如何正确配置和使用。综上所述,如果你主要希望修改前端部分,并且愿意提供自己的后端服务,那么xterm.js可能是最好的选择。如果你希望一个即可用又可以配置的全功能Web终端,ttyd可能是个不错的选择。如果你熟悉Python并且希望在Web终端中提供SSH功能,那么WebSSH可能是一个好选择。如果你熟悉C++并且需要一个全功能的Web终端,Shell In A Box可能值得考虑。