如何使用 Wetty 在 Web 浏览器上运行 Linux 终端如何使用 Wetty 在 Web 浏览器上运行 Linux 终端如何使用 Wetty 在 Web 浏览器上运行 Linux 终端如何使用 Wetty 在 Web 浏览器上运行 Linux 终端
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何使用 Wetty 在 Web 浏览器上运行 Linux 终端

发表 admin at 2025年2月28日
类别
  • 未分类
标签

系统管理员在日常任务中需要使用诸如 Linux 上的 GNOME 终端之类的应用程序或使用 SSH 客户端(例如 Putty) 连接到远程服务器em>适用于 Windows 系统。

还有另一种奇妙的方法,允许人们通过 HTTP 和 HTTPS 直接从 Web 访问终端。这个工具叫做Wetty,源自两个词web+tty。使用 Wetty,您可以执行在终端上执行的所有操作。它使用 hterm 终端模拟器作为后端,并使用 WebSockets 而不是 JavaScript。

Wetty 具有以下惊人的功能:

  • 它是可嵌入的,可以集成到其他基于网络的应用程序中。
  • 有恢复会话
  • 可审计性,因为 SSH 服务器和客户端之间的通信必须通过 Web 应用程序
  • 通过 Web 应用程序服务器建立通信隧道,从而限制匿名访问。
  • 易于访问,因为它不需要在客户端系统上安装本地软件。

设置先决条件:

在本指南中,我将说明如何使用 Wetty(web+tty) 在 Web 浏览器上运行 Linux 终端。为了运行此安装程序,您需要在系统上安装以下软件。

  • Python
  • 制作
  • Nodejs 版本 14 及以上。
  • 构建必需的
  • git

步骤 1 – 在 Linux 上安装 Wetty

在本指南中,我将演示如何在基于 RHEL 和基于 Debian 的系统上安装 Wetty:

首先,安装所需的依赖项,如下所示。

1.在Linux上安装Git

由于我们将从 GitHub 存储库克隆 Wetty,因此需要安装 git。

##On RHEL/CentOS/Rocky Linux 8/Alma Linux 8
sudo yum install git 

##On Debian/Ubuntu
sudo apt update
sudo apt install git 

2.在Linux上安装Node.JS 14

由于我们需要大于 14 的 NodeJs 版本,因此我们将在 Linux 系统上安装 Node.Js 14,如下所示。

首先安装所需的软件包,即 build-essential 和 Python,如下所示

##On RHEL/CentOS/Rocky Linux 8/Alma Linux 8
sudo yum groupinstall 'Development Tools'
sudo yum -y install ncurses-devel make gcc g++ bc openssl-devel
sudo yum -y install python3

##On Debian/Ubuntu
sudo apt install curl build-essential python3 
sudo apt install libncurses-dev flex libssl-dev libelf-dev bc bison

然后在本地安装 Node.js 14,如下所示。

##On Debian/Ubuntu
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt -y install nodejs

##On RHEL/CentOS/Rocky Linux
sudo dnf module install nodejs:14

验证已安装的节点版本。

$ node -v
v14.18.1

安装纱线。

##On Debian/Ubuntu
sudo apt install gnupg2
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn

##On RHEL/CentOS/Rocky Linux/Alma Linux
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install yarn

3.在Linux上安装WeTTY

现在我们将使用 Yarn 在我们的系统上安装 WeTTY

sudo yarn global add wetty

示例输出:

.....
warning wetty > socket.io > socket.io-parser > [email : Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
warning wetty > socket.io > engine.io > [email : Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email " with binaries:
      - wetty
Done in 33.83s.

安装完成后。导出 PATH 如下。

echo "export PATH=\$PATH:/usr/local/bin" | sudo tee -a /etc/profile
source /etc/profile

如下验证 Wetty 安装。

$ wetty --help
Options:
  --help, -h      Print help message                                   [boolean]
  --version       Show version number                                  [boolean]
  --conf          config file to load config from                       [string]
  --ssl-key       path to SSL key                                       [string]
  --ssl-cert      path to SSL certificate                               [string]
  --ssh-host      ssh server host                                       [string]
  --ssh-port      ssh server port                                       [number]
  --ssh-user      ssh user                                              [string]
  --title         window title                                          [string]
  --ssh-auth      defaults to "password", you can use "publickey,password"
                  instead                                               [string]
  --ssh-pass      ssh password                                          [string]

步骤 2 – 使用 Wetty(web+tty) 从 Web 浏览器访问 Linux 终端

如果您启用了firewalld,请允许端口3000通过防火墙,如下所示。

### Firewalld Firewall ###
sudo firewall-cmd --zone=public --permanent --add-port=3000/tcp
sudo firewall-cmd --reload

### UFW Firewall ###
sudo ufw allow proto tcp from any to any port 3000

使用以下命令在端口 3000 上启动 Wetty Web 界面

$ wetty --host 0.0.0.0 -p 3000

使用以下命令验证 Wetty 的 URL:

echo https://$(curl -s4 icanhazip.com):3000

此时,您可以通过 URL http://IP_address:3000/wetty 访问 WeTTY Web UI

提供您的系统用户名和密码,如下所示。

由于连接不安全,并且您不希望登录凭据通过未受保护的线路传输,因此您可能需要通过 HTTPS 访问 Wetty。我们需要创建一个自签名证书,允许我们通过 HTTPS 访问 Wetty。

步骤 3 – 启用 WeTTY 自动登录。

自动登录功能使用户无需使用用户名或密码即可登录。但出于安全原因,不建议使用此功能。要启用此功能,请先安装 sshpass。

##On RHEL/CentOS/Rocky Linux 8/Alma Linux 8
sudo yum install sshpass

##On Debian/Ubuntu
sudo apt install sshpass

现在使用以下 URL 登录您的服务器:http://IP_Address:3000/wetty/ssh/用户名 ?pass=密码

在 URL 中,将用户名和密码替换为服务器登录凭据。您应该无需密码即可登录。

第 4 步 – 为 Wetty 创建自签名证书

为了能够创建自签名证书,您需要在系统上安装OpenSSL。

##On RHEL/CentOS/Rocky Linux 8/Alma Linux 8
sudo yum install openssl

##On Debian/Ubuntu
sudo apt install openssl

现在生成自签名证书来加密我们的 Wetty 网络流量,如下所示

openssl req -x509 -nodes -days 1095 -newkey ec:<(openssl ecparam -name secp384r1) -subj "/C=GB/ST=None/L=None/O=None/OU=None/CN=None" -out wetty.crt -keyout wetty.key

为创建的文件分配所需的权限

sudo cp wetty.crt /etc/ssl/certs/wetty.crt
sudo mkdir -p /etc/ssl/private/
sudo cp wetty.key /etc/ssl/private/wetty.key
sudo chmod 755 /etc/ssl/certs/wetty.crt
sudo chmod 755 /etc/ssl/private/wetty.key

第 5 步 – 创建 Wetty Systemd 服务。

为了能够管理 WeTTY 服务,即在需要时启动、启用和停止服务,我们需要创建 wetty.service 文件。

使用您最喜欢的编辑器创建如下文件。

sudo vim /etc/systemd/system/wetty.service

在文件中添加以下内容:

[Unit]
Description=WeTTY
After=network-online.target

[Service]
Type=simple
ExecStart=/bin/bash -c "wetty --host 0.0.0.0 -p 3000 --title wetty --ssl-key /etc/ssl/private/wetty.key --ssl-cert /etc/ssl/certs/wetty.crt"
Restart=always
RestartSec=2
TimeoutStopSec=5
SyslogIdentifier=wetty

[Install]
WantedBy=multi-user.target

现在重新加载守护进程,如下所示。

sudo systemctl daemon-reload

使用命令启动并启用 WeTTY。

sudo systemctl enable wetty
sudo systemctl start wetty

检查服务的状态。

$ systemctl status wetty
● wetty.service - WeTTY
   Loaded: loaded (/etc/systemd/system/wetty.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-12-23 11:16:00 EST; 18s ago
 Main PID: 86999 (node)
    Tasks: 13 (limit: 36438)
   Memory: 31.9M
   CGroup: /system.slice/wetty.service
           ├─86999 node /usr/local/bin/wetty --host 0.0.0.0 -p 3000 --title wetty --ssl-key /etc/ssl/private/wetty.key --ssl-cert /etc/ssl/certs/wett>
           └─87010 login -h localhost

Dec 23 11:16:00 localhost.localdomain systemd[1]: Started WeTTY.
Dec 23 11:16:01 localhost.localdomain wetty[86999]: {"base":"/wetty/","label":"Wetty","level":"info","message":"Starting server","port":3000,"ssl":{">
Dec 23 11:16:01 localhost.localdomain wetty[86999]: {"connection":"https","label":"Wetty","level":"info","message":"Server started","port":3000,"time>
Dec 23 11:16:05 localhost.localdomain wetty[86999]: {"label":"Wetty","level":"info","message":"Connection accepted.","timestamp":"2021-12-23T16:16:05>
Dec 23 11:16:05 localhost.localdomain wetty[86999]: {"address":"localhost","label":"Wetty","level":"info","message":"Process Started on behalf of us

如果需要重新启动 WeTTY 服务,请使用以下命令:

sudo systemctl restart wetty

第 6 步 – 通过 HTTPS 访问 Wetty Web 终端

现在,您可以使用生成的证书通过 HTTPS 访问 Wetty。访问 Web 界面的 URL 为 https://IP_Address:3000 或 https://hostname:3000。

如果您的系统上启用了防火墙,请使用以下命令允许 HTTPS 通过它。

##For ufw
sudo ufw allow https

##For Firewalld
sudo firewall-cmd --zone=public --add-service=https
sudo firewall-cmd --reload

现在您应该能够通过 HTTPS 访问您的 Wetty Web 终端,如下所示。

从 Wetty Web 终端,您可以运行与在普通终端上发出的命令类似的所有命令。

第 7 步 – 使用 WeTTY 下载文件。

WeTTY 还支持文件下载。要配置此功能,您需要将以下行添加到 .bashrc

$ sudo vim .bashrc
function wetty-download() {
  printf "\033[5i"$(cat /dev/stdin | base64 -w 0)"\033[4i"
}

获取配置文件。

source .bashrc

现在您可以使用 WeTTY 下载文件了。例如,要下载文件 example.txt,我将按以下步骤操作。

cat example.txt | wetty-download

然后,Wetty 将发出一个弹出窗口,其中显示本地文件 blob 的链接,如下所示。

结论。

这就是结局!我们已经成功了解了如何使用 WeTTY 在 Web 浏览器上运行 Linux 终端。我希望本指南对您很重要。

在此页面上查看更多内容:

  • 10 个最佳 Linux 终端模拟器
  • 适用于 Linux 的顶级基于终端的监控工具
  • 在 Ubuntu/Debian 上安装 Tilix GTK3 平铺终端模拟器
©2015-2025 Norria support@norria.com