有比较好用的web终端开源项目

文章介绍了多个开源的Web终端项目,如xterm.js(前端终端模拟器)、ttyd(通过浏览器访问命令行工具)、WebSSH(Web-basedSSH客户端)和ShellInABox(AJAX式终端模拟器)。每个项目都有其特点和适用场景,例如xterm.js适合自定义前端并搭配后端服务,ttyd提供完整的解决方案,WebSSH适用于SSH连接,而ShellInABox基于C++实现。用户应根据需求选择,并注意安全性和配置要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                    有比较好用的web终端开源项目

有许多开源的web终端项目可供参考或直接使用:

  1. xterm.js:一个在前端运行的终端模拟器,它旨在创建一个类似于Unix shell的环境。然而,它仅仅提供终端用户界面,你需要为其配备一个后端来执行实际的命令。部署相对简单,因为它是一个纯前端项目,可以直接在任何能运行HTML和JavaScript的环境中使用。它有很多配置选项可以修改,也可以轻松地与其他JavaScript项目集成。但是,由于它只是一个终端模拟器,并不提供实际执行命令的后端,所以你需要另外提供一个后端服务。

  2. Github:

    GitHub - xtermjs/xterm.js: A terminal for the web

官网  http://xtermjs.org/

        代码:

              GitHub - RedJue/web-terminal

  1. ttyd:一个使用 C、HTML 和 JavaScript 编写的,可以通过浏览器访问命令行接口的工具。它使用 libwebsockets 提供 WebSocket 服务,后端使用 tty(终端)。部署相对简单,只需在服务器上安装ttyd即可。你可以通过命令行参数来配置ttyd,但是修改ttyd的源代码可能需要C语言的知识。

    Github: GitHub - tsl0922/ttyd: Share your terminal over the web

  2. WebSSH:一个使用Web技术(HTML、CSS、JavaScript)实现的SSH客户端,允许你通过浏览器访问远程SSH服务器。由于浏览器的限制,WebSSH 需要一个运行在服务器端的 WebSSH 代理来实现SSH通信。部署需要一些步骤,包括在服务器上设置WebSSH代理。WebSSH的前端部分使用JavaScript编写,可以相对容易地修改。然而,修改后端代理可能需要Python的知识。

    Github: GitHub - huashengdun/webssh: Web based ssh client

比较好的开源项目:

mirrors / huashengdun / webssh · GitCode

参考博客:

超强功能WebSSH安装,解决Web远程SSH终端_鳄鱼儿的博客-CSDN博客

  1. 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时没有反应,可能有几个原因导致:

  1. 检查shellinabox服务是否正在运行:使用以下命令检查服务的状态:

sudo service shellinabox status

如果服务未运行,请尝试手动启动它:

sudo service shellinabox start

  • 检查端口是否被占用:确保4200端口没有被其他应用程序占用。您可以使用以下命令检查端口的占用情况

  • sudo netstat -tuln | grep 4200

    如果端口已被占用,您可以尝试更改shellinabox的配置文件中的端口号。

  • 防火墙设置:检查系统的防火墙设置,确保4200端口允许传入的连接。您可以使用以下命令查看防火墙规则:

  1. 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可能值得考虑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值