NAS必备神器:部署中文版反向代理工具『Nginx Proxy Manager』并申请 SSL 证书
关于反向代理,我在之前的【NginxWebUI】文章中已经讲过。反向代理其实就是为了外网访问家里的NAS以及部署的服务更安全,并且在一定的时候,我们无需记下NAS中那么多的端口号,就能轻松实现安全的外网访问。
而说到NAS中反向代理工具,另外一款【Nginx Proxy Manager】可以说是当仁不让的神器之一。我之前也多次在文中推荐并提到过它,在加上前几天一位粉丝朋友找到我希望出篇该工具的教程抄作业,So,我就被迫水一篇吧~~
PS:今天的教程是建立在有公网IP的基础上,没有公网IP也是可以,不过需要修改下内网穿透设置。具体操作我因为没有使用内网穿透相关服务,所以也就没法展示了。
关于Nginx Proxy Manager
Nginx Proxy Manager是我目前体验过最简单最方便的反向代理工具,主要是因为它自带可视化的操作面板,无需代码就能轻松搞定反向代理的操作。
这句话听起来是不是很耳熟?对,它就像我之前给刚玩Docker的小伙伴推荐Portainer是一样的。对于我们没有任何运维经验的小白来说,可视化面板工具仅需我们动动鼠标,填几个数据就能实现一些我们需要完全看不懂的复杂命令一样的效果,并且几乎不需要我们相关的专业知识。
不过和Portainer一样,Nginx Proxy Manager其实也是不支持中文的,作为学渣的我看着英文实在头疼。不过不出意外,像Nginx Proxy Manager这样的神器肯定会有国内大佬汉化。所以,今天教程中,安装的便是国内大佬汉化版的Nginx Proxy Manager。
废话不多说,直接开整!
Nginx Proxy Manager部署
Nginx Proxy Manager部署起来还是非常简单的!
打开NAS的文件管理器,在 docker 文件夹中(威联通默认为Container文件夹),创建一个新文件夹【NPM】,然后在 wikijs文件夹中再分别新建两个子文件夹【data】 和【letsencrypt】,其中data文件夹用于存放数据文件,letsencrypt文件夹用于存放SSL证书相关文件。
接着打开SSH工具进入管理员模式,输入Docker run命令:
以上命令需要改动的为:
如果没有问题在NAS的Docker容器列表中就能看到nmp容器已经正在运行了,说明部署成功。
Nginx Proxy Manager体验及教程
直接在浏览器中输入 【http:// NAS的局域网IP:端口号】 就能看到登录界面了,请注意,这里的端口号是81映射的端口号,前面说过的~
默认的初始账号和密码分别为:admin@example.com/changeme。
登录进去后为了安全,容器会提示我们重设账号和密码,自己跟着向导直接设置即可,密码需要设置复杂密码,即数字字母组合形式的密码。设置好以后下次登录nmp容器就需要使用我们自己重新设置的这个账号密码了。
设置反向代理
点击主界面的“代理服务”。
添加代理服务。
然后在这里:
至于下面的三个选项(缓存资源、阻止常见漏洞、支持WebSockets)是啥我也不知道,不关那么多,直接勾上即可。
比如说我这里很快就创建了一个远程访问家里NAS的反向代理。
但是我们这个时候并不能通过反向代理的域名访问NAS,我们还需要在路由器上将我们前面映射的http协议端口,也就是映射80端口的本地端口号做一个端口转发。我这里是180,前面提过的~
反正我们稍后会申请SSL证书进行https访问,所以我们顺便在路由器这里也将对应的443端口也做个转发吧~
我们现在就可以随意使用自己设置好的【反向代理域名+端口号】(这个端口号是映射80端口的本地端口号哦~)来远程访问家里的NAS了。不过前面显示了一个“不安全”的标识,那是因为我们并没有为我们的反代域名申请SSL证书。
OK,接下来的事就是搞定证书吧!
申请SSL证书
关于申请SSL证书我这里说明一下:我看很多教程都是通过申请npm 中 Let’s Encrypt 证书实现自动无限期续签。但是貌似我今天教程中的npm 版本有问题,在部署的时候总是出错。所以我采取了直接手动上传运营商下发的证书,个人觉得更简单。唯一的不便就是有效期仅为一年。但是部署一次证书也就三分钟不到的时间,我想应该没有那位“大忙人”在一年中挤不出三分钟的时间吧~~哈哈。
既然是手动上传证书,那么我们先要在自己域名的运营商那里下载证书了。这里以我自己使用的腾讯云(DNSPod)为例,打开:https://www.dnspod.cn/login?s_url=https%3A%2F%2Fconsole.dnspod.cn%2Fdns%2Flist ,然后点击自己使用的反代域名后面的“SSL”(记得一定是自己反代使用的那个域名,多域名玩家别选错了~)。
然后在页面的下方有一个“下载证书” 的选项,点击打开。
这里会让我们选择服务器类型,我们选择“Nginx”,点击后面的下载。
下载之后是一个压缩包,解压之后就是上图四个文件,而我们稍后需要用到的其实是“.key”和“.crt”这两个文件。
回到npm 容器内,选择“SSL证书--添加SSL证书--上传证书”。
在上传证书页面:
中间证书不用管,然后点击“保存”。
SSL证书列表会看到我们刚上传的证书。
回到“代理服务”那里,点击后面的“三点”,选择“编辑”。
编辑页面点击“SSL”,然后在SSL证书方框选择我们刚上传的证书。
下面的四个选项咱也不懂,直接全部打开吧!
完成之可以看到代理服务列表SSL证书下面会有“上传证书”的字样。
再次使用我们的反代链接连接我们的NAS,可以看到它就是以https的安全协议打开的,并且前面还加上了安全小锁的标识。需要说明的是:你需要在路由器上做好对应443端口转发(我前面已经做好了),并且我们在输入链接的时候后面的端口号也是映射443的端口号。
那么NAS上其它的服务怎么使用同一域名反代出去呢?很简单!我们之需要在域名前面随意加上一个前缀(前缀别重复就行),越简单越好,并且将端口改成这个服务的端口即可。比如说上图我就将Nginx Proxy Manager自己给反代出去了~,这样我们就实现了同一个“域名+端口号”,实现外网访问家里NAS所有服务的目的。
好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,我会经常给大家分享各类有意思的软件和免费干货,咱们下期再见!谢谢大家~