简述
ttyd 是一个 C 语言编写的命令行程序,可以把任意命令行程序分享到网页上操作,可以看做是个网页版的远程终端,支持 Linux、macOS、FreeBSD系统,还可以运行在 OpenWrt/LEDE 之类的嵌入式系统上。
tsl0922/ttyd Repo
Download Releases
功能特色
- C 语言编写,在速度和内存占用上相比其它实现有一些优势
- 网页和服务器端使用 Websocket 通信(基于 libwebsockets)
- 前端使用 Chromium hterm 实现终端模拟,功能完备(已换为对中文输入更友好的 Xterm.js)
- 客户端和服务器端支持 SSL 加密通信(基于 OpenSSL)
- 支持配置用户名密码认证(Basic Auth)
- 支持使用lrzsz 传输文件(ZMODEM 协议)
- 可以执行任意命令行程序,不只是 bash 之类的 shell
- 跨平台支持,可以在 Linux、macOS、OpenWrt 、Windows下运行
安装说明
Liunx/Centos/Debian/Ubuntu
https://github.com/tsl0922/ttyd/releases中根据系统配置下载对应已编译文件
#根据系统配置下载
wget -O ttyd https://github.com/tsl0922/ttyd/releases/download/1.6.3/ttyd.x86_64
#将文件名重命名ttyd(可不改)
mv ./ttyd.x86_64 ttyd
#添加执行权限
chmod +x ttyd
#或者
#chmod u+x ttyd
#移动目录(该移动后可全局使用)
mv ttyd /usr/sbin
#查看版本号确认安装成功
ttyd -v
Windows
该ConPTY在主加入现在的支持,你可以下载一个预编译的二进制从最近的行动构建win10(1809或更高版本)。对于win10 1809下的windows版本,您仍然可以使用下面的说明使用MSYS2构建ttyd
MSYS2构建
ttyd 可以在 Windows 上使用MSYS2构建。构建指令从 master 分支中删除,请参考旧版本:https : //github.com/tsl0922/ttyd/tree/1.5.2/msys2。
注意:由于pty 不兼容问题,本机 Windows 控制台程序可能无法正常工作。作为一种变通方法,您可以使用winpty作为一个包装调用Windows程序,如:
ttyd winpty cmd
。
OpenWrt
opkg install ttyd
MacOS
先安装 homebrew,使用homebrew安装
brew install ttyd
使用说明
ttyd命令大全
ttyd is a tool for sharing terminal over the web
USAGE:
ttyd [options] <command> [<arguments...>]
VERSION:
1.6.3
OPTIONS:
-p, --port 端口监听 (默认: 7681, 使用 `0` 即随机生成端口)
-i, --interface 网络接口绑定(例如:eth0),或 UNIX 指定socket路径(例如:/var/run/ttyd.sock)
-c, --credential 基本身份验证凭证 (格式: 用户名:密码)
-u, --uid 用User id运行
-g, --gid 用Group id运行
-s, --signal 退出时发送给命令的信号 (默认: 1, SIGHUP)
-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 间隔(秒) (默认: 300)
-6, --ipv6 IPv6支持开关
-S, --ssl SSL支持开关
-C, --ssl-cert SSL 证书文件地址
-K, --ssl-key SSL key 文件地址
-A, --ssl-ca 客户端证书验证SSL CA文件地址
-d, --debug 设置日志级别 (默认级别: 7)
-v, --version 查看版本编号
-h, --help 帮助
ttyd启动
#在ttyd文件目录下执行
nohup ./ttyd -p 888 bash > ./ttyd.log &
#mv ttyd /usr/sbin有配置环境
ttyd -p 888 bash
ttyd关闭
ps -ef| grep ttyd
kill对应的进程即可