NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

2023-11-15 17:18:07 61点赞 607收藏 87评论

关于反向代理,我在之前的【NginxWebUI】文章中已经讲过。反向代理其实就是为了外网访问家里的NAS以及部署的服务更安全,并且在一定的时候,我们无需记下NAS中那么多的端口号,就能轻松实现安全的外网访问。

而说到NAS中反向代理工具,另外一款【Nginx Proxy Manager】可以说是当仁不让的神器之一。我之前也多次在文中推荐并提到过它,在加上前几天一位粉丝朋友找到我希望出篇该工具的教程抄作业,So,我就被迫水一篇吧~~

PS:今天的教程是建立在有公网IP的基础上,没有公网IP也是可以,不过需要修改下内网穿透设置。具体操作我因为没有使用内网穿透相关服务,所以也就没法展示了。

关于Nginx Proxy Manager

Nginx Proxy Manager是我目前体验过最简单最方便的反向代理工具,主要是因为它自带可视化的操作面板,无需代码就能轻松搞定反向代理的操作。

这句话听起来是不是很耳熟?对,它就像我之前给刚玩Docker的小伙伴推荐Portainer是一样的。对于我们没有任何运维经验的小白来说,可视化面板工具仅需我们动动鼠标,填几个数据就能实现一些我们需要完全看不懂的复杂命令一样的效果,并且几乎不需要我们相关的专业知识。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

不过和Portainer一样,Nginx Proxy Manager其实也是不支持中文的,作为学渣的我看着英文实在头疼。不过不出意外,像Nginx Proxy Manager这样的神器肯定会有国内大佬汉化。所以,今天教程中,安装的便是国内大佬汉化版的Nginx Proxy Manager。

废话不多说,直接开整!

Nginx Proxy Manager部署

Nginx Proxy Manager部署起来还是非常简单的!

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺打开NAS的文件管理器,在 docker 文件夹中(威联通默认为Container文件夹),创建一个新文件夹【NPM】,然后在 wikijs文件夹中再分别新建两个子文件夹【data】 和【letsencrypt】,其中data文件夹用于存放数据文件,letsencrypt文件夹用于存放SSL证书相关文件。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺接着打开SSH工具进入管理员模式,输入Docker run命令:

docker run -d --name npm -p 80:80 -p 81:81 -p 443:443 -v ./data:/data -v ./letsencrypt:/etc/letsencrypt chishin/nginx-proxy-manager-zh:latest

以上命令需要改动的为:

  • -p 80:80:这个是映射容器的http协议端口,冒号前面自己改成本地没被占用的任何端口,除非你反代的域名备案过或者部署在VPS上面这里可以不改。我这里就映射成180端口吧;

  • -p 81:81:这个是映射容器web界面端口,如果本地没被占用默认即可,可以不改;

  • -p 443:443:这个是映射容器的https协议端口,冒号前面需要改,理由同80端口,为了方便我也映射为1443端口吧;

  • -v ./data:/data:冒号前面映射我们前面新建“data”文件夹的本地实际路径;

  • -v ./letsencrypt:/etc/letsencrypt:冒号前面映射我们前面新建“letsencrypt”文件夹的本地实际路径。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺如果没有问题在NAS的Docker容器列表中就能看到nmp容器已经正在运行了,说明部署成功。

Nginx Proxy Manager体验及教程

直接在浏览器中输入 http:// NAS的局域网IP:端口号 就能看到登录界面了,请注意,这里的端口号是81映射的端口号,前面说过的~

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺默认的初始账号和密码分别为:admin@example.com/changeme。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺登录进去后为了安全,容器会提示我们重设账号和密码,自己跟着向导直接设置即可,密码需要设置复杂密码,即数字字母组合形式的密码。设置好以后下次登录nmp容器就需要使用我们自己重新设置的这个账号密码了。

👉设置反向代理

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺点击主界面的“代理服务”。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺添加代理服务。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺然后在这里:

  • 域名:域名就是我们反代使用的域名,需要说明的是,这个域名首先在运营商那里做好DNS解析(比喻腾讯云或者阿里云,解析包括普通解析与泛解析),然后把域名在我们的NAS上做好DDNS解析(使用另一款容器ddns-go)。

  • 协议:默认 http 即可。

  • 转发主机/IP:这个直接填入NAS的局域网IP即可。

  • 转发端口:NAS服务端的内网端口,可以是NAS自己的内网访问端口,也可以是某个Docker容器的端口,看你自己的需求了。

至于下面的三个选项(缓存资源、阻止常见漏洞、支持WebSockets)是啥我也不知道,不关那么多,直接勾上即可。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺比如说我这里很快就创建了一个远程访问家里NAS的反向代理。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺但是我们这个时候并不能通过反向代理的域名访问NAS,我们还需要在路由器上将我们前面映射的http协议端口,也就是映射80端口的本地端口号做一个端口转发。我这里是180,前面提过的~

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺反正我们稍后会申请SSL证书进行https访问,所以我们顺便在路由器这里也将对应的443端口也做个转发吧~

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺我们现在就可以随意使用自己设置好的【反向代理域名+端口号】(这个端口号是映射80端口的本地端口号哦~)来远程访问家里的NAS了。不过前面显示了一个“不安全”的标识,那是因为我们并没有为我们的反代域名申请SSL证书。

OK,接下来的事就是搞定证书吧!

👉申请SSL证书

关于申请SSL证书我这里说明一下:我看很多教程都是通过申请npmLet’s Encrypt 证书实现自动无限期续签。但是貌似我今天教程中的npm 版本有问题,在部署的时候总是出错。所以我采取了直接手动上传运营商下发的证书,个人觉得更简单。唯一的不便就是有效期仅为一年。但是部署一次证书也就三分钟不到的时间,我想应该没有那位“大忙人”在一年中挤不出三分钟的时间吧~~哈哈。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺既然是手动上传证书,那么我们先要在自己域名的运营商那里下载证书了。这里以我自己使用的腾讯云(DNSPod)为例,打开:https://www.dnspod.cn/login?s_url=https%3A%2F%2Fconsole.dnspod.cn%2Fdns%2Flist ,然后点击自己使用的反代域名后面的“SSL”(记得一定是自己反代使用的那个域名,多域名玩家别选错了~)。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺然后在页面的下方有一个“下载证书” 的选项,点击打开。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺这里会让我们选择服务器类型,我们选择“Nginx”,点击后面的下载。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺下载之后是一个压缩包,解压之后就是上图四个文件,而我们稍后需要用到的其实是“.key”和“.crt”这两个文件。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺回到npm 容器内,选择“SSL证书--添加SSL证书--上传证书”。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺在上传证书页面:

  • 名称:随意

  • 证书秘钥:选择前面解压得到的“.key”文件

  • 证书:选择前面解压得到的“.crt”文件

中间证书不用管,然后点击“保存”。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺SSL证书列表会看到我们刚上传的证书。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺回到“代理服务”那里,点击后面的“三点”,选择“编辑”。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺编辑页面点击“SSL”,然后在SSL证书方框选择我们刚上传的证书。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺下面的四个选项咱也不懂,直接全部打开吧!

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺完成之可以看到代理服务列表SSL证书下面会有“上传证书”的字样。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺再次使用我们的反代链接连接我们的NAS,可以看到它就是以https的安全协议打开的,并且前面还加上了安全小锁的标识。需要说明的是:你需要在路由器上做好对应443端口转发(我前面已经做好了),并且我们在输入链接的时候后面的端口号也是映射443的端口号。

NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书

🔺那么NAS上其它的服务怎么使用同一域名反代出去呢?很简单!我们之需要在域名前面随意加上一个前缀(前缀别重复就行),越简单越好,并且将端口改成这个服务的端口即可。比如说上图我就将Nginx Proxy Manager自己给反代出去了~,这样我们就实现了同一个“域名+端口号”,实现外网访问家里NAS所有服务的目的。

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,我会经常给大家分享各类有意思的软件和免费干货,咱们下期再见!谢谢大家~

展开 收起

群晖(Synology)DS423+四核心4盘位NAS网络存储文件存储共享照片自动备份私有云(无内置硬盘)

群晖(Synology)DS423+四核心4盘位NAS网络存储文件存储共享照片自动备份私有云(无内置硬盘)

暂无报价

威联通(QNAP)TS-464C宇宙魔方四核心处理器网络存储服务器内置双M.2插槽NAS私有云(453Dmini升级)

威联通(QNAP)TS-464C宇宙魔方四核心处理器网络存储服务器内置双M.2插槽NAS私有云(453Dmini升级)

暂无报价

华硕(ASUS)NAS网络存储2盘位/4盘位四核心处理器/私有云存储服务器/网盘个人云/企业商用AS6604T

华硕(ASUS)NAS网络存储2盘位/4盘位四核心处理器/私有云存储服务器/网盘个人云/企业商用AS6604T

暂无报价 去购买

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4299元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

1936元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

4099元起

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

1199元起

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

1899元起

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

2699元起

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

2000元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

1599元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1549元起

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

1699元起
87评论

  • 精彩
  • 最新
  • 置顶 npm 确实简单方便,菜鸟福星。
    三连支持

    校验提示文案

    提交
    老哥,请问下你那边的Let’s Encrypt 证书配置成功没有?我这个不知道是版本问题还是网络问题,总是失败 [喜极而泣] ,所以文中才以上传证书的形式搞定的。

    校验提示文案

    提交
    其实啊,我个人觉得Lucky更适合新手 [高兴]

    校验提示文案

    提交
    还有8条回复
    收起所有回复
  • docker run没有指定网络,默认是bridge,这个是虚拟网卡,有自己的网段的,一般是172开头的,这个时候nas也会作为网关分配一个172开头的ip,你代理那里直接填192开头的ip你能访问的nas?npm根本就不在192网段,能跨网段访问nas?你不是应该填在172网段里面nas分配到的ip吗?

    校验提示文案

    提交
  • 还是lucky简单方便

    校验提示文案

    提交
    我也是这么认为的,但是这个其实也很简单啊

    校验提示文案

    提交
    收起所有回复
  • 请问端口映射是不是就不需要公网IP了

    校验提示文案

    提交
    需要的,

    校验提示文案

    提交
    收起所有回复
  • 现在直接用WireGuard非常方便,速度很快!华硕的ipv6防火墙也能开启了

    校验提示文案

    提交
    你说的这个还没玩过,等有空研究下 [龇牙]

    校验提示文案

    提交
    收起所有回复
  • 请教大佬,这种反向代和开YPN,哪种安全性高些,感觉有的nas自带YPN套件,用起来容易些

    校验提示文案

    提交
    其实只要部署好ssl 证书,理论上都挺安全的

    校验提示文案

    提交
    肯定是VPN安全性高啊。你那么多服务,肯定有各种漏洞。VPN只有一个,概率上就小一些。能搞个人用户的,大都是脚本小子,一般VPN进不来的。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 用这个反代不了docker映射的端口,不知道为啥,用群晖的反代也不行,反代别的端口都可以,只要是docker映射的都不行,无语了

    校验提示文案

    提交
    可以的啊,你路由器做端口转发没有?

    校验提示文案

    提交
    群晖里防火墙看一下端口有没有开,路由器和光猫里都看看是不是开了

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • Let's Encrypt据说可以免费申请泛域名证书,但npm自带的Let's Encrypt我一直都是失败,改成dns也没成功。无奈只能采用跟作者一样的方式,用dnspod申请证书再上传。但dnspod的泛域名价格很高,免费方式只能单个申请,导致证书维护很繁琐。不知道有没有好的办法解决。

    校验提示文案

    提交
    Lucky可以的 [高兴]

    校验提示文案

    提交
    感谢,我抽空试试,十几个证书维护下来还是比较累的。有人说Let's Encrypt不能直接采用http申请是因为家用网络封了80端口的原因,按照这个道理应该都不行才对,搞不明白。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 最后有点没看懂,访问不同的服务只要在编辑代理服务那里加不同的前缀,那访问的时候带不带前缀呢?如果带是不是每个域名都要做dns,如果不带,端口又一样,npm怎么区分要访问什么服务?

    校验提示文案

    提交
    不需要每个域名都做DNS解析,只需要做一个泛解析,然后只要前缀不同就可以了,加了前缀就属于二级域名。不知道这么说你明白没 [高兴]

    校验提示文案

    提交
    前缀不同就可以了,端口都是一样

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 大佬,我用的公网ipv6域名,DDNS也是直接读接口的ipv6,没有经过路由器端口转发,那么我的转发主机/ip应该怎么填呢

    校验提示文案

    提交
    都是一样,添对应服务的ip 和端口啊

    校验提示文案

    提交
    收起所有回复
  • 部署失败的试下安装zope,好像腾讯云的域名都有这个现象

    1、进入容器 npm 替换为容器名
    docker -it npm-zh bash

    2、安装软件zope
    python3 -m pip install --upgrade pip
    pip install certbot-dns-dnspod
    pip install zope

    3、退出容器
    exit

    校验提示文案

    提交
    我试了,不行 [喜极而泣]

    校验提示文案

    提交
    npm家庭部署需要使用dns形式去部署,80端口都封闭了没有办法直接在线申请与部署,这一点不如vps省心与省事,而且由于网络原因很大概率会部署不成功,换个时间段或者搞好网络,就有可能成功了。

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 大佬你好~请问一下这个的反向代理跟威联通或者群晖自带的反向代理有什么不一样?

    校验提示文案

    提交
    更方便

    校验提示文案

    提交
    收起所有回复
  • 方法步骤一模一样,不知道是不是腾讯云DNS设置错了,怎么都不成功,还把以前DDNS-GO域名加端口可以访问的搞没了,有说家庭宽带封了80和443端口,晕,还有说docker不在同一个网段,没搞懂

    校验提示文案

    提交
    这样吧,你别管ddnsgo了,先用这个lucky试试,有什么问题再告诉我。去看看

    校验提示文案

    提交
    斯塔克先生,申请SSL证书提示有几个DNS服务器超时,查了说是检测不到域名和DNS的关系,我的域名是.cn的,和这个有关系吗?证书申请失败,腾讯云的免费证书不支持泛域名解析,不然倒过来用,现在输入反代的网址全都提示连接不了服务器

    校验提示文案

    提交
    还有11条回复
    收起所有回复
  • 这个确实给力,https丝滑,特别是居然申请的是泛域名证书

    校验提示文案

    提交
  • 感觉有点高级

    校验提示文案

    提交
  • NAS入手后,折腾起来还是蛮不错的

    校验提示文案

    提交
  • 这是干货,感谢分享

    校验提示文案

    提交
  • 大佬,不知道有没有试过docker里的linkding的反代,我用nmp怎么都不成功,但是用群晖的反代就OK,看了linkding里面的介绍,搞了很久都不行。

    校验提示文案

    提交
  • 我印象中nas的反向代理都是为了解决外网不能访问路由器设置页面用的,比如我 [高兴]

    校验提示文案

    提交
  • 学习啦,大佬给力呢!

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
607
扫一下,分享更方便,购买更轻松