KoolShare

 找回密码
 立即注册
搜索
查看: 236|回复: 5

[教程] 解决AC68U重启后华硕自带DDNS不自动启用

[复制链接]

11

主题

100

帖子

324

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
287
魔法值
0
注册时间
2014-9-19
发表于 4 天前 | 显示全部楼层 |阅读模式
本帖最后由 xuewy 于 2019-1-12 23:13 编辑

本人AC68U,偷懒用的是华硕自带的DDNS,不记得是刷了哪个梅林固件版本后(好像是7.8),路由器重启后DDNS不会自动启用,必须web登陆,手工开启。这样非常麻烦,有时候路由器重启后忘了手工启动,在外面Aria2,putty, Winscp工具都无法连回使用。搜了下论坛没有好的解决办法。昨天终于找到终极解决打法,特此分享给大家。
首先看下面的图
DDNS1.PNG

这是手工启动DDNS的系统日志,其中用到的命令ez-ipupdate,谷歌了一下,实际上就是用的这个命令来启动DDNS的,只是不知道这个命令的详细用法,网上不断搜索和反复测试下,终于让我找到了该命令的正确使用方法:
ez-ipupdate -S dyndns -i eth0 -a x.x.x.x -h my-name.asuscomm.com -A 2 -s nwsrv-ns1.asus.com

其中X.X.X.X 换成你自己的路由器的公网地址, my-name.ausucomm.com 换成你自己的华硕DDNS的名称。

用putty登录上你的路由器,执行一下这个命令,奇迹出现了
DDNS2.PNG
你会发现DDNS update successfully. 这时你到系统日志会看到记录跟手工web页面启动是一模一样的。

好了,这还不算完,要是我路由器重启或者我的WAN突然断了,很有可能公网地址就变了,怎么办呢? 别急,我又找到一个脚本
#!/bin/sh
MY_DDNS_HOSTNAME="****.asuscomm.com"

MYIP_FILE=/tmp/myip
SCRIPT_NAME=$(basename $0)
SCRIPT_PID=`/bin/pidof $SCRIPT_NAME`
SYSLOG_TAG="$SCRIPT_NAME[$SCRIPT_PID]"
PUBLIC_IP=`/usr/sbin/wget -O - --no-check-certificate --quiet https://checkip.amazonaws.com/`
DDNS_IP=`/usr/bin/nslookup $MY_DDNS_HOSTNAME ns1.asuscomm.com | tail -n1 | sed -e 's/Address 1: //'`
UPDATE_DDNS="/usr/sbin/ez-ipupdate -S dyndns -i eth0 -a $PUBLIC_IP -h $MY_DDNS_HOSTNAME -A 2 -s nwsrv-ns1.asus.com"
echo "PUBLIC_IP : '$PUBLIC_IP'"
echo "DDNS_IP  : '$DDNS_IP'"

if [ ! -f "$MYIP_FILE" ];
then
  echo "File not found: $MYIP_FILE"
  echo $PUBLIC_IP > $MYIP_FILE
  MYIP=$PUBLIC_IP
else
  MYIP=`cat $MYIP_FILE`
  echo "$MYIP_FILE : $MYIP"
fi
echo "MYIP : '$MYIP'"

if [ "$MYIP" == "$PUBLIC_IP" ] && [ "$PUBLIC_IP" == "$DDNS_IP" ];
then
  logmsg="Public IP $MYIP did not change"
  /usr/bin/logger -t $SYSLOG_TAG "$logmsg"
  exit 0
else
  logmsg="Public IP changed"
  /usr/bin/logger -t $SYSLOG_TAG "$logmsg"

  logmsg="Updating $MY_DDNS_HOSTNAME to new IP: $MYIP"
  /usr/bin/logger -t $SYSLOG_TAG "$logmsg"

  $UPDATE_DDNS
  exit 1
fi


这里你只要把你自己的华硕DDNS名称填上,脚本会自动到AWS检测你的public IP,然后执行 ez-ipupdate 的命令。
好了剩下的就只要添加这个脚本,让它在路由器重启或WAN断开的时候执行,然后再结合Cron定时命令,你想怎么玩就怎么玩了。

1. 用winscp工具把这个脚本复制到/jffs/scripts/目录下,赋予755权限
2. 在/jffs/scripts/目录下创建一个cru.sh的脚本,赋予755权限,内容如下
#!/bin/sh
cru a ddns "0 */1 * * * /bin/sh /jffs/scripts/update-ddns-asuswrt.sh"


然后按下图在路由器管理界面Tools-Script里将cru.sh添加到开机启动,不然每次重启设备后,计划任务表都会被清空
ddns3.PNG
这样重启机器,或者断开WAN后重连后,此脚本就会运行了,每1小时检查你的路由器的公网IP和update DDNS.
脚本下载后把pdf后缀去掉即可。









update-ddns-asuswrt.sh.pdf

1.08 KB, 下载次数: 6

12

主题

1702

帖子

672

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
399
魔法值
0
注册时间
2018-7-15
发表于 3 天前 | 显示全部楼层
很好,顶一哈

8

主题

184

帖子

808

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
730
魔法值
0
注册时间
2016-12-2
发表于 3 天前 来自手机 | 显示全部楼层
帮顶,收藏备用。

0

主题

17

帖子

235

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
232
魔法值
0
注册时间
2017-1-31
发表于 3 天前 | 显示全部楼层
不错不错,留着备用

1

主题

23

帖子

253

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
247
魔法值
0
注册时间
2016-11-4
发表于 3 天前 | 显示全部楼层
7.9版重启后还是不行

11

主题

100

帖子

324

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
287
魔法值
0
注册时间
2014-9-19
 楼主| 发表于 3 天前 | 显示全部楼层
bozihao 发表于 2019-1-13 22:58
7.9版重启后还是不行

web页面上是没启用,但实际上已经通过命令启用了,你可以自己测测看

联系我们|手机版|KoolShare ( 沪ICP备13045430号 )

GMT+8, 2019-1-16 12:42 , Processed in 0.054475 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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