利用 HUAWEI EC2108V3 实现 FreeDNS 动态域名解析

首先要说说,FreeDNS 真心是非常强大非常好的免费 DDNS 服务提供商,完全免费就不说了, 支持一级域名(也就是你自己花钱注册的域名),还支持 URL 转跳,这个懂的同学不用多说,也就是说,利用 FreeDNS,你完全可以在家里用你的家庭宽带搭建自己的网站服务器,因为 FreeDNS 会为你实现动态 IP 地址和 URL 转跳绕过电信 80 端口限制,不过,在这篇教程里,我们不会提到 freedns.afraid.org 网站上的设置,我们只涉及机顶盒部分的设置。

那么,我们就来说说为什么要用一个机顶盒来干这事儿,大家都知道,一般的路由都带有一些 DDNS 功能,但大多都是什么花生壳啊、3322哪些,要么是收费,要么只能使用二级域名,弄出来总是不成气候,而且国内所有的域名服务商都不会提供 URL 转跳功能(具体原因自己 Google),所以,路由器自带的 DDNS 是用不了啦,那么就只能通过电脑来实现了,可是要在家里24小时开着一台电脑只为这个动态域名的话,是不是有点太奢侈了(因为我把 Web 服务器托管了,家里需要动态域名是用来远程开启和关闭我家里的电脑和访问我的 NAS),那么,机顶盒这时候就显得尤其有用了,首先因为他功耗小,没有风扇很安静,第二,它也是适合长期开机,不关机的(坦白说,我就是个从来不关机顶盒的人,当然有些强迫症是要关机顶盒的,我就不说了)。

那么,我们就来说说到底怎么干吧。
首先,EC2108V3 拥有一颗 Hi3716M 芯片,运行着一个 ARM 嵌入式 Linux 系统,这就为实现动态域名解析服务奠定了基础,那么,我们只需要知道步骤就可以了。

第一步:连接上你的机顶盒

有些版本的机顶盒,可以直接用 Telnet 连接,可是我这个不行,我这个是电信最新版的,Telnet 已经被屏蔽了,所以需要用华为 STB 工具先打开机顶盒的 Telnet 端口。(当然也可以用 TTL,不过这个第一有些复杂,第二需要拆开机壳,会失去质保)
1、首先确保你的电脑和机顶盒处于同一个局域网,然后下载华为 STB 工具:点此下载
2、解压后打开工具,输入机顶盒 IP 地址(在机顶盒设置页面里可以看到),输入用户名 huawei,密码 28780808,点确定,进入机顶盒设置。
3、在 STB 工具上切换到第二项机顶盒设置标签卡,在设置里找到 Telnet,然后选择启用,保存退出。
4、在你的电脑上打开命令行,输入:telnet (这里填你的机顶盒 IP),如果没有问题,你的终端窗口会让你输入用户名密码,根据提示输入用户名 huawei,密码 28780808,点击回车后就登录了你的机顶盒界面了。

第二步:使用机顶盒运行脚本实现 DDNS
FreeDNS 动态域名解析的服务端有非常非常多的程序,我们这里用一个脚本来实现,这个脚本也是 Freedns 官方网站里提供的 Linux 下动态更新域名 IP 的脚本,我们要利用 EC2108V3 机顶盒里的 Linux 系统下的 Crond 服务来实现自动脚本运行计划,所以首先第一步我们就是把脚本放在机顶盒里。按理说,脚本都应该放在 /etc 目录下,但是 EC2108V3 使用了cramfs 文件系统,/etc 目录是只读的,所以,我们把脚本文件放在 /var/etc 目录下,键入命令:

busybox vi /var/etc/freedns.sh

因为 EC2108 是嵌入式 Linux 系统,所以很多程序都是在 busybox 下的,vi 也不例外。
打开 vi 后输入如下内容:

#!/bin/sh
#FreeDNS updater script

UPDATEURL="http://freedns.afraid.org/dynamic/update.php?<此处放入你的更新代码>
DOMAIN="<此处放入你要更新的域名>"

registered=$(busybox nslookup $DOMAIN|tail -n2|grep A|sed s/[^0-9.]//g)

  current=$(wget -q -O - http://www.robvanderwoude.com/wanip.php|sed s/[^0-9.]//g)
         [ "$current" != "$registered" ] && {
                   wget -q -O /dev/null $UPDATEURL
                             echo "DNS updated on:"; date
                               }

按 :wq 保存退出

然后我们将文件权限更改为可执行文件。

busybox chmod 777 /var/etc/freedns.sh
busybox chmod +x /var/etc/freedns.sh

查看一下文件权限:

busybox ls -l /var/etc/freedns.sh

确保文件权限为 -rwxrwxrwx
然后运行测试一下脚本文件是否正常。

sh /vat/etc/freedns.sh

到 freedns.afraid.org 上看一下,你对应域名的 IP 是否更新了?如果更新了,那么你的脚本就成功了,如果没有更新,再次检查脚本文件。
脚本文件设置好以后,我们就要它能定时自动执行,所以,我们就要用到 Busybox 里的 Crond 服务了,关于这个服务,我们这里不多讲,用过 Linux 的同学都很熟悉了,如果想了解,请自行 Google.
首先创建 Crontab 配置文件的存放路径:

mkdir -p /var/spool/cron/crontabs/

然后编写 crontab 的配置文件,注意,不知道什么原因,在这个机顶盒上不能用 crontab 命令编辑,它始终会提示没有找到文件,但是如果我们手动用 vi 编辑是没有问题的

busybox vi /var/spool/cron/crontabs/huawei

输入以下内容:

*/5 * * * * /var/etc/freedns.sh

这代表每 5 分钟运行一次这个脚本,你也可以更改 /后面的数字来调整频率,建议不要太久,免得玩意切换了 IP,脚本还每运行,造成很长时间 IP 不能被更新,也不要太短,给机顶盒符合带来负荷(毕竟这个拿来看电视才是主业嘛)。
然后输入如下命令运行 Crond 服务,让这个配置开始运行起来(其实不输入也可以,貌似这个服务在系统里本省就是运行的,但是我用 ps 却看不到,不知道为何)。
输入 busybox ps | grep crond
可以查看服务是否运行。
这时候你课题可以手动在 Freedns 中把这个域名的 IP 改成别的,然后过5分钟看看它是不是变回来了?如果是,你就成功了,机顶盒就开着吧,别关了,你的动态域名就能自动更新啦,至此你的动态域名更新就全部设置完毕了。

题外话:
然后在你的路由器上开个 3389 端口,再把电脑的 WOL 开起来,你懂的啦。再推荐一个 iOS 上的 WOL 软件,名字叫
WOL Control,远程连接软件用微软自己的 RD Client(需要美国 App Store),然后你就可以随时随地在外地开启你家里的电脑,并且远程连接上去啦。

Related post

  1. NO IMAGE
  2. NO IMAGE
  3. NO IMAGE

    2014.10.06

    HUAWEI EC2108V3

There are no comment yet.

ABOUT

老赵的个人博客,关于 Mac, iPhone, iPad, iPod等产品的软件和硬件技术交流。也讨论Linux/UNIX技术,服务器运维技术等。

2025 年 1 月
 1234
567891011
12131415161718
19202122232425
262728293031  

Powerd by WordPress on Xserve
Xserve 2009
@2012-2024 HelloMac Copyright