如何使用 ttyd 通过网络共享您的 Linux 终端如何使用 ttyd 通过网络共享您的 Linux 终端如何使用 ttyd 通过网络共享您的 Linux 终端如何使用 ttyd 通过网络共享您的 Linux 终端
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

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

如何使用 ttyd 通过网络共享您的 Linux 终端

发表 admin at 2025年2月28日
类别
  • 未分类
标签
コアサーバーV2プランご契約でドメイン更新費用が永久無料

Linux 终端,最好称为命令行界面或shell,是一种基于文本的界面,用于与 Linux 操作系统交互。它允许用户向计算机发出命令并接收基于文本的响应。它还提供了一组强大的工具和实用程序,可用于管理和自定义 Linux 系统。

Linux 终端是高度可定制的,可以根据个人用户的需求进行配置。它支持广泛的命令和实用程序,可用于执行文件管理、网络、软件安装和系统管理等任务。

大多数 Linux 用户更喜欢终端而不是图形用户界面 (GUI),因为它提供了更多的控制和灵活性。然而,它确实需要一些 Linux 命令和语法知识,这对初学者来说可能具有挑战性。通过实践和经验,用户可以熟练使用终端,并可以利用其强大的功能来有效地管理他们的 Linux 系统。

Linux 终端仿真器是允许用户在图形环境中与 Linux 命令行界面 (CLI) 进行交互的软件应用程序。最流行的终端模拟器是 GNOME Terminal、Konsole、Terminator、Tilix、Xfce Terminal 等

今天我将演示如何使用 ttyd 通过 Web 共享 Linux 终端。

ttyd是什么?

ttyd 是一个基于 Web 的终端仿真器和交互式 shell,允许用户从 Web 浏览器访问 Linux 命令行界面 (CLI)。它使用WebSocket协议提供浏览器和Linux终端之间的实时连接。

这个轻量级且易于使用的工具可用于访问远程 Linux 系统或提供对本地 Linux 系统的远程访问。它同时支持多个客户端,允许多个用户连接到同一会话。 ttyd 的优点之一是它不需要在客户端安装任何额外的软件,因为它完全在 Web 浏览器中运行。这使其成为远程系统管理和故障排除的便捷工具。

与 ttyd 相关的其他功能和优点包括:

  • 基于 OpenSSL/Mbed TLS 的 SSL 支持
  • ZMODEM (lrzsz)/trzsz 文件传输支持
  • 支持 CJK 和 IME 的全功能终端
  • 构建在 libuv 和 WebGL2 之上以提高速度
  • Sixel 图像输出支持 (img2sixel/lsix)
  • 运行带有选项的任何自定义命令
  • 基本身份验证支持和许多其他自定义选项
  • 可以安装在 Linux、FreeBSD/OpenBSD、OpenWrt、macOS 和 Windows 系统上的开源软件。它还可以作为命令行工具或 Docker 容器使用。

让我们深入了解一下!

#1.在您的系统上安装 ttyd

ttyd 是一个跨平台应用程序。这意味着它可以轻松安装在 Linux、FreeBSD/OpenBSD、OpenWrt、macOS 和 Windows 系统上。在本指南中,我将演示如何将其安装在:

  • 苹果系统
  • Linux
  • 视窗

A。在 Linux 上安装 ttyd

在 Linux 系统上安装 ttyd 有三种方法。

  • 使用二进制文件

这是所有方法中最简单的方法。它涉及从发布页面提取最新的二进制文件。截至本指南,最新版本为1.7.3。所以导出版本。

VER=$( curl --silent "https://api.github.com/repos/tsl0922/ttyd/releases/latest"| grep '"tag_name"'|sed -E 's/.*"([^"]+)".*/\1/')

现在拉取二进制文件:

##For 64-bit
curl -LO https://github.com/tsl0922/ttyd/releases/download/$VER/ttyd.x86_64

##For aarch64
curl -LO https://github.com/tsl0922/ttyd/releases/download/$VER/ttyd.aarch64

##For arm
curl -LO https://github.com/tsl0922/ttyd/releases/download/$VER/ttyd.arm

##For i686
curl -LO https://github.com/tsl0922/ttyd/releases/download/$VER/ttyd.i686

下载后,将文件移动到您的路径:

sudo mv ttyd.* /usr/local/bin/ttyd
sudo chmod +x /usr/local/bin/ttyd
  • 使用快照

在 Linux 上安装 ttyd 的另一个选项是使用 snap。安装并运行 snap 后,您可以执行以下命令来安装 ttyd:

sudo snap install ttyd --classic
  • 从源代码构建

在 Linux 上安装 ttyd 的另一种方法是从源代码构建它。在 Debian/Ubuntu 上,使用命令:

sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-dev
git clone https://github.com/tsl0922/ttyd.git
cd ttyd && mkdir build && cd build
cmake ..
make && sudo make install

b.在 macOS 上安装 ttyd

ttyd 可以使用两种方法安装在 MacOS 上。

  • 使用 HomeBrew

执行此操作的命令是:

brew install ttyd
  • 使用 MacPorts

使用以下命令:

sudo port install ttyd

C。在 Windows 上安装 ttyd

您可以使用以下方法在 Windows 上安装 ttyd:

  • 使用勺子

在 Windows 系统上安装 scoop 后,您可以使用以下命令安装 ttyd:

scoop install ttyd
  • 使用二进制文件

您还可以下载适用于 Windows 的二进制文件。这可以通过访问发布页面来实现。下载二进制文件后,双击 .EXE 文件进行安装。

#2.使用 ttyd 通过 Web 访问终端

安装后,您可以在 ttyd 中使用多个命令。首先,使用以下命令验证安装:

$ ttyd -v
ttyd version 1.7.3-a8cae75

默认情况下,ttyd 在端口 7681 上启动 Web 服务器。但是,您可以通过 -p 标志设置要使用的所需端口。例如,在端口 8080 上启动 ttyd,命令将为:

$ ttyd -p 8080 bash
[2023/03/03 13:27:56:2786] N: ttyd 1.7.3-a8cae75 (libwebsockets 4.3.2-unknown)
[2023/03/03 13:27:56:2786] N: tty configuration:
[2023/03/03 13:27:56:2786] N:   start command: bash
[2023/03/03 13:27:56:2786] N:   close signal: SIGHUP (1)
[2023/03/03 13:27:56:2786] N:   terminal type: xterm-256color
[2023/03/03 13:27:56:2787] N: lws_create_context: LWS: 4.3.2-unknown, NET SRV H1 WS MbedTLS ConMon IPV6-off
[2023/03/03 13:27:56:2787] N: elops_init_pt_uv:  Using foreign event loop...
[2023/03/03 13:27:56:2788] N: __lws_lc_tag:  ++ [wsi|0|pipe] (1)
[2023/03/03 13:27:56:2788] N: __lws_lc_tag:  ++ [vh|0|netlink] (1)
[2023/03/03 13:27:56:2788] N: __lws_lc_tag:  ++ [vh|1|default||8080] (2)
[2023/03/03 13:27:56:2789] N: [vh|1|default||8080]: lws_socket_bind: source ads 0.0.0.0
[2023/03/03 13:27:56:2789] N: __lws_lc_tag:  ++ [wsi|1|listen|default||8080] (2)
[2023/03/03 13:27:56:2789] N:  Listening on port: 8080
[2023/03/03 13:28:23:6599] N: __lws_lc_tag:  ++ [wsisrv|0|adopted] (1)
[2023/03/03 13:28:23:6604] N: HTTP / - 192.168.205.1
[2023/03/03 13:28:24:6584] N: HTTP /token - 192.168.205.1
......

现在通过浏览器使用 URL http://IP_Address:8080 访问 ttyd。

现在,要为终端添加保护,您可以使用登录标志允许在 Web 浏览器上使用您的系统帐户登录,如下所示:

$ sudo ttyd login
[2023/03/03 13:44:36:3963] N: ttyd 1.7.3-a8cae75 (libwebsockets 4.3.2-unknown)
[2023/03/03 13:44:36:3965] N: tty configuration:
[2023/03/03 13:44:36:3967] N:   start command: login
[2023/03/03 13:44:36:3971] N:   close signal: SIGHUP (1)
[2023/03/03 13:44:36:3973] N:   terminal type: xterm-256color
[2023/03/03 13:44:36:3974] N: lws_create_context: LWS: 4.3.2-unknown, NET SRV H1 WS MbedTLS ConMon IPV6-off
[2023/03/03 13:44:36:3975] N: elops_init_pt_uv:  Using foreign event loop...
[2023/03/03 13:44:36:3976] N: __lws_lc_tag:  ++ [wsi|0|pipe] (1)
[2023/03/03 13:44:36:3977] N: __lws_lc_tag:  ++ [vh|0|netlink] (1)
[2023/03/03 13:44:36:3977] N: __lws_lc_tag:  ++ [vh|1|default||7681] (2)
[2023/03/03 13:44:36:3978] N: [vh|1|default||7681]: lws_socket_bind: source ads 0.0.0.0
[2023/03/03 13:44:36:3979] N: __lws_lc_tag:  ++ [wsi|1|listen|default||7681] (2)
[2023/03/03 13:44:36:3979] N:  Listening on port: 7681
..

现在使用默认端口 http://IP_Address:7681 访问 ttyd

使用系统上的系统信用登录以访问终端。还有其他几个命令和标志可供使用。如需帮助,请使用:

$ ttyd -help
ttyd is a tool for sharing terminal over the web

USAGE:
    ttyd [options] <command> [<arguments...>]

VERSION:
    1.7.3-a8cae75

OPTIONS:
    -p, --port              Port to listen (default: 7681, use `0` for random port)
    -i, --interface         Network interface to bind (eg: eth0), or UNIX domain socket path (eg: /var/run/ttyd.sock)
    -U, --socket-owner      User owner of the UNIX domain socket file, when enabled (eg: user:group)
    -c, --credential        Credential for basic authentication (format: username:password)
    -H, --auth-header       HTTP Header name for auth proxy, this will configure ttyd to let a HTTP reverse proxy handle authentication
    -u, --uid               User id to run with
    -g, --gid               Group id to run with
    -s, --signal            Signal to send to the command when exit it (default: 1, SIGHUP)
    -w, --cwd               Working directory to be set for the child program
    -a, --url-arg           Allow client to send command line arguments in URL (eg: http://localhost:7681?arg=foo&arg=bar)
    -R, --readonly          Do not allow clients to write to the TTY
    -t, --client-option     Send option to client (format: key=value), repeat to add more options
    -T, --terminal-type     Terminal type to report, default: xterm-256color
    -O, --check-origin      Do not allow websocket connection from different origin
    -m, --max-clients       Maximum clients to support (default: 0, no limit)
    -o, --once              Accept only one client and exit on disconnection
    -B, --browser           Open terminal with the default system browser
    -I, --index             Custom index.html path
    -b, --base-path         Expected base path for requests coming from a reverse proxy (eg: /mounted/here, max length: 128)
    -P, --ping-interval     Websocket ping interval(sec) (default: 5)
    -6, --ipv6              Enable IPv6 support
    -S, --ssl               Enable SSL
    -C, --ssl-cert          SSL certificate file path
    -K, --ssl-key           SSL key file path
    -A, --ssl-ca            SSL CA file path for client certificate verification
    -d, --debug             Set log level (default: 7)
    -v, --version           Print the version and exit
    -h, --help              Print this text and exit

Visit https://github.com/tsl0922/ttyd to get more information and report bugs.

#3。在 Linux 上创建 ttyd Systemd 服务

现在,您可以创建一个系统服务,可以像任何其他系统服务一样更轻松地启动、启用和停止该服务。

创建系统服务文件:

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

添加以下行:

[Unit]
Description=ttyd_ComputingforGeeks.com
After=network-online.target

[Service]
Type=simple
ExecStart=/bin/bash -c "ttyd login"
Restart=always
RestartSec=2
TimeoutStopSec=5
SyslogIdentifier=ttyd

[Install]
WantedBy=multi-user.target

重新加载系统守护进程:

sudo systemctl daemon-reload

不停止默认端口 7681 上运行的任何服务:

sudo killall -9 ttyd

停止后,使用以下命令启动服务:

sudo systemctl start ttyd

启用该服务在系统启动时运行:

sudo systemctl enable ttyd

检查服务的状态:

$ systemctl status ttyd
● ttyd.service - ttyd_ComputingforGeeks.com
     Loaded: loaded (/etc/systemd/system/ttyd.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-03-03 13:57:18 EAT; 23s ago
   Main PID: 125928 (ttyd)
      Tasks: 1 (limit: 4575)
     Memory: 176.0K
     CGroup: /system.slice/ttyd.service
             └─125928 ttyd login

Bit 03 13:57:18 computingforgeeks.com ttyd[125928]: [2023/03/03 13:57:18:2937] N:   close signal: SIGHUP (1)
Bit 03 13:57:18 computingforgeeks.com ttyd[125928]: [2023/03/03 13:57:18:2938] N:   terminal type: xterm-256color
Bit 03 13:57:18 computingforgeeks.com ttyd[125928]: [2023/03/03 13:57:18:2939] N: lws_create_context: LWS: 4.3.2-unknown, NET SRV H1 WS MbedTLS ConMon IPV6-off
Bit 03 13:57:18 computingforgeeks.com ttyd[125928]: [2023/03/03 13:57:18:2940] N: elops_init_pt_uv:  Using foreign event loop...
Bit 03 13:57:18 computingforgeeks.com ttyd[125928]: [2023/03/03 13:57:18:2941] N: __lws_lc_tag:  ++ [wsi|0|pipe] (1)
Bit 03 13:57:18 computingforgeeks.com ttyd[125928]: [2023/03/03 13:57:18:2942] N: __lws_lc_tag:  ++ [vh|0|netlink] (1)
Bit 03 13:57:18 computingforgeeks.com ttyd[125928]: [2023/03/03 13:57:18:2943] N: __lws_lc_tag:  ++ [vh|1|default||7681] (2)
Bit 03 13:57:18 computingforgeeks.com ttyd[125928]: [2023/03/03 13:57:18:2944] N: [vh|1|default||7681]: lws_socket_bind: source ads 0.0.0.0
Bit 03 13:57:18 computingforgeeks.com ttyd[125928]: [2023/03/03 13:57:18:2945] N: __lws_lc_tag:  ++ [wsi|1|listen|default||7681] (2)
Bit 03 13:57:18 computingforgeeks.com ttyd[125928]: [2023/03/03 13:57:18:2946] N:  Listening on port: 7681

您可以使用以下命令重新启动服务:

sudo systemctl restart ttyd

判决

这标志着本关于如何使用 ttyd 通过 Web 共享 Linux 终端的指南的结束。现在,您可以从网络中的任何位置通过浏览器访问 Linux shell。我希望这可以帮到你。

相关文章:

  • 如何使用 Wetty 在 Web 浏览器上运行 Linux 终端
  • 使用 theme.sh 轻松更改 Linux/macOS 终端主题
  • 10 个最佳 Linux 终端模拟器
  • 在 Ubuntu/Debian 上安装 Tilix GTK3 平铺终端模拟器
©2015-2025 Norria support@alaica.com