返回

文章详情

展示 HN:BitBang – 从浏览器访问 NAT 后面的机器,无需账户

Hacker News2026年7月31日 14:41

BitBang CLI 是一个单一静态二进制远程访问多工具:可以打开一个交互式终端,浏览和传输文件,访问远程机器网络上的 Web 应用程序,无需端口转发、配置和账户。在你想要访问的机器上:curl -sSfL bitba.ng/install | sh bitbang serve 会打印出一个 URL。在任何浏览器中打开它,你将获得一个终端、一个文件浏览器和一个到该机器网络的代理——或者使用相同的二进制在另一个终端中通过 bitbang connect <url> 连接。连接是端到端加密和点对点的;bitba.ng 服务器只是引导两个端,随后静默退出。bitbang 是一个单一静态的 Go 二进制文件。它是 BitBang 项目的一部分;这篇白皮书详细涵盖了设计。配对与 6 位代码当你无法粘贴 URL 或扫描二维码时,比如当你在电话中,或在可大声呼喊的距离内,bitbang serve 还会打印出一个短的配对代码。另一方打开 bitba.ng/<code>(或运行 bitbang connect <code>),他们的屏幕会显示第二个 6 位数字,他们会读给你。你输入这个代码以进行批准。中间的机器无法让两个数字匹配,并且配对会保存设备连接凭证以备下次使用,例如 bitbang connect nas1。如果你知道 Magic Wormhole,它的形状类似——一个口头代码安全地引入两台机器。为什么?没有什么需要转发或配置。从 NAT、CGNAT 或一个封闭的网络后面工作——不需要路由器更改、不需要 VPN、不需要隧道守护进程。连接端没有东西要安装。浏览器足够了。当你想要脚本、管道和文件复制时,CLI 可以使用。设计上就是私有的。流量是 WebRTC/DTLS,点对点。信号服务器从不看到它;如果无法直接路径,TURN 中继只会传递密文。没有账户,没有遥测。为什么不直接使用 SSH?bitbang 的形状与 ssh 相似:serve,connect 和 cp 对应 sshd,ssh 和 scp,而 WebRTC 作为传输而不是 TCP。对于你已经可以舒适地 SSH 登录的机器,这个区别大不了多少。但 bitbang 的大部分设计源于我似乎经常遇到的烦恼:远程访问。远程 SSH 访问需要一个入站路径,而在大多数网络中,开启一个规则不是你能够控制的——CGNAT(蜂窝、Starlink、许多 ISP)、企业、大学、市政。因此,实际上你需要加装一个二级系统:Tailscale,一个 VPN,ngrok——另一个安装、另一个账户、另一个需要保持运行的守护进程。bitbang serve 无需开放端口并可以在任何地方工作。设置。SSH 必须在允许你访问之前启用和配置。它默认在 Raspberry Pi OS 中禁用,并且通常只有密钥验证,这意味着你需要先将公钥放到目标机器上。你怎么做到这一点?电子邮件或 USB 硬盘通常是最简单的方式。bitbang 使用 6 位代码交换设置连接——这是你可以安全地通过电话进行的事情,或者跨房间喊出来。它也以普通用户身份运行——不需要 root、守护进程、配置文件。代理。如果你想在该机器的网络上使用 Web 应用程序,SSH 为每个应用提供一个单独的隧道,提前命名。bitbang 代理是通用的:在连接时指定 Web 应用的 URL。浏览器客户端。SSH 需要 SSH 客户端和一个密钥或密码在连接一方。bitbang 只需要一个浏览器——这意味着一个手机、一台借来的笔记本电脑,或从未打开终端的人。把 URL 交给他们,他们会获得你授予的访问权限。使用 bitbang 每个连接都有两个端:一个监听器(bitbang serve,在被访问的机器上运行)和一个连接器(一个浏览器或在进行访问的机器上的 bitbang CLI)。一个监听器 URL 为两种类型的连接器提供服务。监听器:bitbang serve bitbang serve # 所有内容:在一个 URL 上的 shell + 文件 + 代理 bitbang serve shell # 仅终端 bitbang serve files ~/share # 仅文件(添加 -upload 以允许上传) bitbang serve proxy # 代理;在浏览器中选择目标 bitbang serve proxy localhost:8080 # ...或固定一个单独的目标 每个都打印一个二维码、URL 和一个配对代码。从浏览器连接打开 URL。根据提供的内容,你将获得:终端——页面中的完整终端(颜色、调整大小、复制/粘贴)。文件——浏览、预览、下载和上传。代理——输入一个局域网地址(nas.local,192.168.1.10:8080,localhost:3000/admin),并正常使用该应用。登录、cookie、上传和流都能正常工作。从 CLI 连接 bitbang connect <url> # 交互式终端 bitbang connect <url> -- tail -f /var/log/syslog # 一次性命令 bitbang cp <url>:/var/log/app.log ./app.log # 复制文件,scp 样式 bitbang cp - <url>:/tmp/firmware.bin < firmware.bin # stdin/stdout 也有效 每个成功的连接或配对都会保存在 ~/.bitbang/devices.json 中,因此从那时起一个简短的名称就足够了:bitbang connect nas1。安装一行命令检测你的架构(amd64,arm64,armv7),从最新的 GitHub 发布中下载二进制文件,

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡