unraid使用阿里云域名+ddns+npm实现外网安全访问
作者:东wings
之前都是通过群辉的ddns进行外网访问,设置方便,并且使用群辉的二级域名也免费,就没想过做啥改动,但是自从加入了影音群,我的docker应用就一发不可收拾,群辉这点小身板实在经不起折腾,cpu动不动就上100%,然后网页都打不开。
之后慢慢就开始心动是把218+升级到920,但是想了下3000多的成本,还要处理掉218,同样的钱自己都可以配台性能很不错的nas了,自己组台机子跑重要数据以外的服务,群辉用来备份数据照片等重要文件,感觉性价比更高。自从看了阿文菌的all-in-one教程后,被unraid深深种草,之后便搬出了祖传的老机箱,开始垃圾佬之旅,在闲鱼购入10代i5,b460m主板,以及两条8G内存,整了台unraid,开始瞎折腾,但是随着docker服务越搭越多,需要映射的端口也越来越多,并且映射出去的都是http服务,至此为了安全只能开始折腾反代及https证书。
第一次写文章,当分享分享,有什么专业知识或者名称用错勿喷
折腾步骤:1、购买域名2、docker安装服务实现ddns3、安装npm实现反向代理
一、购买域名我买的是阿里云的域名,选的是.top的首年1元,使用成本还是很亲民,后面要续了再考虑换,哈哈哈。如果有钱或想长期持有可以直接买顶级域名或者直接买10年的
进入阿里云首页选择域名注册进入看到域名服务,输入自己想要的域名查询,是否可购买,这边提醒一句,如果想拿优惠需要从上图的优惠页面点击最后结算时才有优惠,我之前直接搜索域名,相同域名是9元,但是在活动页进入,结算则只用一元。
查询后可显示价格,按需购买。之后就是实名认证,支付等环节,较为简单,就不一一叙述了。
买好之后等待审核通过,在控制台就可以看到所购买的域名了。
二、docker安装aliyun-ddns-cli服务实现ddns首先确定自己是有公网ip的,如果没有公网ip请移步。2.1 获取AccessKey
登录阿里云域名控制台,点击右上角头像,选择AccessKey管理,安照系统提示创建AccessKey;
2.2 安装aliyun-ddns-cli点击Docker,选择下方添加容器
在容器中填入对应数据后创建应用:
名称(NAME): DDNS //应用名称存储库(Repository): chenhw2/aliyun-ddns-cli //镜像地址Variable: AKID //阿里云ID:将刚获得的AccessKey ID填入Variable: AKSCT //阿里云KEY:将刚获得的AccessKey Secret填入Variable: DOMAIN //阿里云域名:之前购买的域名,也就是你想将公网IP推给哪个域名Variable: REDO //刷新间隔:无特殊要求写600就行
点击应用等待下载部署完成就可以了。点击查看日志,看是否解析成功,如果不成功请检查AccessKey是否正确。
三、安装npm实现反向代理其实完成前序步骤已经能通过路由器映射端口进行外网访问了,但是直接映射出去都是http的服务,并且还要记一堆端口,着实不是特别方便。所以有需求的可以继续往下看。3.1 安装NginxProxyManager在unraid应用市场搜索NginxProxyManager
点击部署
这边都按默认就行,点击应用,下载并部署
3.2 npm配置完成部署后输入IP:7818进入npm设置页面
默认登录名密码为admin@example.com/changeme输入账号密码后填入个人信息并重置密码,重置后记得退出重新登录下,不然后面可能会出现问题。
进入后可以看到配置界面,首先进入SSL证书设置,点击SSL certificates
点击Add SSL certificates,选择Let’s Encrypt,如果有证书的也可以选择Custom导入
Domain Names中填入*.xxxx.top,就是*.你购买的域名,这样申请的为范域名证书,二级域名才可以使用打开use a dns challenge 然后选择对应dns供应商,这里选择aliyun,并在dns_aliyun_access_key和dns_aliyun_access_key_secret中填入阿里云的accesskey信息,点击同意并保存。之后就会进行免费证书申请,等待申请成功后进入下一步;
3.3 反向代理设置3.3.1 二级域名如果需要使用二级域名,需要先进入阿里云后台进行设置
点击解析
在这里应该可以看到之前ddns同步过来的一条记录,记录类型为A,对应了我们的公网ip;现在我们添加需要的二级域名地址;点击添加解析
类型选择CNAME在主机记录填写你需要的二级域名内容,我是将我的qbittorrent下载器通过反代出去,所以这边填入qb,后续通过qb.xxxx.top进行浏览记录值填入你ddns同步的域名地址点击保存后回到npm界面
3.3.2 页面配置点击Proxy Hosts进入主机代理设置页面;
点击Add Proxy Host
填入刚配置好的二级域名,并将内网对应地址及端口填入;点击ssl,进入证书配置页面
选择刚申请的证书,打开下面2个开关,点击保存
3.3.3 端口映射由于基本上运营商会封掉80和443端口,所以我们需要将npm的端口进行映射,进入路由器页面
分别将1880和18443端口进行映射。完成后就可以通过你的二级域名加上对应映射的端口进行https的访问啦。比如我映射的外网端口也是18443,通过 https://qb.xxx.top:18443进行访问,之后其他配置也同理,这样外网服务就只用映射一个端口,所有的服务都是通过二级域名加该端口进行访问啦。
第一次写,如有问题敬请见谅。感谢观看