随处可达、对公网隐形的私有入口引擎
大多数个人项目和家庭实验室服务不必公开,但需要能够访问。我想在任何地方,用自己的任何设备访问开发工具、内部面板和副业项目,而不用开放端口、暴露 IP,也不用担心互联网中的谁会偶然发现它们。
这篇文章介绍我如何用 Tailscale、Docker、Caddy 和 DNS 重写,构建一个随处可达、对公网隐形的入口引擎。最终是一套基于域名的私有环境,像一个小型云:有 HTTPS、整洁的主机名和反向代理,但只有我能访问,运行在自己的机器上,完全不暴露到公共互联网。
5 条
大多数个人项目和家庭实验室服务不必公开,但需要能够访问。我想在任何地方,用自己的任何设备访问开发工具、内部面板和副业项目,而不用开放端口、暴露 IP,也不用担心互联网中的谁会偶然发现它们。
这篇文章介绍我如何用 Tailscale、Docker、Caddy 和 DNS 重写,构建一个随处可达、对公网隐形的入口引擎。最终是一套基于域名的私有环境,像一个小型云:有 HTTPS、整洁的主机名和反向代理,但只有我能访问,运行在自己的机器上,完全不暴露到公共互联网。
我想为自己的 Eleventy 简历项目配一套 Docker 环境,同时用 Puppeteer 生成 PDF。我以为这会很简单。结果并不是。
下面是从零到可用的真实过程,包括一路遇到的报错,以及每个报错到底意味着什么。
我想给博客加上第一方访问分析,又不想把流量数据交给 SaaS 厂商。Umami 完全符合需求:开源、可自托管、尊重隐私。我本来就有一台全天在线的小型 VPS,分出一点资源给 Umami,感觉正合适。
关掉常见的追踪器后,访问分析就成了盲区。我需要一个这样的方案:
最近,我在 VPS 上用 Docker 和 Nginx 配好 Umami 几小时后,发现一个配置错误把管理后台暴露到了公网。幸好没有立即造成危险。我在创建 Umami 的 Docker 实例后就马上修改了管理员用户名和密码,也在出事之前收紧了访问权限。不过,这仍然让我紧张了一阵:部署时的小失误,后果可能很大。
下面说说事情的经过,以及我从中学到的东西。
和许多从 Linux 或服务器环境转过来的开发者一样,我在 Mac 上配置 Docker 时也有些困惑。在 Linux 上,安装 Docker 后就能原生运行。macOS 则不同:没有 Linux 内核,也就没有原生 Docker Engine。这正是 Docker Desktop 和 Colima 这类工具的用武之地。
下面说说我学到的东西。