技术分享

用 DS920+、Nginx 和 Cloudflare Tunnel 搭建网站

不开放家庭路由器端口,把群晖上的静态网站安全发布到互联网。

这次实践的目标很明确:让 NAS 上的网站能够从外网访问,同时不把 DSM 管理界面暴露到互联网。

最终链路

访问者 → Cloudflare → cloudflared 容器 → Nginx 容器 → 静态网页

Cloudflare Tunnel 是由 NAS 主动向外建立连接,因此不需要家庭宽带具备公网 IPv4,也不需要在路由器上开放 80、443 或 5001 端口。

最重要的排障经验

遇到网站打不开时,应判断故障发生在哪一层:

  1. 局域网端口打不开,检查 Nginx 和目录挂载。
  2. Tunnel 显示断开,检查 cloudflared、Token、DNS 和出站网络。
  3. Cloudflare 1101,优先检查 Worker 路由冲突。
  4. Nginx 404,说明请求通常已经到达源站。
  5. TLS 握手失败,请先检查证书和客户端网络,不要急着重建容器。

分层排查比同时修改所有设置更有效,也更不容易破坏已经正常的部分。