Repolode
butlerx

butlerx/wetty

一个通过网页浏览器访问的终端工具,基于 xterm.js 和 WebSocket 实现。

Star
5,479
Fork
771
未关闭 Issue
15
最近提交
昨天

这是什么?

WeTTY 让你在浏览器里直接使用终端。它以 Node.js 启动服务,提供基于 xterm.js 的终端页面,并通过 WebSocket 把输入输出转发到本地 shell 或 SSH 服务器。相比 Ajaxterm、Anyterm 等早期网页终端,它使用 WebSocket 而非 Ajax 轮询,击键响应更快。

以 root 身份运行时,WeTTY 会启动 /bin/login,用户可自行输入用户名;否则默认通过 ssh 连接 localhost。通过参数可指定远程主机、端口和用户,支持密码或公钥认证。服务端要求显式配置允许访问的浏览器来源。它可以通过 npm 安装、使用 Docker 镜像运行,也可放在 nginx 或 traefik 等反向代理之后启用 HTTPS。

核心功能

  • 01借助 xterm.js 在浏览器中提供完整的终端模拟。
  • 02基于 WebSocket(Socket.IO)传输输入输出,延迟较低。
  • 03可连接本地登录 shell,也可连接远程 SSH 服务器。
  • 04支持 SSH 密码和公钥认证。
  • 05需要配置允许的来源列表,并支持自定义基础路径。
  • 06提供 npm 包和 Docker 镜像。

适用场景

  • 让团队成员无需本地 SSH 客户端,直接通过浏览器访问服务器。
  • 在内网机器上通过反向代理提供网页终端。
  • 在没有终端应用的设备上访问家用服务器或实验室机器。

快速上手

  1. 1

    使用 npm 全局安装 WeTTY

    npm -g i wetty
  2. 2

    指定允许的浏览器来源并启动 WeTTY

    wetty --allowed-origin http://yourserver:3000
  3. 3

    在浏览器中打开服务器地址并登录

使用前须知

  • 需要 Node.js 20 或更高版本,以及 make、python、build-essential 等构建工具。
  • 必须显式设置 --allowed-origin 才会接受连接。
  • 提供完整的终端访问权限,因此必须通过 HTTPS 和反向代理进行安全防护。

收录于专题

标签

常见问题

wetty 是什么?
一个通过网页浏览器访问的终端工具,基于 xterm.js 和 WebSocket 实现。 WeTTY 让你在浏览器里直接使用终端。它以 Node.js 启动服务,提供基于 xterm.js 的终端页面,并通过 WebSocket 把输入输出转发到本地 shell 或 SSH 服务器。相比 Ajaxterm、Anyterm 等早期网页终端,它使用 WebSocket 而非 Ajax 轮询,击键响应更快。
wetty 可以免费使用吗?用的什么许可证?
wetty 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
wetty 还在维护吗?
活跃维护中。wetty 最近一次提交是在 2026年11月6日。
wetty 适合用来做什么?
让团队成员无需本地 SSH 客户端,直接通过浏览器访问服务器。 在内网机器上通过反向代理提供网页终端。 在没有终端应用的设备上访问家用服务器或实验室机器。
wetty 怎么安装和运行?
使用 npm 全局安装 WeTTY: npm -g i wetty 指定允许的浏览器来源并启动 WeTTY: wetty --allowed-origin http://yourserver:3000 在浏览器中打开服务器地址并登录
在哪里获取 wetty?
源代码和安装说明在 GitHub 上:https://github.com/butlerx/wetty

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目