WebTTY:用 WebRTC 直接共享终端,不用搭服务器
文章目录
- WebTTY:用 WebRTC 直接共享终端,不用搭服务器
- 它解决什么问题
- 安装
- 使用方法
- 单向连接模式
- 终端尺寸
- 适合谁用
WebTTY:用 WebRTC 直接共享终端,不用搭服务器
WebTTY 是一个终端会话共享工具,基于 WebRTC 协议工作。不需要搭建代理服务器,不依赖第三方平台,两个人之间直接建立连接。你的朋友可以实时看到你的终端操作,甚至接管控制权。调试服务器、排查问题、远程协助,都变得简单直接。
截至目前,这个项目在 GitHub 上有 2810 个 Star。
它解决什么问题
远程协作的时候,经常需要让别人看到你的终端。传统做法要么搭 SSH 服务器,要么用 screen/tmux 加端口转发,要么依赖第三方平台。每种方案都有门槛:SSH 要配密钥和防火墙,端口转发遇到 NAT 就歇菜,第三方平台要注册账号还得信任它们的数据安全。
WebTTY 用 WebRTC 搞定了这些。WebRTC 本来是浏览器做音视频通话的协议,天然支持 NAT 穿透,传输过程端到端加密。WebTTY 把这个能力搬到了终端共享上。两个人各跑一条命令,连接就通了。
安装
两种方式。
直接从 releases 页面下载预编译的二进制文件,解压就能用。
或者用 Go 安装,需要 Go 1.9 以上版本:
go install github.com/maxmcd/webtty@latest使用方法
主机执行webtty,终端会输出一串连接数据。把这串数据发给对方,对方在自己的终端里运行:
webtty <连接数据>连接就建立起来了。对方能看到你的终端,可以输入命令。整个过程不需要配置任何东西。
如果对方没有装命令行工具,也可以用浏览器打开项目提供的静态页面,粘贴连接数据直接连。浏览器里也能正常操作。
单向连接模式
默认的 WebTTY 连接需要双方交换连接数据。加-o标志可以改成单向模式:
webtty -o这个模式下,主机会把连接数据上传到一个公共服务,生成一个链接。接收方访问这个链接就能完成连接。适合用在构建服务器上,出错的时候自动输出一个 WebTTY 链接,任何人都能接进去调试。
连接数据在上传前会加密,加密密钥跟连接数据一起传输。即使公共服务被攻破,数据也是安全的。
终端尺寸
默认情况下 WebTTY 会让客户端的终端尺寸跟主机一致。如果显示有问题,可以配合 tmux 使用:
tmux new-session -s shared webtty -ni -cmd tmux attach-session -t sharedtmux 会自动把会话调整到最小终端视口的尺寸,两边都不会出现显示错位。
适合谁用
需要远程调试服务器的运维人员,经常跟同事 pair programming 的开发者,给客户做远程技术支持的技术人员,都能用上。不需要注册账号,不需要安装客户端,不需要配置服务器,两条命令搞定。
amming 的开发者,给客户做远程技术支持的技术人员,都能用上。不需要注册账号,不需要安装客户端,不需要配置服务器,两条命令搞定。