IT 手制品

悠云闲语

webshell分发器(ttyhttpd)

ttyhttpd

项目简介

本项目基于 tinyhttpd 实现,是一个轻量级的 HTTP 服务器,扩展了云会话功能,允许用户通过浏览器访问本机 Shell。

功能说明

  1. HTTP 服务器

    • 支持简单的 HTTP 请求处理(如 GET 方法)。
    • 返回 ttyd 地址,并生成一次性密码,通过邮件发送给用户。
  2. 云会话功能

    • 内网访问:提供在内网范围内的任意设备访问本机 Shell。
    • 一次性密码:生成随机密码并通过邮件发送,确保最低级别的安全性。
    • 自动关闭:会话结束后自动关闭,避免长期占用。
  3. 守护进程模式

    • 支持以守护进程(daemon)模式运行,确保服务在后台持续运行。

使用场景

  • 远程协作:团队成员可以通过浏览器访问同一终端,实时协作。
  • 临时访问:生成一次性密码,避免长期暴露 Shell 访问权限。
  • 教学演示:用于演示终端操作或网络编程示例。

安全性说明

  • 密码保护:每次启动会话时生成随机密码,并通过邮件发送。
  • 内网限制:默认仅允许内网访问,避免暴露到公网。
  • 短期会话:会话结束后自动关闭,避免长期占用。

快速开始

  1. 编译运行

    make
    ./ttyhttpd
  2. 访问终端

    1. 打开浏览器访问 http://<服务器IP>:53327/new
    2. 打开展示的链接地址
    3. 输入一次性密码(通过邮件获取)即可进入终端。

配置说明

# ttyhttpd 配置文件
## ttyd cmd
ttyd_command = ttyd -u 1000 -p %d -m 1 -o -c ttyd:%s zellij
## s-nail cmd
mail_command = echo "pwd: %s" | s-nail -s "ttyhttpd pwd" demo@mail.com
## httpd port
httpd_port = 53327
## ttyd port
ttyd_port = 53328
## lan ip
lan_ip = 1.2.3.4
## dev=true, disable daemon mode
dev = false

依赖项

  • ttyd:webshell,用于浏览器终端使用。
  • s-nail:mailclient,用于发送邮件通知。

tinyhttpd README

tinyhttpd README

原版 tinyhttpd 是一个简单的 HTTP 服务器,用于教学和测试。更多信息请参考 tinyhttpd 原版仓库

0%