更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 使用Wetty在Web浏览器上运行Linux终端的方法

使用Wetty在Web浏览器上运行Linux终端的方法

更新时间:2023-03-09 10:03:25浏览次数:469+次

本文介绍如何使用Wetty在Web浏览器上运行Linux系统终端的方法。使用Wetty的优势很多,比如它是可嵌入的,可以集成到其他基于web的应用程序中,同时,由于SSH服务器和客户端之间的通信必须通过web应用程序,因此具有可审计性,还有它易于访问,因为它不需要在客户端系统上安装本地软件。

使用Wetty在Web浏览器上运行Linux终端的具体操作方法

1、使用Wetty(Web+tty)从Web浏览器访问Linux终端

在使用之前,请在Linux上安装好Wetty,可参考在Linux系统上安装Wetty的方法一文,阅读地址在https://www.hmxthome.com/linux/5092.html。

另外,如果启用了防火墙,则允许端口3000通过防火墙,如下所示:

###Firewalld###

sudo firewall-cmd --zone=public --permanent --add-port=3000/tcp

sudo firewall-cmd --reload

###UFW###

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访问WeTTY web UI,地址格式为http://IP_address:3000/wetty。然后提供您的系统用户名和密码,如下所示:

\

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

2、启用WeTTY自动登录

自动登录功能允许用户在不使用用户名或密码的情况下登录。但出于安全原因,不建议使用此功能。要启用此功能,请首先安装sshpass。

##在RHEL/CentOS/Rocky Linux 8/Alma Linux 8上

sudo yum install sshpass

##在Debian/Ubuntu上

sudo apt install sshpass

现在使用URL登录到服务器,地址格式为http://IP_Address:3000/wetty/ssh/username?pass=password。在URL中,用服务器登录凭据替换用户名和密码。您应该在没有密码的情况下登录。

3、为Wetty创建自签名证书

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

##在RHEL/CentOS/Rocky Linux 8/Alma Linux 8上

sudo yum install openssl

##在Debian/Ubuntu上

sudo apt install openssl

现在生成自签名证书以加密Wetty web流量,如下所示:

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

4、创建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)

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

sudo systemctl restart wetty

5、通过HTTPS访问Wetty Web终端

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

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

##UFW

sudo ufw allow https

##Firewalld

sudo firewall-cmd --zone=public --add-service=https

sudo firewall-cmd --reload

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

\

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

6、使用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将发出一个弹出窗口,其中包含指向本地文件的链接,将显示如下图:

\

到这里,我们已经成功地完成了如何使用WeTTY在Web浏览器上运行Linux系统终端的操作。