51beer 发表于 2018-7-12 16:08:33

黑群晖组建原理指南(三)——阿里云DDNS、SSL

本帖最后由 51beer 于 2018-7-12 18:48 编辑

该贴主要讲解黑群晖的外网访问以及怎么使用阿里云DDNS和加入SSL的https安全连接一、DDNS
DDNS的中文名为动态域名解析,什么意思呢,我们经常会在win系统里看到DNS,也就是域名解析,家庭宽带用户目前的DNS都是PPPOE拨号后运营商自动分配的,包括自己的IP地址也是自动分配。
我们日常访问网页都是输入的网址,目的是网址方便用户记忆,但实际上在网络中网址匹配的是相应的IP地址,DNS的作用就是将输入的网址翻译成对应的IP地址来进行网络访问,这个过程对用户是不可见的,只是用于服务器以及路由之间的数据传输。
①为什么需要公网IP、DDNS?
首先,家庭网络的的组成模式,对于运营商来说属于内网,一个小区或者一栋楼都是公用一个路由,道理就相当于我们家里的路由器,下面接了很多电脑、手机,这些电脑手机虽然都可以独立上网,但是对于路由器级别以下的所有设备,其实都是内网,对外只通过一个ip地址来交换数据,至于怎么把对应的数据分发给对应设备,这都是路由器的工作。这就是为什么路由器都有设备连接的数量限制,是因为数量越多,路由器的分发工作量就越大,对性能要求就越高,过高之后就超过了路由器的运算能力,导致整个网络卡顿、甚至瘫痪。
其次,家里网络每次重新连接,都会在路由器端重新分配内网的IP地址,所以单纯的让域名(网址)和IP地址绑定是没有实际作用的,除非你每次都去手动更改,更何况,我们的IP地址是一个楼一个,单纯的IP地址绑定,无法让路由器知道这个域名指的是该网络中的哪个客户机,只能以为是找路由器本身,结果肯定是没办法进行正确的沟通,导致无法访问。所以,我们需要有一个真的公网IP,或者虚拟一个公网IP。
真的公网IP,相当于你的家庭网络是在互联网上独立的存在,而不是你们小区路由的内网,这样外网可以直接找到你这个客户机。实现方法呢,普遍的是打运营商电话,告知需要公网IP服务,我自己是电信,没有为难我,直接就后台操作了,告知半个小时,重启光线猫、路由器就ok,其他运营商看个人沟通技巧哈。
虚拟公网IP,这里面用到Frap内网穿透工具,本篇不过多介绍,有需要的大家自行搜索。
最后,你获得了公网IP,但是,这个公网IP只是你客户机的IP级别发生了变化,由下级IP变成了上级IP,但是却不是一直固定的,每次重新连接PPPOE的时候,运营商都会重新分配一个公网IP给你,所以单纯的用域名和IP地址绑定,也只能实现短时间的访问,并不能一直访问。
DDNS出场
DDNS的存在就是将你的IP地址实时和域名进行绑定,你的公网IP发生变化后,都会同步给DDNS服务器,告诉他你现在的IP是多少,DDNS就会将域名和IP地址的关系进行修改,这样你用域名访问的时候,就会对应的跳转给记录的IP地址,实现外网访问。
②DDNS有哪些选择
常用的DDNS有花生壳、阿里云、腾讯云、3322.org等等,最简单的就是花生壳,很多路由器包括DSM都自带这个服务,填入相应的域名、用户名、密码就可以,域名可以用免费的,或者一次性买断的,基本都是二级域名,也就是不是www或者无前缀的域名,通常是*.*.xxx格式,字母都比较生疏,不好记,或者就是显得不够高端,本篇主要讲解阿里云服务。
二、阿里云域名购买、SSL申请
①注册阿里云
这个简单,淘宝支付宝等等账号都可以登录
②购买域名



输入自己想设定的域名,然后根据价格挑选吧,我选的是top域名,毕竟便宜,之前看到很多帖子有找到10年68的域名,我实在没有找到,可能现在涨价了,我自己买了个5年68的,价格真的不便宜哈
注意:这里买的域名是顶级域名,如图,购买的是gebi1beer.top域名,你可以在该域名下添加无数个*.gebi1beer.top的域名,并且不需要单独购买,只需要单独设置域名解析就好(解析后面讲)

域名购买成功后,进入控制台,域名状态应该是待实名,提交要求的实名资料,就会进入实名审核,提示是3-5个工作日完成审核,其实一般周内买的话,一天就ok了,周末买的话,要等到周一才可以。
③获取许可ID及秘钥
审核通过后,我们在控制台中,头像下面点击accesskey,来获取accesskey ID和accesskey Screct,把这两个记录下来保存,后面需要用。
④获取SSL证书
我们通过上面的步骤获取的域名其实已经可用,之所以申请ssl证书是因为,普通的http传输的信息是非加密的,任何劫持工具都可以对内容进行获取,虽然一般人不会这么做,但是毕竟涉及nas的大量数据的安全,所以我们用SSL证书,让整个外网访问过程是加密的。
SSL证书获取这里我也踩了很多坑,我这里介绍一个最简单的,容易实现的,不需要太多修改的步骤。
a. 购买证书


根据自己需求选择相对应的产品,目前免费的就这一种,只能用于单个域名,尽管你的是顶级域名且次级域名可以自己创建,但是证书还是只能用于一个域名,无论这个域名是顶级的还是次级的(这里有想需要通过次级域名单独访问每个nas的功能,且都是授信的SSL证书的话,就需要单独为每个域名购买免费的证书,除非你花钱买可以用于多个域名的证书,很贵,我就不考虑了)。
注意证书的有效期是一年,到期之后需要再操作一遍的。
b. 证书信息补全(域名验证)
其实这一步的操作,就相当于完成证书和域名的绑定,但是绑定的条件是需要认证你这个域名是有效的,操作过程如下:


内容填写如图所示,域名验证类型我们选择DNS,并勾选下面的复选框
因为我们刚才是在阿里购买的域名,所以这种方式是最简单的方式,阿里自己验证自己的域名是否有效,比我们自己去假设web服务器来验证要方便的多。这里是我踩过的坑,很多教程让使用文件验证,然后再DSM上下载web server套件进行设置,很多次都不能成功,主要是我的80和443端口都被运营商封禁了,没办法成功。
c. 下载证书
通过上面的操作,域名很快就可以验证成功大概5-10分钟就可以了,状态会变为已签发,这时候我们就可以下载证书了,操作如下

进入证书管理,后面点下载,注意选择apache版本,这是因为DSM用的是apache的服务器,下载后解压会有4个文件。
三、DSM系统证书导入
进入nas-控制面板-安全-证书页面
新增并导入证书,具体文件对应导入

至此证书已经完成导入,接下来需要配置证书的使用范围

这里所有的服务都选择你所导入的证书即可。

四、群晖系统的DDNS设置
群晖系统的默认服务中没有对阿里云的DDNS有支持,所以我们需要几个准备工作
①安装docker
②docker中安装阿里云的容器——这里需要有btrfs的存储空间
进入docker注册表中搜索aliyun,并下载

③启动并配置aliyun容器

容器名称随便写,自己清楚就好,这里需要进入高级设置

选择环境标签,安装图示填入刚才上面记录的accesskey ID 和accesskey secret ID,Domain这一栏注意,如果你是顶级域名访问,比如gebi1beer.top访问,那就要填写@.gebi1beer.top,如果是二级域名,就需要填写相应的二级域名,比如nas.gebi1beer.top。最后的更新时间,填多少影响不大,因为这个主要受阿里的现在,我购买的域名按理限制10分钟更新一次,所以你可以填小于10分钟的秒数就可以了,目的是为了更新频率高一些,能第一时间将变化的IP同步到阿里云的解析记录。
④配置完成后,启用这个容器就完成了阿里云的DDNS配置
小提示:如果有失败的情况,可以手动到阿里云域名管理中建立一个解析,可以随便写,正常情况的话,容器会修改这个记录为正确值,同时你的阿里云控制台也会有相应的消息通知。
具体步骤



进入域名服务,点击解析,选择添加记录
类型选择A,后面解释的很清楚,就是把域名解析到一个IPv4的地址(这个地址也就是我们的公网IP,正是我们需要的功能,其他功能大家可以研究)
如果用顶级域名访问,主机记录栏填@就可以
记录值这里实际需要填写我们的公网IP,但是这个工作我们交给了docker中aliyun容器来做,所以我们随便填一个地址就好。
TTL其实就是指这个的IP的生存时间,这个级别的最少是10分钟,所以选择最小的,方便容易更快的同步变更的公网IP地址
至此完成的DDNS的全部配置
⑤原理解释
其实docker就是DSM中的小型虚拟机,容器理解为在虚拟中执行的软件,这个aliyun的容器的功能,就是通过阿里云的规则,和阿里云的解析服务器进行沟通,按时间间隔同步修改域名的解析记录。本质上和群晖内置的花生壳一样,只是花生壳原生支持,我们这样的方法是曲线救国
⑥至于感谢
其实能够实现这么多功能,都离不开各个大神编写的程序,看似简单的东西都是要耗费很多的精力,没有他们辛勤的开发,就没有我们现在用的这么顺畅的功能,非常感谢~
五、简述内外网自动识别
实现方法不赘述,帖子一搜就有
关键步骤①设置路由器的首选dns地址(第一个dns地址)为nas的ip地址,一般都是192.168.*.*,该dns信息会同步给连接路由的内网设备
            ②nas安装dns server,添加master区域的解析,这原理和阿里云的解析服务一样,将域名解析到内部的nas IP地址(同样是A类型)
            ③通过本地电脑ping 域名,得到反馈的是内网的IP地址
原理流程:本机访问域名,域名解析提交给首选dsn服务器(也就是路由器上设置的nas的IP地址),nas上的dns server获取到了域名信息,通过设置的解析逻辑,反馈域名所对应的IP地址(②步骤添加的解析逻辑为该域名对应的是群晖的内网IP地址),改地址实际为群晖的内网IP地址,所以电脑获得该域名的解析地址为192.168.*.*,该地址发送给路由器后,路由器判断为是自己的内网,于是就在内网传输数据,实现了内网识别。外网之所以也可以正常访问,是因为外网的dns服务器不是路由上设立的,所以最终会识别给阿里云解析,阿里云的解析又是docker中的容器同步的家里nas的公网ip,于是实现了外网的访问,初次设置会出现内网不能识别的情况,需要在windows中,进入cmd命令行,执行 ipconfig /flushdns 来清理系统历史记录的dns,重新让路由器分配,多试几次就好了,不行就路由器、光纤猫、电脑使用重启大法。
后遗症,这样的设置不可能完全没有问题,因为这样的设置其实降低了我们日常外网的访问效率,所有的外网都会从首选dns走一遍,结果无反馈才会走到我们真正想让解析的dns服务器,有时候网页需要刷新一遍才能出来,不过总体问题不大,毕竟黑群晖的性价比远大于这个小问题。

六、总结
今天一口气写了三篇,大多数东西比较基础,目的只是想给新人说清楚原理,有些看似很高大上的流程,其实原理非常的朴实易懂,阿里云ddns和SSL的安全连接,后续还有很多工作需要做,DSM的设置,以及路由器的端口转发,类似的教程很多,基本都没有什么难度,单独写出来是因为自己在阿里云的配置踩了很多坑,很多的帖子说法不一,时间也比较早了,能够实现的方法也不只是docker,很多可以刷梅林的路由器也是可以直接安装aliddns的软件,设置起来比群晖更简单,但是路由器可能会涉及很多人无法使用,所以我这里尽量以群晖DSM系统为基础,更新一下最新的流程,简化一些不必要的步骤,让新人能够更快的完成基础的安全部署,剩下的,大家尽管折腾~

感谢~

alpha1 发表于 2019-1-3 13:46:37

学习了, 感谢分享

-7-7- 发表于 2019-1-3 12:43:35

自身就有阿里云域名 就是不会弄

foxfans 发表于 2018-12-14 08:55:39

又学习了,非常感谢

sd4232601 发表于 2018-12-4 00:07:09

大神,未检测到DNS配置记录如何解决

sd4232601 发表于 2018-12-4 00:05:21

大神,验证ssl证书的时候提示未检测到DNS配置记录,如何解决

mumucall 发表于 2018-12-3 21:05:53

{:7_189:}{:7_189:}{:7_189:}

无意无痛 发表于 2018-11-21 15:03:16

mark一下,很好

51beer 发表于 2018-7-17 10:19:38

jg98520 发表于 2018-7-12 20:58
我的电信宽带也是443端口封了。请问你是怎么配置SSL证书实现HTTPS外网访问的,我的域名和证书也都是阿里云 ...

主要是SSL要和域名绑定啊 私信加我教你

johnnyfuture 发表于 2018-7-17 10:02:45

mark一下,很好

jg98520 发表于 2018-7-17 09:44:17

bazonel 发表于 2018-7-13 10:45
支持,我也刚买了10年的阿里云域名,140多吧,两包烟钱。但是目前家里的光纤是光猫拨号的,要让师傅上门改 ...

这个应该自己可以解决,网上教程很多,拿到光猫的超级密码就可以随便自己设置了。用谷歌浏览器,输入光猫登陆地址,一般是192.168.1.1,用光猫背面印着的普通账号密码登陆,然后地址栏输入192.168.1.1/backupsettings.conf,下载backupsettings.conf这个文件(测试谷歌浏览器可以自动下载,IE无法自动下载),用记事本打开下载,查找“password”得到密码串和账号:

binggu 发表于 2018-7-13 17:13:33

阿里的免费证书没有了。

三年不梳头 发表于 2018-7-13 15:16:52

挺详细的教程,不过阿里ssl证书没有找到免费的,是过期了吗,还是要有阿里的域名才有免费的?

51beer 发表于 2018-7-13 13:27:57

bazonel 发表于 2018-7-13 10:45
支持,我也刚买了10年的阿里云域名,140多吧,两包烟钱。但是目前家里的光纤是光猫拨号的,要让师傅上门改 ...

是的 光纤猫要改成桥接模式 让人来改就行 也可以自己网上找自己猫对应的教程改 难度不大

bazonel 发表于 2018-7-13 10:45:27

支持,我也刚买了10年的阿里云域名,140多吧,两包烟钱。但是目前家里的光纤是光猫拨号的,要让师傅上门改成路由器拨号才能在路由器设置ddsn对吧。

51beer 发表于 2018-7-13 09:09:23

jg98520 发表于 2018-7-12 20:58
我的电信宽带也是443端口封了。请问你是怎么配置SSL证书实现HTTPS外网访问的,我的域名和证书也都是阿里云 ...

443封了,外网访问必须加端口,没有办法直接访问的,想直接访问实现起来是相当麻烦的,要通过隐形的中间转发,流量相当于全部要转发

qcgod 发表于 2018-7-12 22:54:14

先mark,以后应该会很有用处的

wewilliamchen 发表于 2018-7-12 21:45:46

感谢!!!

51beer 发表于 2018-7-12 21:21:39

jg98520 发表于 2018-7-12 20:58
我的电信宽带也是443端口封了。请问你是怎么配置SSL证书实现HTTPS外网访问的,我的域名和证书也都是阿里云 ...

443端口封掉的话,可以直接域名加5001端口访问就好了哈,单纯的域名没办法直接访问,连转发都没戏,因为443端口直接就没办法通,所以目前在外网只能这样访问。但是好在ds file、driver、moment这类工具,都是直接启用SSL连接就可以了,不需要带端口,当然,应用的端口需要在路由器端设置端口转发规则

jg98520 发表于 2018-7-12 20:58:56

我的电信宽带也是443端口封了。请问你是怎么配置SSL证书实现HTTPS外网访问的,我的域名和证书也都是阿里云申请的,外网加端口可以正常访问,但是外网https访问一直没有成功,可以介绍详细点吗,怎么设置?
页: [1]
查看完整版本: 黑群晖组建原理指南(三)——阿里云DDNS、SSL