er-x 2.0.9 DDNS花生壳免费域名的使用

作为ER-X的新用户,在使用过程中遇到不少问题,很多在论坛找到了解决办法。前段时间在给ER-X路由器添加花生壳的免费动态域名时却卡壳了,虽然论坛里有同类型的帖子,但在我参照着在自己的路由器上设置却总是不能成功,试着在论坛求助,可坛子里的大侠们对我等这类菜鸟级的问题也是爱搭不理,无奈只能自己不停地摸索,今天终于取得成功,下面分享下我的办法:
我的ER-X目前的版本号是EdgeRouter X v2.0.9-hotfix.2,家里的宽带是联通电信双wan拨号接入,电信给分配的是公网ip,想使用花生壳免费域名绑定到电信公网ip上,一开始是参照请教如何ER-X设置花生壳DDNS和类似的帖子里的方法设置DDNS,尤其是注意到要在Config Tree/dns/dynamic/interface/pppoe1/service/coustom-oray下的option文本框里添加自定义选项内容“script=/ph/update,ssl=no”,但无论是通过webgui还是CLI,多次尝试均无法在花生壳上注册上我的公网IP,使用show dns dynamic status命令查看动态域名状态,均显示为!donator,经了解反馈此状态的含义为免费用户不可使用SSL,由此判断,我在config tree里的添加的ssl=no选项没有起到作用,路由器还是以SSL方式访问花生壳的服务器进行注册。无奈只能暂时搁置。

今天无事在论坛里闲逛,看到了帖子USG快速实现免费花生壳DDNS自动上报,受到了启发,于是尝试按照此帖的思路进行折腾。
第一步,按照前面的教学帖,通过web gui或cli方式正常设置花生壳域名,完成后查询ddns状态,反馈的还是!donator。

第二步,使用PuTTY登录到路由器,输入
sudo su
sudo -i
获取到root权限,然后通过vi编辑器编辑/opt/vyatta/sbin/vyatta-dynamic-dns.pl,将136行的
$output .= “daemon=1m\n”;
改为
$output .= “daemon=1d\n”;
再将138行的
$output .= “ssl=yes\n”;
改为
$output .= “ssl=no\n”;
按ESC键,再键入wq保存退出。

第三步,重启路由器,重新登录到CLI,输入show dns dynamic status查询DDNS状态,已经反馈为good,说明花生壳域名设置成功了。

然后在外网状态下通过域名访问路由器,成功显示ER-X的web登录界面。
之后根据自己需要设置nat转发就可以顺利访问家里的内部设备了。

最后,希望此帖能给无法成功设置花生壳域名的朋友一些启示和帮助。

在命令行里直接输入以下就基本可以了的:
示例如下:

configure        
set service dns dynamic interface pppoe0「这个端口名称根据你上网的那个端口改」 service custom-oray host-name 「域名」
set service dns dynamic interface pppoe0 service custom-oray login 「账号」
set service dns dynamic interface pppoe0 service custom-oray options script=/ph/update,ssl=no
set service dns dynamic interface pppoe0 service custom-oray password 「密码」
set service dns dynamic interface pppoe0 service custom-oray protocol dyndns2
set service dns dynamic interface pppoe0 service custom-oray server ddns.oray.com
commit
save

LZ只需要根据自己账号的服务级别更改/opt/vyatta/sbin/vyatta-dynamic-dns.pl里的$output .= “daemon=1m\n”;时间参数就好,就是隔多久报一次,太频繁会被BAN,太少了会跳回花生壳的广告页面,自己查一下自己账号的服务承诺就好。
原生的daemon=28d相当于是28天,看上去是楼主以为1m是一个月,其实应该1m代表是1分钟……更新太频繁被BAN了而已,给自己挖坑的示例。
「你说的那个!donator提示其实就是服务方提示你,以你的上报频率速度要收费VIP才支持 :crazy_face: 我在自己帖子的示例中用的是1h,就是1小时,基本没发现啥问题

感谢catseye的回复指导,虽然今天按照你的帖子折腾成功,看来还是知其然而不知其所以然,看到你的进一步指导,也明白了之前之所以不成功的问题所在,谢谢!

根据catseye的回复,我刚才进行了试验,把vyatta-dynamic-dns.pl里138行的
$output .= “ssl=no\n”;
恢复为
$output .= “ssl=yes\n”;
结果DDNS就恢复为!donator的状态,初步判断,此项的设置对免费花生壳域名是否能成功注册公网IP还是有影响的。

哎……
可能你只看了一部分,我帖子里的意思是先用命令行把上面的那些参数快速键入,这里面本来就有SSL相关的参数一次性就设置完成了,没必要去点配置树 :sweat_smile:而且还准确有效。因为打错字了,反馈就是错误,不用去猜测对错了。
而且对于不同级别的服务来说script=/ph/update这部分的参数也会不同,所以命令行更适应各种变化。

SSL是加密传输方式,可以保证你的账号密码不会轻易被破解,而现在普通的做法就是明码的……因此这个加密也是VIP付费用户的专利。但是国外的大多数类似服务即便免费也是必须SSL=yes的。就国内两家拿这个作为收费的服务依据。

谢谢你的回复,我在1楼里面说明了,之前设置动态域名的方式,即通过web界面设置和你特别强调的用命令行的方式设置,并且查看了配置文件config.boot,确认域名配置信息都是正确写入,可就是这样操作过多遍,动态域名始终注册不上。
只有今天在脚本里把ssl设置为no后,就成功了。
这样的情况,我的理解就是脚本里的ssl设置优先级高于配置中的option选项,查看脚本文件生成的ddclient_pppoe1.conf文件,以上脚本的修改和config.boot中dns的设置都反映到其中,很大的可能性就是系统在解析时,脚本生成的ssl项与用户设置的ssl项没有作比对,默认以前者为准。这是我基于实际操作的得出猜想,仅供参考。