nginx增强版,简单又实用的NAS反代工具,极空间部署NPM Plus
大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享数码玩耍经验~
前言
去年12月份左右,极空间上线DDNS功能,让极空间用户可以通过域名来访问NAS里的各类服务、docker,NAS的可玩性也提升了一个档次。

但是在外网开放的同时,安全问题也不容小觑,虽然极空间内也集成了防火墙、杀毒软件等安全工具,但是面对各式各样的网络攻击,最安全的方案还是更改默认服务的端口,以减少大量的默认端口/默认账号密码扫描和攻击。
在这里,反代就是一个最简单的解决方案,将原有的格式服务端口,通过nginx转发为其它的非标准端口,常见的基于nginx的转发服务包括:lucky、npm、nginx webui等。
今天,我为大家带来的是NPM的增强分支——NPM Plus,它提供了更多的功能和改进,包括免费的 TLS 证书管理、HTTP/3 支持、ModSecurity 集成等,让我们可以更从容的面对网络攻击。
项目特征:
零门槛证书管理:基于 Certbot 实现免费 SSL 证书自动签发/续期,支持通配符证书和泛域名解析
极简可视化操作:通过网页控制台快速配置反向代理、域名重定向、404 托管及流量监控
企业级安全防护:集成 ModSecurity 防火墙规则,联动 CrowdSec 威胁情报库实现入侵防御
前沿协议支持:原生兼容 HTTP/3(QUIC) 协议,优化流媒体传输与高并发访问性能
精细化访问控制:支持 IP 黑白名单、多级权限划分和基础 HTTP 身份验证策略
一、系统部署
首先我们下载NPMP的镜像zoeyvid/npmplus:latest,如果网络不好的,也可以直接从网盘里下载exe文件,双击解压后导入到极空间里。
阿里云盘:https://www.alipan.com/s/kZBJNbmy87V
夸克网盘:https://pan.quark.cn/s/4c233a3dc126

导入镜像以后,选择并添加到容器,创建我们的NPMP。

1️⃣【文件夹路径】:默认是空的,我们需要装载路径如图所示,极空间的文件/文件夹路径根据自己的情况配置即可。
其中【data】是持久化配置文件,必须映射;【/var/www】是网站建设的路径,可选映射;【/etc/letsencrypt】是从NPM导入到新系统的证书路径,可选映射。

2️⃣【网络】,建议将bridge修改为host模式。

3️⃣【环境】中需要配置的比较多,具体可以看网站。
https://github.com/ZoeyVid/NPMplus/blob/develop/compose.yaml
对普通用户来说,最主要的就是四个,分别是:
TZ=Asia/Shanghai 这个代表时区
NPM_PORT=82 系统的web管理界面,不填写的话默认是81,建议修改
HTTP_PORT=11880 系统默认监听的HTTP端口,默认是8080,建议修改
HTTPS_PORT=11843 系统默认监听的HTTPS端口,默认是8443,建议修改
DISABLE_IPV6=false 是否关闭IPv6,默认是不关闭,如果关闭改成true

二、系统使用
1、登录并重置密码
创建容器以后,稍等一会,然后打开容器日志,在搜索框内搜索password,这里可以查询到默认生成的密码。点击极空间docker页面右上角的选定复制就能复制出来。

🔻我这里的账号密码如下
Creating a new user: admin@example.org with password: c3a21e1313401b2d5ec9d8ce49621cec0073d3a37ac11d3eecb837b4a7fd8da8
打开网站【极空间ip:82】,输入账号密码登录系统。

初次登录,会要求修改账号邮箱和密码。此致,系统就配置完成了。

2、实操配置反代
由于NPMplus没有中文版本,所以我直接使用了网页翻译工具。和NPM一样,NPMplus支持Proxy Hosts(反代)、Redirection Hosts(重定向)、Dead Hosts(404 主机)、Steams(TCP/UDP流),我们重说的反代,一般就是第一个Proxy Hosts。

这里以极空间自身的5055端口为例,一般我们在本地是通过极空间ip:5055访问极空间的管理页面,但是如果开放到互联网上还保留5055端口的话,很容易被人找到域名并且爆破攻击。
这个时候,我们可以通过反代5055端口为NPMplus的11880端口,并且在路由器里开放11880端口的端口映射,这样就可以避免90%以上的默认端口扫描攻击。
具体操作方面,创建一个Proxy Hosts,在域名这里输入我们外网需要访问的实际地址(一般为二级域名,不含端口),下面的类型选择HTTP,然后跟局域网ip和web端口。

接着,在浏览器输入http://域名:18880就可以进入极空间web管理界面了。

当然,HTTP并不是最安全的访问方式,一般建议大家加上HTTPS加密协议来进行网络交换,NPM Plus也提供了SSL申请和免费续签服务。
一种方法就是在进行反代的时候直接配置TLS证书为申请新的证书,并且悬赏强制HTTPS。

另一种方法是选择TLS 证书注册,使用CertRbot申请续签,支持大部分DNS服务商的校验。

如果自行申请了SSL证书的,也可以在系统里导入使用。

3、NPM plus 和 NPM 的差异点
前面这些操作,NPM也都可以完成,那NPM Plus究竟在哪里进行了增强呢?
1️⃣ 功能升级
支持HTTP/3(QUIC)协议,支持 OpenAppSec 附件模块,支持负载均衡模块化配置,支持 ML-KEM,支持OCSP Stapling/Must-Staple,可以自动删除过期的SSL证书,支持 PHP Web,集成GeoIP、Openappsec等服务。
2️⃣支持Goaccess
GoAccess 是一款开源的且具有交互视图界面的实时 Web 日志分析工具,能为系统管理员提供快速且有价值的 HTTP 统计,并以在线可视化服务器的方式呈现。

NPM Plus通过集成之后,在创建Proxy Hosts的时候可以创建grpc和grcps协议的代理,帮助进行web服务日志分析。Goaccess的地址为极空间ip:91。

3️⃣支持ModSecurity
ModSecurity是一个开源的、跨平台的Web应用防火墙(WAF),被称为WAF界的“瑞士军刀”。它可以通过检查Web服务接收到的数据,以及发送出去的数据来对网站进行安全防护。

NPMP通过 CoreRuleSet 实现了对 ModSecurity 的支持,适合对网站安全要求严格的人使用。

总结
很多人会提到另外一款网络反代工具——Lucky,其实使用Lukcy或者使用NPM完全依据个人喜好而定,但是NPM Plus相比于两者,会提供更多的企业级服务,更注重安全、性能、负载均衡,适合高要求用户。
在极空间部署 NPM Plus 以后,「远程访问 + DDNS + 反代」的组合拳,可以完美解决任意网络环境下的TCP/UDP/HTTP服务使用,真正实现网络可达、数据可达、服务可达。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案