很多自托管服务的问题不在“能不能访问”,而在“暴露以后能不能长期维护”。

Cloudflare Tunnel 的好处是:源站不需要开放公网端口。服务器只要能主动连出 Cloudflare,外部访问就可以通过域名进入服务。

为什么适合家庭服务器和小型 VPS

传统发布方式通常需要:

  • 开放 80/443 端口
  • 配置反向代理
  • 申请和续期证书
  • 维护防火墙规则
  • 面对公网扫描和爆破

使用 Tunnel 后,源站服务可以只监听本机:

```text 127.0.0.1:8088 ```

这样即使服务器公网 IP 被扫到,Web 服务本身也不会直接暴露。

推荐路径规划

如果一个域名下同时跑前台和后台,路径设计要清楚:

路径用途
`/`博客前台
`/posts/*`文章页
`/admin/*`管理后台
`/auth/`、`/server/`、`/items/*`后台 API

前台不要贪心接管所有路径,否则后台 SPA 的资源和 API 很容易被吞掉。

常见坑

1. 后台静态资源 MIME 错误

如果 JS 文件请求到了 HTML,浏览器会报类似错误:

```text Expected a JavaScript module script but the server responded with a MIME type of text/html ```

这通常是路径被错误转发到了前台首页。

2. SPA base path 错误

很多后台管理系统会生成类似:

```html

如果代理又额外加了一层 `/admin`,就可能变成 `/admin/admin/assets/…`。

3. API 路由遗漏

不要只转发 `/admin/*`,很多后台 API 可能在根路径,例如:

```text /auth /server /items /users /files ```

我的建议

最稳的做法是:

  1. 前台只接管明确的博客路径;
  2. 其他路径默认交给后台系统;
  3. 源站只监听 `127.0.0.1`;
  4. 所有外部访问都走 Cloudflare Tunnel。

这样配置简单,后期排错也更清楚。