Homelab 的端口困境
如果你在家里或自己的小服务器上跑过多个服务,一定遇到过这种烦恼:Plex 在 32400 端口,Nextcloud 在 8080,Home Assistant 在 8123,qbittorrent 在 8081……每个服务都要记住一串数字,防火墙还要开放一堆端口。时间一长,不仅自己记不住,公网暴露的面也越来越大。
反向代理就是解决这个问题的标准答案。但传统 Nginx 配置对很多人来说门槛不低——要写 server 块、location 规则、SSL 证书路径,改错一个字符就起不来。Nginx Proxy Manager 的价值,就是把这些复杂的配置变成点点鼠标就能完成的事。
Nginx Proxy Manager 是什么
Nginx Proxy Manager(简称 NPM)是一个基于 Nginx 和 Docker 的图形化反向代理管理工具。它把 Nginx 的核心能力(反向代理、负载均衡、SSL 证书、访问控制)包进了一个干净的 Web UI 里,同时底层仍然是标准的 Nginx 配置,所以性能和稳定性都有保障。
它的作者 jc21 把它开源在 GitHub 上,Docker 镜像名就是 jc21/nginx-proxy-manager。2026 年的最新版本已经支持 Let’s Encrypt 泛域名证书、DNS challenge、访问列表、404/500 自定义页面等高级功能,对于个人 Homelab 来说完全够用。
安装:Docker Compose 一键启动
最推荐的部署方式是 Docker Compose。下面是一份可以直接复制使用的配置:
version: '3'
services:
npm:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "81:81"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
说明几点:
- 80 和 443 是 Nginx 的 HTTP/HTTPS 入口,必须映射到宿主机。
- 81 是管理后台的端口,部署后通过 http:// 服务器 IP:81 访问。
- 两个 volume 分别保存配置数据和 Let’s Encrypt 证书,删除容器也不会丢失。
保存为 docker-compose.yml 后,执行 docker compose up -d,大概 30 秒就能跑起来。
初始化配置
首次打开管理后台,用默认账号登录:
- 邮箱:admin@example.com
- 密码:changeme
登录后系统会强制你修改邮箱和密码。建议顺手把默认账号删掉,新建一个自己的管理员账号。然后进入 Settings → SSL Certificates,这里可以上传自己的证书,也可以直接申请 Let’s Encrypt 免费证书。
添加第一个代理主机
假设你已经在内网跑了一个服务,地址是 http://192.168.1.100:8123,你希望通过 https://home.example.com 访问它。操作步骤如下:
- 点击 Hosts → Proxy Hosts → Add Proxy Host。
- Domain Names 填入
home.example.com。 - Forward Hostname / IP 填入
192.168.1.100。 - Forward Port 填入
8123。 - 打开 Block Common Exploits,开启基础 WAF 规则。
- 在 SSL 标签页选择之前申请好的证书,勾选 Force SSL 和 HTTP/2 Support。
- 保存。
整个过程不到一分钟,不需要手写任何 Nginx 配置。如果你用的是 Cloudflare 做 DNS,还可以在 NPM 里用 DNS challenge 申请泛域名证书,一次配好,所有子域名都能自动 HTTPS。
访问控制:给敏感服务加一道锁
不是所有服务都适合直接暴露到公网。NPM 的 Access Lists 功能可以基于 IP 段或 HTTP 基本认证来做限制。比如你的管理类服务,可以只允许家庭内网 IP 访问;或者给某个服务加上用户名密码,即使域名被扫到也不会直接暴露。
配置方式也很简单:在 Access Lists 里创建一个规则,然后在代理主机的 Access 标签页选择它即可。这个底层就是 Nginx 的 allow/deny 和 auth_basic,但完全不需要你接触配置文件。
适合谁用
Nginx Proxy Manager 最适合已经会一点 Docker、但不想在 Nginx 配置上花太多时间的人。它不是企业级方案,但个人服务器、家庭内网、小型 VPS 场景下非常顺手。如果你还在用记端口的方式管理服务,值得一试。
好的工具不是增加复杂度,而是把复杂度藏起来。Nginx Proxy Manager 没有取代 Nginx,只是让大部分人用不到那 80% 的复杂配置。