如何在react应用程序中模拟linux终端



在我的React应用程序中,我需要模拟linux服务器,以便用户可以运行一些测试。对于这个测试,我需要预先安装NMAP和NUCLEI。有人知道我如何在网络应用程序中实现这个终端吗?

我想做一些类似于TryHackMe的AttackBox的事情,但我只需要实时服务器。

这是AttackBox:https://www.youtube.com/watch?v=dbB-0KDLi2o&ab_channel=Joshua17sc

在浏览器中模拟整个操作系统是一项艰巨的任务,您可以使用WASM在浏览器中运行许多程序,您可能可以做一些类似于旧控制台模拟器的工作,但在浏览器中模仿现代linux版本目前是不可行的(据我所知(。

接近TryHackMe的最可行方法是按需启动虚拟机,例如在AWS、GCP、Azure或一些自托管解决方案中。并允许您的用户通过noVNC或基于web的SSH客户端连接到这些虚拟机。

您还可以在单个VM上为每个用户提供一个单独的Docker容器,这更便宜、更容易设置,但也更难保护。

您可以在浏览器中使用xterm.js库并连接到Linux服务器。在服务器上,您可以运行chroot,这样用户将无法访问服务器。另一个想法是在后端运行Docker,每次用户为他连接新容器时都会创建一个容器,但当用户请求访问时,启动时间可能会更长。

最新更新