rtc-bridge:从浏览器建立 TCP 隧道,原理解析
10 条
大多数个人项目和家庭实验室服务不必公开,但需要能够访问。我想在任何地方,用自己的任何设备访问开发工具、内部面板和副业项目,而不用开放端口、暴露 IP,也不用担心互联网中的谁会偶然发现它们。
这篇文章介绍我如何用 Tailscale、Docker、Caddy 和 DNS 重写,构建一个随处可达、对公网隐形的入口引擎。最终是一套基于域名的私有环境,像一个小型云:有 HTTPS、整洁的主机名和反向代理,但只有我能访问,运行在自己的机器上,完全不暴露到公共互联网。
我想给博客加上第一方访问分析,又不想把流量数据交给 SaaS 厂商。Umami 完全符合需求:开源、可自托管、尊重隐私。我本来就有一台全天在线的小型 VPS,分出一点资源给 Umami,感觉正合适。
关掉常见的追踪器后,访问分析就成了盲区。我需要一个这样的方案:
如果你也想让手机成为完整的开发工作室,随手就能使用 SSH、实时预览和整套工作流,那么这个故事就是写给你的。一次小小的 Tailscale 实验,彻底改变了我构建项目、写代码和保持连接的方式。从私有开发环境到浴缸里写代码,没错,是真的,下面说说它们是怎么串起来的。
每一节都在前一节的基础上推进,直到最后那个“真不敢相信,我的手机已经是一整间开发工作室”的时刻。如果可以,请从头读完,后面的收获值得。
Rust 是这个时代设计最用心的语言之一,但在 macOS 上安装它,却莫名让人摸不着头脑。常见建议是运行 curl https://sh.rustup.rs | sh 这样的一行命令。它确实很好用,却隐藏了许多幕后过程。对于更重视安全,或只是想知道装了什么、装在哪儿的开发者来说,这种默认方式很像一个黑箱。
这篇文章会介绍在 macOS 上安装和管理 Rust 的不同方法:Homebrew 的便利、rustup 的灵活,以及手动安装或容器环境的透明度。目标很简单:在保留实用性的同时,让你了解过程并掌握控制权。
最近,我在 VPS 上用 Docker 和 Nginx 配好 Umami 几小时后,发现一个配置错误把管理后台暴露到了公网。幸好没有立即造成危险。我在创建 Umami 的 Docker 实例后就马上修改了管理员用户名和密码,也在出事之前收紧了访问权限。不过,这仍然让我紧张了一阵:部署时的小失误,后果可能很大。
下面说说事情的经过,以及我从中学到的东西。
今天大半天,我都在让 Umami 统计与一个经过 Cloudflare 和 Nginx 代理的静态博客配合起来。追踪脚本在 Safari 中有 CORS 问题,而在 Firefox 中,开发者工具的 Network 标签页什么也看不到。
这篇记录了我如何沿着线索,从神秘重定向追到幽灵般的 CORS 问题,最后找到 Firefox 隐身的 sendBeacon API。
过去几周,我花了不少时间试用 Tailscale,它很快成了我最喜欢的工具之一。
如果你还没听说过,Tailscale 是一款基于 WireGuard、安全又易用的网状 VPN。无论设备在世界哪里,它都能让它们像处于同一个局域网一样相互通信。
多年来,我总觉得写代码离不开书桌:面前摆着 Mac、完整键盘和完整 IDE。但最近我开始畅想:如果能把整间创意编程工作室装进口袋呢? 不只是 SSH 访问,而是真正由 AI 辅助的环境,让我随处写代码、提交改动、预览项目。
这篇博客一半是技术过程,一半是个人感想。它讲述了我如何探索 Cloudflare Tunnel、发现 Tailscale、用 tmux 和 iTerm 完善工作流,最终获得把一台完整 Mac 装进口袋的自由。