type
Post
status
Published
date
Dec 31, 2020
slug
summary
可惜隐形url转发有限制
tags
NAS
建站
端口映射
群晖
category
探索新世界
icon
password
这件事情很久之前就想要去做了 也有人出过教程,但是看起来真的异常复杂,所以一直没有下手 这两天终于完成了一部分。

用自己的域名访问群晖

群晖自带ddns的解析服务,然后可以弄一个他们自带的域名进行访问。 我之前申请的就是xhhdd.myds.me 其中myds.me是他们给的固定的 我当然想要换成自己的顶级域名比如说什么dd.xhhdd.cnnas.xhhdd.cn之类的

尝试

作为一个行外人,一开始硬是没有搞懂里面的逻辑 这次清楚了,我拿了服务器做一个对比
如果服务器要配置好一个网站
  1. 域名解析到服务器的ip地址
  1. 服务器上配置这个域名
其实就是理解成两边都要做一个操作才能联系起来
群晖的话怎么办呢?
  1. 域名解析到服务器的ip地址:那就是填我自己家里的ip地址了,而且申请了公网ip嘛,是可以使用的。
  1. 服务器上配置这个域名:这个问题来了,服务器上我都是装个宝塔面板傻瓜式操作,那群晖在哪里设置。
控制面板-外部访问-高级设置
notion image
也就是说,在这个高级设置中填入域名就相当于服务器上配置了网站。

到了这一步,按理来说在浏览器中输入nas.xhhdd.cn是完全没有问题可,以正常访问我的群晖的管理界面。 但是结果非常的出人意料,在内网访问的时候直接跳到了我的路由器管理界面,而在外网的时候直接就是打不开。 后来想一想也是,我自己访问都需要到端口号,这里肯定也需要。我加了端口号之后果然可以正常的访问。可是我当然想去掉端口号,直接输入域名访问。

去掉端口号

这时我看到了另一位大佬的文章,就是讲怎样不带端口号访问的。
告别端口号,用HTTPS二级域名访问你群辉内的服务
自上次发了组黑群辉的文章已经过去半年了,我也从黑裙变成了白裙,成功上岸了。 DS918+已经使用了半年时间,从最初的存储工具,到现在已经快成为我家庭网络核心,也是经历了大量的搞机过程,随着在群辉里面搭建的各种服务越来越多,也不可避免的出现了很多需要记住的端口号,虽然我制作了一个导航页,但是访问HTTPS加端口的服务时还是报不安全,chrome浏览器直接就给我阻断了,给我带来了诸多不便之处,所以就有了这篇文章。 0x02 现状 如上一篇所述,我的公网IPV4地址已经变成了内网地址,好在IPV6得以普及,让悲催的远程访问得到喘息的机会。 然而由于我在NAS上部署了Unifi controller,是一个需要通过HTTPS加端口号访问的页面,导致一众浏览器的消化不良。 例如:chrome 例如:EDGE 谷歌浏览器根本就没给我访问的机会,Edge还有个"继续转到网页",每次打开都是这样,实在是烦不胜烦。于是打算搞他一下,让他知道我还是有手段的。 0x03 需求 由于我是根据我现有的需求和设备来写的这篇文章,所以这里只针对以下设备: 白群辉DS918+(理论上黑群晖也是一样的) 公网IP(IPV4或者IPV6都可以) 域名一个(我这里是阿里云的域名) 0x04 实操 第一步:在NAS上的Docker里面部署aliyun-ddns 准备内容: 域名配置操作步骤: 在Docker/注册表 搜索"sanjusss/aliyun-ddns"并安装。 在阿里云获取你的AccessKey ID以及Access Key Secret(不知道怎么操作的人可看上一篇文章) 在Docker/映像 中找到安装的 "sanjusss/aliyun-ddns",双击进行配置 点击"高级设置",进入"高级设置"面板,勾选"启用自动重新启动" 进入"网络"面板,勾选"使用与Docker Host 相同的网络" 进入"环境"面板,在"命令"输入框输入以下内容(其中用你在阿里云的AccessKey ID 替换以下代码中的AccessKey-ID,用你在阿里云的Access Key Secret,替换以下代码中的AccessKey-Secret,在-d参数中将你的二级域名或者顶级域名填上顶级域名用@.域名的方式,同时更新多个域名的地址,中间用逗号隔开,如下列代码所示,如果是IPV4,那么type参数写"A",因为我是IPV6,所以我填"AAAA") dotnet aliyun-ddns.dll \ -u "ALIYUN's AccessKey-ID" \ -p "ALIYUN's AccessKey-Secret" \ -d "nas.abc.cc,@.abc.cc" \ -e "cn-hangzhou" \ -i 300 \ -t 600 \ --timezone 8.0 \ --type AAAA 6.然后点击"应用" 7.然后会回到"创建容器"页面,点击下一步应用即可。 如此操作之后,你的域名就会解析到你的NAS公网地址了。(解析生效需要一定的时间,大概10分钟,需要等待一下) 8.然后在阿里云的域名控制面板,再添加一条CNAME解析,如下图所示,记录值为你上一步添加的记录(我这里是)。 反向代理配置: 9.然后进入群辉"控制面板/应用程序门户/反向代理服务器"新增一个代理 (按照自己的需求填写"描述",协议选HTTPS,主机名我这里设置和我业务相关的端口填443,目的地协议填HTTPS,主机名填你的上面添加的第一条解析记录,我这里Unifi controller的端口号配置的为38443),然后点击确定保存即可。 10.到此,已经到我最开始的位置了,可以用来访问我的页面,但是报不安全。 所以我们进入下一步。 SSL证书申请: 1.打开阿里云,找到"SSL证书"并进入页面。 2.点击"购买证书",有个人免费的,不要一看到购买就紧张。 免费证书只能一年一续,点击"立即购买"并支付0元,然后在"支付成功"的页面点击"证书控制台"进入控制页面,至此,你就会看到你有一个证书了 3.点击"证书申请" 填写申请信息 4.然后会自动配置验证的TXT解析记录,稍等一下,点击"验证"即可。 然后提示"验证成功",点击"提交审核",需要等待10分钟左右,等解析记录生效。 申请成功后 点击下载,按照你的需求下载,我这里用的是Nginx服务器后台,所以我下载Nginx的,然后解压到桌面。 SSL证书安装: 打开群辉"控制面板/安全性/证书",点击新增,选择"添加新证书",下一步选择"导入证书" 导入成功后就能看到一个新证书了。 点击"配置"为你的反向代理配置为刚刚导入的证书 点击"确定"保存,即可! 0X05 ...
告别端口号,用HTTPS二级域名访问你群辉内的服务
他做的是一个反向代理 反向代理我一直理解的就是一个替换,一个跳转。 比如我之前在路由器上做过端口映射,对外打开的端口是5002,对内打开的端口是445。也就是说当我外网访问自己的群晖时,虽然我输入的是5002的端口,但是我访问的是群晖上的445的端口。当然这里面应该是有区别,不是很精确~~
群晖上也有专门的反向代理的设置
notion image
来源应该就是外网用什么地址什么端口来访问,而目的地就是准确的、真实的要访问的地址。 从上图来看就知道我的想法,外网80端口访问,那我就不用再加端口号,实际上我访问的就是5000的端口。当然结果是失败了,我还在那里傻了吧唧的试了半天。不对的原因也很简单,80端口都是被封闭的,要是这样就可以,我会还不如在路由器那里改。我看上一个大佬的文章来源是开的443。443也跟80一样不用输入端口号,但是要做ssl证书啊,就很麻烦。而且后来我试了,443我这边也已经被封了。
好吧,总之这个解决端口号的方法已经失效了。 就在我万念俱灰的时候找到了一个新的解决办法--隐性url转发 也就是说看上去我访问的是nas.xhhdd.cn实际上我访问的是nas.xhhdd.cn:5000真的是完美解决。
notion image
行,到这里应该是差不多了。只是有点可惜的就是阿里云的隐性转发只支持两条。购买他们的解析服务好像是要多一些,但是我也没买,现在还用不到。

ddns动态解析

到现在为止,我已经可以直接利用自己的域名不加端口号直接访问群晖服务了。但是还有一个事情没有做完。因为我的虽然是公网ip,但是并不是固定的,所以在刚才域名解析的时候,虽然现在我查我自己的ip是1.1.1.1,但是过会可能变成2.2.2.2。那解析自然就失去效果了。 所以他们说的ddns动态解析,我就简单理解为一旦我家ip地址变了--通过某种方式告诉阿里云--然后阿里云再解析到我现在的ip地址
网上有一个很赞的文章讲了一下全过程
我对照试了一下,没有什么问题,刚才这个步骤里的通过某种方式告诉阿里云,在这是通过docker装一个容器然后实现的。只要我家ip地址变了,阿里云那边就会同步变化。

应用程序设置独立门户域名

群晖上本身是有比较多的应用的,我一般使用的比较多的就是邮箱和ds自带的播放器。现在的想法就是说,输入域名mail.xhhdd.cn就可以直接打开群晖的邮箱界面。 这要怎样实现呢?
我还是看的这位大佬的文章 思路是这样的,首先比如说我想要访问群晖的邮件服务,那么通常的情况下就是我刚才自定的域名加上端口号就可以了,比如说nas.xhhdd.cn:1234。但是现在想要mail.xhhdd.cn就直接打开群晖的邮件服务。那么群晖邮件服务这里要进行一个配置,就在应用程序设置独立门户域名这里。
notion image
然后阿里云上面当然也是要域名解析到我家里的ip,而且因为不是固定ip,还需要做一个ddns动态解析。上面的文章就是直接采用一个别名记录的方式,把mail.xhhdd.cn解析到nas.xhhdd.cn。当然同样还是需要带上端口号。
最后理清一下思路
  1. 群晖上配置应用程序的门户,且需要带上端口号
  1. 阿里云添加别名记录直接解析到最开始配置了ddns的那个域名
所以我如果直接隐性url转发的话不需要配置这个
  1. 应用程序门户配置好端口号,如1234
  1. 阿里云直接解析到nas.xhhdd.cn:1234

小结

域名与群晖需要联系起来
  1. 首先阿里云平台解析到自己家的ip地址【ip地址随便填就可以了】
  1. 群晖上安装一个docker配置阿里云的ddns解析。
  1. 群晖的外部访问上要填写刚才解析的域名
  1. 路由器做好端口映射!!
取消端口号
  1. 阿里云上配置url转发,转发到刚才配置的域名+端口号的形式
  1. dsm管理界面默认是5000,其他的需要自己添加端口号访问
  1. 路由器做好端口映射!!
annie--视频下载神器圣诞节快乐