跳转到内容

网络进阶

容器跑到第五个的时候,你会发现自己在记一堆端口号。这一栏解决的就是这个问题。

从端口到域名

初期访问方式通常是 IP:端口,问题很快显现:端口记不住、没有 HTTPS、换 IP 全部失效、想对外开放时不知道该放行哪些。

反向代理的思路是:一个入口接收所有请求,按域名分发到不同的后端服务

访问方式之前之后
笔记192.168.1.100:5230memos.内网域名
照片192.168.1.100:2283photos.内网域名
监控192.168.1.100:3001status.内网域名

单个应用的配置方法见反向代理与 HTTPS,这里讲多服务场景下的组织方式。

内网也值得用域名和 HTTPS

即使只在局域网里用,域名加证书也有实际价值:浏览器不再报警告、密码管理器能正确识别站点、换 IP 时只需改一处 DNS 记录。

做法有两种:

  1. 公网域名 + DNS 验证签发证书。域名解析到内网地址,证书通过 DNS 验证方式申请,不需要把任何端口暴露到公网。这是推荐做法。
  2. 自建内部 CA。不需要域名,但每台设备都要安装根证书,手机和电视上操作起来很麻烦。

内网 DNS

memos.内网域名 解析到 NAS,需要一个内网 DNS:

  • 在路由器上添加自定义解析记录(最简单,但有些路由器不支持)。
  • 跑一个 AdGuard Home 或类似服务,同时还能顺便过滤广告。
  • 用公网 DNS 直接解析到内网 IP(配置最简单,缺点是内网地址会暴露在公开 DNS 记录里)。

证书自动续期

自动签发的证书有效期通常很短,必须自动续期。配置完成后:

  1. 记下续期任务在哪里、以什么身份运行。
  2. 配置续期失败的告警。证书过期是最典型的「静默失败」——直到某天所有服务一起打不开。
  3. 在日历上记一个检查提醒,第一次续期发生后去确认它真的成功了。

安全提醒

反向代理不等于加了一层防护

反向代理只负责转发。它后面的应用如果有弱密码或漏洞,通过代理一样能被打穿。对外开放之前,逐个确认后端应用本身有认证,且版本较新。

需要对外开放时,优先考虑只把必要的服务放出去,其余走私有网络组网

检查结果

用域名访问每个服务都正常、证书有效且自动续期任务已验证、能说清哪些服务可以从公网访问。

延伸阅读

fnOS 非官方中文使用指南,与飞牛官方无隶属关系。