硬件:BPI-M1forum
软件:Ubuntu14.04下载地址
其他:动态公网IP,端口转发
一、转入域名管理
首先,需要先去HE DNS上面去注册个账户,这个服务商提供免费好用的DDNS服务,当然把域名日常管理都转到这里,也是OK的,除了首页及其简陋以外,还是非常好用的。
然后添加你购买的域名(add a new domain)到 he.net 里面。再然后,到你的域名供应商(我的是 name.com)处,把你的域名的 name severs(NS 或者叫域名服务器)全部修改成 he的域名服务器。(第二次进去就找不到了,不想吐槽he的官网了)
ns1.he.net
ns2.he.net
ns3.he.net
ns4.he.net
ns5.he.net
这样你的域名就能被 he 的 dns 解析了。
做完以上步骤,就可以开始 DDNS 的设置。接下来坑不少,多亏了二叔科技群里的大佬们热心地手把手教我才能完成。
这里也提供一下官方给的介绍页面,https://dns.he.net/docs.html,也是简陋风。
二、DDNS介绍与首次配置
- 开始之前先说说 HE DNS 的动态更新地址的流程:
第一次,需要先登录 HE DNS 的网站,生成或者设置一个密匙。然后就可以使用 HE DNS 提供的 API 使用你喜欢的方式之一(直接访问,post,get都可以,请参照上面的文档)上传或者让他自动识别你的ip即可。然后把这个 API 放入树莓派的定时任务,crontab 里面,让它每隔5分钟,调用一次 API 即可实现 DDNS。再简单点说,API 就是个 url, 相当于让树莓派每隔5分钟访问一次这个地址,服务器便会自动记录下你的新IP。
登录之后,找到NEW A
点击它,
NAME
栏填入要解析的域名,可以是顶级域名,也可是子域名,例如我的home.yelvlab.cn,填入即可。IPv4 Address
栏,如果使用DDNS那么,这里随便填,等一会是要自动更新的,如果你有固定IP的服务器,那么直接填入IP地址即可,TTL
栏,一般选五分钟,因为后面我们同步IP的时间间隔也是五分钟,这样能尽可能确保因为IP是动态的而没有即使更新记录造成的访问问题。Eanble entry dynamic dns
表示允许动态DNS,是所有的关键,必须勾选。
然后sumbit
就可以了。
在刚才添加的那条A记录
的后面有一个循环的小标志,如果没有,就是你上面没有勾选启动动态DNS,回去勾选,有的话点它,接下来就是生成我们身份认证的KEY了。
generate a key
点击它生成一个KEY,然后把它复制出来,千万要复制对,不要错,不然还要回来重复这里的。sumbit
只有提交了,才有用,不然你去调用API也没用的。API文档
然后,就是去你局域网下面的BPI-Board(推荐) or Linux PC 去执行下面的一条指令,当然,执行之前,你需要进行一定的更改,来表明你的身份
curl -4 http://home.yelvlab.cn:[KEY]@dyn.dns.he.net/nic/update?hostname=home.yelvlab.cn
- 首先,你需要把所有的home.yelvlab.cn换成你自己的域名,然后把你刚才复制下来的KEY提管到[KEY]位置,然后再去执行。
结果:
- 提示没有curl,安装一下就好
sudo apt-get install curl
. - 提示badauth,一定是你的API指令有问题,请仔细检查,或者你的KEY没有提交,一般可以回去再获取一个然后重试。
- 返回修改成功,或者没有更改,并且还有你的IP,那么恭喜,修改成功了。
上面就是整个自动同步IP的过程了,如果一直需要手动操作,那么简直zz一样,下面我们让他定时自动执行。
三、自动化执行
crontab -e
这就是我们需要用到的东西,第一次打开,会让你选择使用什么文本编辑器,我是炒鸡linux新手只会 nano。打开后,按照格式把你的 API 填进去
#for he dns to update ip
*/5 * * * * curl -4 http://home.yelvlab.cn:[KEY]@dyn.dns.he.net/nic/update?hostname=home.yelvlab.cn
/5 代表每五分钟更新一次,详细的设置,请自行百度 crontab 的用法。保存退出后,这个服务就自动运行了。
不出意外的话,你的 DDNS 设置完成了!
你可以这么测试,回到 dns.he.net, 手动设置一下 A 的IP到一个不知名的地方,坐等五分钟,看看是否能变回来。。。。