unraid使用阿里云域名+ddns+npm实现外网安全访问

2022-03-28 10:00:23 24点赞 239收藏 42评论

之前都是通过群辉的ddns进行外网访问,设置方便,并且使用群辉的二级域名也免费,就没想过做啥改动,但是自从加入了影音群,我的docker应用就一发不可收拾,群辉这点小身板实在经不起折腾,cpu动不动就上100%,然后网页都打不开。

unraid使用阿里云域名+ddns+npm实现外网安全访问


之后慢慢就开始心动是把218+升级到920,但是想了下3000多的成本,还要处理掉218,同样的钱自己都可以配台性能很不错的nas了,自己组台机子跑重要数据以外的服务,群辉用来备份数据照片等重要文件,感觉性价比更高。
自从看了阿文菌的all-in-one教程后,被unraid深深种草,之后便搬出了祖传的老机箱,开始垃圾佬之旅,在闲鱼购入10代i5,b460m主板,以及两条8G内存,整了台unraid,开始瞎折腾,但是随着docker服务越搭越多,需要映射的端口也越来越多,并且映射出去的都是http服务,至此为了安全只能开始折腾反代及https证书。

第一次写文章,当分享分享,有什么专业知识或者名称用错勿喷

折腾步骤:
1、购买域名
2、docker安装服务实现ddns
3、安装npm实现反向代理

一、购买域名
我买的是阿里云的域名,选的是.top的首年1元,使用成本还是很亲民,后面要续了再考虑换,哈哈哈。如果有钱或想长期持有可以直接买顶级域名或者直接买10年的

unraid使用阿里云域名+ddns+npm实现外网安全访问


进入阿里云首页选择域名注册进入看到域名服务,输入自己想要的域名查询,是否可购买,这边提醒一句,如果想拿优惠需要从上图的优惠页面点击最后结算时才有优惠,我之前直接搜索域名,相同域名是9元,但是在活动页进入,结算则只用一元。

unraid使用阿里云域名+ddns+npm实现外网安全访问


查询后可显示价格,按需购买。
之后就是实名认证,支付等环节,较为简单,就不一一叙述了。

unraid使用阿里云域名+ddns+npm实现外网安全访问


买好之后等待审核通过,在控制台就可以看到所购买的域名了。

二、docker安装aliyun-ddns-cli服务实现ddns
首先确定自己是有公网ip的,如果没有公网ip请移步。
2.1 获取AccessKey

unraid使用阿里云域名+ddns+npm实现外网安全访问


登录阿里云域名控制台,点击右上角头像,选择AccessKey管理,安照系统提示创建AccessKey;

2.2 安装aliyun-ddns-cli
点击Docker,选择下方添加容器

unraid使用阿里云域名+ddns+npm实现外网安全访问


在容器中填入对应数据后创建应用:

unraid使用阿里云域名+ddns+npm实现外网安全访问

名称(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

unraid使用阿里云域名+ddns+npm实现外网安全访问


点击部署

unraid使用阿里云域名+ddns+npm实现外网安全访问


这边都按默认就行,点击应用,下载并部署

3.2 npm配置
完成部署后输入IP:7818进入npm设置页面

unraid使用阿里云域名+ddns+npm实现外网安全访问


默认登录名密码为admin@example.com/changeme
输入账号密码后填入个人信息并重置密码,重置后记得退出重新登录下,不然后面可能会出现问题。

unraid使用阿里云域名+ddns+npm实现外网安全访问


进入后可以看到配置界面,首先进入SSL证书设置,点击SSL certificates

unraid使用阿里云域名+ddns+npm实现外网安全访问


点击Add SSL certificates,选择Let’s Encrypt,如果有证书的也可以选择Custom导入

unraid使用阿里云域名+ddns+npm实现外网安全访问


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 二级域名
如果需要使用二级域名,需要先进入阿里云后台进行设置

unraid使用阿里云域名+ddns+npm实现外网安全访问


点击解析

unraid使用阿里云域名+ddns+npm实现外网安全访问


在这里应该可以看到之前ddns同步过来的一条记录,记录类型为A,对应了我们的公网ip;现在我们添加需要的二级域名地址;
点击添加解析

unraid使用阿里云域名+ddns+npm实现外网安全访问


类型选择CNAME
在主机记录填写你需要的二级域名内容,我是将我的qbittorrent下载器通过反代出去,所以这边填入qb,后续通过qb.xxxx.top进行浏览
记录值填入你ddns同步的域名地址
点击保存后回到npm界面

3.3.2 页面配置
点击Proxy Hosts进入主机代理设置页面;

unraid使用阿里云域名+ddns+npm实现外网安全访问


点击Add Proxy Host

unraid使用阿里云域名+ddns+npm实现外网安全访问


填入刚配置好的二级域名,并将内网对应地址及端口填入;
点击ssl,进入证书配置页面

unraid使用阿里云域名+ddns+npm实现外网安全访问


选择刚申请的证书,打开下面2个开关,点击保存

3.3.3 端口映射
由于基本上运营商会封掉80和443端口,所以我们需要将npm的端口进行映射,进入路由器页面

unraid使用阿里云域名+ddns+npm实现外网安全访问


分别将1880和18443端口进行映射。
完成后就可以通过你的二级域名加上对应映射的端口进行https的访问啦。
比如我映射的外网端口也是18443,通过 https://qb.xxx.top:18443进行访问,之后其他配置也同理,这样外网服务就只用映射一个端口,所有的服务都是通过二级域名加该端口进行访问啦。

第一次写,如有问题敬请见谅。感谢观看

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

展开 收起
42评论

  • 精彩
  • 最新
  • 是不是IPv6的DDNS不可以,完全按照教程来的,最后还是不成功,感觉应该是IPv6的问题

    校验提示文案

    提交
    Ipv6我也没试过,不过应该原理差不多的

    校验提示文案

    提交
    收起所有回复
  • 楼主请教一下,ddns那个容器,创建填写域名时,需要在域名前加www还是什么?

    校验提示文案

    提交
    你说阿里云ddns那个容器是吧,我填写的是ddns.xxx.top,然后在阿里云那边用cname创建不同的二级域名指向ddns.xxx.top,ddns这个域名只是为了让服务找到我们最新的公网ip,不做具体使用。

    校验提示文案

    提交
    收起所有回复
  • 还是不能隐藏端口,和http访问差不多

    校验提示文案

    提交
    1、只用映射一个端口,且可以使用https,更安全,http容易被劫持。2、可以用二级域名,比端口更好记

    校验提示文案

    提交
    80,443封了就没法省略端口,除了https更安全些,其它没差别

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 赞一个先,收藏了。

    校验提示文案

    提交
    [高兴] 第一次写,感谢支持

    校验提示文案

    提交
    收起所有回复
  • 今弄了一天 阿里云 失败了 按照教程 域名家端口全部打不开 气的善了

    校验提示文案

    提交
    阿里云ddns失败了?还是什么?看下是不是key不对

    校验提示文案

    提交
    收起所有回复
  • 我是个小白 [喜极而泣] 现在是920+和openwrt,现在也申请了动态域名,已经可以外网访问了,想问一下在软路由里加ddns服务是为了可以外网访问的时候只用一个端口,所以更加安全吗?

    校验提示文案

    提交
    群晖直接可以在控制面板,设置反向代理,也可以用docker安装npm实现反代

    校验提示文案

    提交
    ddns就是动态域名啊。。。反代才是只用一个端口。不知道一年过去了 你整明白了没

    校验提示文案

    提交
    收起所有回复
  • 我想问问,租的房子,光猫-一级路由-二级路由,我是二级路由也可以吗?

    校验提示文案

    提交
    这种最好还是试试用ddnsto这种吧,你想反代出去干嘛

    校验提示文案

    提交
    内网有个unraid,挂了下载,上班的时候就找找电影,推到下载工具下载去 [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 我一步一步跟你做的,但是最后还是没法远程访问
    请问下unraid本身的http端口需要更改吗

    校验提示文案

    提交
    Unraid的端口不用改,npm里面设置的端口要改,然后路由器映射对应的端口

    校验提示文案

    提交
    现在端口能访问了,但是证书没装上,还是提示不安全
    npm显示证书7月30到期

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 域名解析可以交给路由器来做吗,不用docker

    校验提示文案

    提交
    可以的,只要域名能解析到公网ip就可以

    校验提示文案

    提交
    嗯,好在路由器能刷padavan,还比较方便,主要是怕all in boom了,就不能远程访问路由器了

    校验提示文案

    提交
    收起所有回复
  • nginx之前一直没装对,这次再卸载重来,直接拒绝访问页面了。。。

    校验提示文案

    提交
    配置没配置对吧,把之前的配置文件夹删了,重新安装下

    校验提示文案

    提交
    应该删哪个文件夹呀?我找不到555555

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 楼主,host哪里的ip和端口是qb的吗

    校验提示文案

    提交
    没听懂

    校验提示文案

    提交
    你说在npm设置host里面填写的内网ip和端口?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 去年折腾反代把我人整麻了。。。搞了好久还是没成功,等今年腾讯域名到期了注册个阿里的试试

    校验提示文案

    提交
  • 请问ipv6能搞吗

    校验提示文案

    提交
  • 666666照着教程搞定了,同时识别6和4,不知道咋删除4的识别,只需要6

    校验提示文案

    提交
  • 不是很懂。既然都已经在路由里面映射端口了,干嘛还要给应用一个二级域名?

    校验提示文案

    提交
  • unraid页面无法打开,其他都正常,unraid直接显示“Rejected request from RFC1918 IP to public server address”

    校验提示文案

    提交
  • 都设置对了,npm的ssl端口是4443,dns challenge是*.qwer.com,ddns是1.qwer.com能正常解析公网ip,路由器端口映射4443到4443,设置dsm.qwer.com反代 内网ip:5000,访问去看看:4443 无法打开呢?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

东wings

和科技有关的都喜欢

关注 打赏
最新文章 热门文章
239
扫一下,分享更方便,购买更轻松