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服务使用,真正实现网络可达、数据可达、服务可达。

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

不辣的啤特
校验提示文案
DyKk
校验提示文案
imsky
校验提示文案
以浪得虚名
校验提示文案
猫仔仔
校验提示文案
看豆科技
校验提示文案
值友5624741144
校验提示文案
巨懒虫
校验提示文案
无刃幻越
校验提示文案
著名有钱妞
校验提示文案
巨懒虫
校验提示文案
值友5624741144
校验提示文案
著名有钱妞
校验提示文案
不辣的啤特
校验提示文案
imsky
校验提示文案
以浪得虚名
校验提示文案
猫仔仔
校验提示文案
看豆科技
校验提示文案
DyKk
校验提示文案
无刃幻越
校验提示文案