请选择 进入手机版 | 继续访问电脑版

狗趴(GodPub),开源硬件学习与实践

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 10943|回复: 0

【Joytag 学IOT】使用HE.NET的Dynamic DNS &NAT

[复制链接]

84

主题

143

帖子

725

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
725
QQ
发表于 2016-6-11 08:40:43 | 显示全部楼层 |阅读模式
原文信息

标题:【Joytag 学IOT】使用HE.NET的Dynamic DNS
连接:http://forum.godpub.com/thread-125-1-1.html
备注:狗趴论坛首发,转载请注明出处。


简介

原则上,这个应该算纯网络部分,貌似和IOT没啥关联。
但是我计划用放置在家中的香蕉派(Banana PI M2+)来作为IOT系统中的网络服务器,因此如何访问到家中Bananpi M2+就成为一个首先要解决的问题。
而Dynamic DNS 无疑是解决这个问题的最佳方案(至少我这么认为)。
所以,把这部分记录下来,算是我学习IOT的一部分吧。


关于Dynamic DNS

简单说一下我对Dynamic DNS 的理解。

要说Dynamic DNS,就不得不提DNS(域名解析服务);要提DNS,就不得不提域名。
简单的讲,互联网的主机靠IP来区分,要访问一台主机上的服务(HTTP、 FTP、EMAIL、DATABASE等)我们首先要知道对方的IP地址。
但是互联网的主机千千万,抽象的IP地址根本无法记忆,而域名就是给这个地址起一个好记的名字
所以,我们就可以通过www.baidu.com这样的域名来访问到百度,通过www.godpub.com这样的域名来访问到狗趴论坛。

而从域名到IP的过程,就是域名解析,是由域名解析服务器(Name Server)来完成的

而另外一种场景就是分配给主机的IP不时的变化
这时如果使用普通的域名解析服务,我们需要不时的修改解析记录,来将域名指向更新后的IP。
这时会有一些问题存在,比如变化频繁,修改工作量大;变化时机不定,无法确定何时修改。
Dynamic DNS 很好的解决如上问题,它的基本原理就是,当主机关联的IP变化时,自动更新解析记录。

所以,屏蔽掉一些技术细节。
通俗的讲:
  • 互联网上的主机靠IP区分和访问。
  • 域名给IP地址起了个好记的名,从域名到IP的过程就是域名解析。
  • Dynamic DNS自动更新解析记录,适合关联到主机的IP不时变化的场景。


Free DNS service  by he.net

he.net是老牌网络服务商啦,十几年前就使用过他们的域名解析服务。
现在他们的DNS服务支持Dynamic DNS啦。
关于他们的DNS服务以及Dynamic DNS的使用细节,请参考:https://dns.he.net/

使用Dynamic DNS大致需要如下步骤:
  • 将要解析的域名DNS设置为he.net的DNS
  • 在he.net的DNS面板中添加域名
  • 添加对应的解析记录(比如A记录),并选取“Enable entry for dynamic dns”
  • 生成用于DDNS客户端的密码(Generate the key used for dynamic DNS updates)
  • 在主机上使用DDNS client。(设置定时任务)


操作实例

1)将域名DNS设置为he.net的DNS
IOT_NS.PNG

2)在he.net的DNS面板中添加域名
IOT_AddDomain.PNG

3)添加对应的解析记录
IOT_AddA(DDNS).PNG

4)生成用于DDNS client的密码
IOT_DDNS_PW.PNG

5)设置DDNS client
  1. sudo crontab -e
复制代码
添加:
  1. */5 * * * * curl "https://dyn.dns.he.net/nic/update" -d "hostname=iot.godpub.com" -d "password=XXXXXX" -k
复制代码


设置NAT

对于家庭局域网内的设备而言,都通过一个公网IP(由ISP分配)出去的。
我们上述DDNS设置最终解析到的就是这个公网IP。
通过这个IP是无法直接访问到局域网内的设备的,所以我们需要使用NAT(网络地址转换)来将对应的服务映射到局域网的设备。
比如,将HTTP服务、MQTT Broker服务等映射到我的局域网香蕉派上。
这个很简单的啦,进路由器设置一下就可以啦。这里不多讲啦。


当前战果

经过DDNS以及NAT设置,
并且在我的香蕉派上装了个apache2 web server
详情参考: 【JoyTag M1+学习】M1+ 安装Apache2、PHP5、MYSQL (同样适用于其它香蕉派、树莓派设备)
现在访问http://iot.godpub.com/ 就会打开我香蕉派上的web server 欢迎页面哦
当然,如果您访问不到,可能是我拔电源了


总结

本文简单介绍了域名、DNS、Dynamic DNS的原理。
并已he.net的DNS服务为例,为iot.godpub.com添加了一个Dynamic DNS的A Record。
并通过NAT,将http服务映射到局域网内香蕉派上的80端口。
限于篇幅,对一些技术细节只做通俗的解释,想了解对应知识的,请参阅相应的技术文档。

谨以本文抛砖引玉,希望大家可以尝试在局域网设备上折腾出更多好玩的功能,而不用购买昂贵的云服务或者独立主机哦。

后续更多内容,请关注狗趴论坛:http://www.godpub.com
天理路上甚宽,稍游心,胸中便觉广大宏朗;
人欲路上甚窄,才寄迹,眼前俱是荆棘泥涂。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|狗趴(GodPub) Arduino&Raspberry Pi开源硬件学习与实践[QQ群:20085629]  

GMT+8, 2024-3-29 10:23 , Processed in 0.028913 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表