双线路/双拨 WAN自由选择DDNS的IP 支持花生壳-3322-NOIP-(更新DNSPOD代码) – 梅林 – KoolShare – 源于玩家 服务玩家

网络配置 徐 自远 2543℃

说来话长了。从双11前关注华硕路由器,购买前特意网上搜索了一下,最后来到了本站。为以后RT-AC68U刷机打下了基础。
买路由器就是用来刷的。
接触了梅林固件,从刷第一版开始,在小宝同志和各位大侠们一致努力下,让我们的路由器发出第二春。喵~~呜[此处应有掌声]

我的是悲催的大局域网:广州长城宽带50M,仅仅是下载速度稍微快点。

所以都知道长宽的网络是不能外网的,无论怎么设置都不行。当然我是没有用【软件中心 – 穿透DDNS】。

无意中朋友的联通手机升级套餐,赠送一条10M小水管,跟宽频电视合作,送了一年网络。

接上后就开启了双WAN线路,测试期间发现联通的宽带竟然可以外网,而且80,21,22,23,443各种端口都没有封闭
所以我的外网访问就是:http://XXXX.asuscomm.com

华硕本身自带的DDNS可以正常使用,只能识别首选WAN接口的IP,因为我有长城宽带送的大麦盒子,还未破解,不能用第三方网络。如果切换了WAN口的位置,DDNS又不能获取联通宽带的IP…
这几天查阅了论坛所有关于DDNS的主题以及各种双线、单线拨号的问题,有所收获。
当然各位大侠还是高抬贵手,让我给新来的小白解疑。

刷了大梅林,就算了入了团。基本的一些指令以及操作需要提前学习下,例如SSH登录,telnet登录,WinSCP登录操作等等。
首先是开启了双WAN,线路接口插对。
以我的网络为示例,首选 WAN是长城宽带,大局域网。第二 WAN是可以外网的联通宽带。负载均衡随意填写↓↓↓

然后进入DDNS,提前注册好花生壳免费域名,输入进去 ↓↓↓

然后点电脑的开始,运行输入cmd,可以ping下自己的域名,例如XXXX.vicp.net
可以看到IP是第一WAN的。不着急,继续
打开WinSCP登陆,进入/jffs/scripts/ 目录,新建文件ddns.sh  ↓↓↓

输入以下内容后保存:

#!/bin/sh
username=nvram get ddns_username_x
pass=nvram get ddns_passwd_x
hostname=nvram get ddns_hostname_x
wanip=nvram get wan1_ipaddr

case $(curl -s “http://$username:$pass@ddns.oray.com/ph/update?hostname=$hostname&myip=$wanip”) in
good|nochg*) /sbin/ddns_custom_updated 1
;;
*) /sbin/ddns_custom_updated 0
;;
esac

 

这个脚本是根据已经填好的花生壳DDNS配置,自动获取用户名和密码,强制更新第二WAN的IP
注意红色脚本里面的wan1就是WAN2,wan0是第一wan口,代码中的0一般指的是第一位,从0开始嘛~

保存后,需要设置脚本的权限为0755:在脚本文件ddns.sh点鼠标右键,将圈框的位置内输入0755点确定即可。 ↓↓↓

已经完成了脚本部分,只剩下让它隔段时间运行就ok了。

可以测试下脚本,telnet 登录进路由器,键入/jffs/scripts/ddns.sh,回车后看看有木有反应。木有就对了,错了也不会有提示的,嘎嘎
所以你要保证在DDNS里输入的用户名和密码是正确的。不正确的话,DDNS里会提示。(只是我太懒,不想修改提示部分,直接抄过来就用)
运行后,稍等片刻在ping下花生壳域名看看有没有正确获取第二WAN的IP

现在进入设置自动运行时间:
登录路由器主界面,进入Tools => Script
参数配置类型选择:超时脚本
超时时间:720  (这里是按照10的倍数计算的。也就是7200秒=2小时    每隔2小时运行一次脚本)
脚本配置:/jffs/scripts/ddns.sh
点+号保存。

进阶设置DDNS:
即使你没有开启DDNS,或开启了非花生壳DDNS,也可以用命令手动更新WAN2的IP到第三方DDNS,需要输入用户名和密码以及域名。
还是ddns.sh文件,写入超时启动脚本就行。
花生壳、3322以及NO-IP都支持http提交更新域名,配置文件要写对。

花生壳:

#!/bin/sh
username=”花生壳用户名
pass=”花生壳密码
hostname=”域名
wanip=nvram get wan1_ipaddr

case $(curl -s “http://$username:$pass@ddns.oray.com/ph/update?hostname=$hostname&myip=$wanip”) in
good|nochg*) /sbin/ddns_custom_updated 1
;;
*) /sbin/ddns_custom_updated 0
;;
esac

 

3322:(强烈推荐)

#!/bin/sh
username=”3322用户名
pass=”3322密码
hostname=”域名
wanip=nvram get wan1_ipaddr

wget -q -O – “http://$username:$pass@members.3322.net/dyndns/update?hostname=$hostname&myip=$wanip”
if [ $? -eq 0 ]; then
/sbin/ddns_custom_updated 1
else
/sbin/ddns_custom_updated 0
fi

 

NO-IP:

 

#!/bin/bash
username=”NOIP用户名
pass=”NOIP密码
hostname=”NOIP域名
wanip=nvram get wan1_ipaddr
noipurl=”http://$username:$pass@dynupdate.no-ip.com/nic/update?hostname=$hostname&myip=$wanip”
arNslookup() {
local inter=”http://119.29.29.29/d?dn=”
wget –quiet –output-document=- $inter$hostname
}
local DomainIP=$(arNslookup)
if [ “$wanip” = “$DomainIP” ]; then
echo “no need to update”
exit 0
else
curl “$noipurl”
fi

 

—————————————-我是邪恶的分割线————-够长了吗————————————
再为大家服务,更新下自用的DDNSPOD获取第二WAN的IP代码:(注意保存为UTF-8编码格式)

 

  1. #!/bin/sh
  2. #################################################
  3. # AnripDdns v5.08
  4. # 基于DNSPod用户API实现的动态域名客户端
  5. # 作者: 若海[mail@anrip.com]
  6. # 介绍: http://www.anrip.com/ddnspod
  7. # 时间: 2016-02-24 16:25:00
  8. # Mod: 荒野无灯 http://ihacklog.com  2016-03-16
  9. #################################################
  10. # 获得本地外网IP (wan0=第1wan  wan1=第2wan)
  11. arIpAdress() {
  12.     local inter=nvram get wan0_ipaddr
  13.     echo $inter
  14. }
  15. # 查询域名地址
  16. # 参数: 待查询域名
  17. arNslookup() {
  18.     local inter=”http://tool.ihacklog.com/net/ip.php?domain=”
  19.     wget –quiet –output-document=- $inter$1
  20. }
  21. # 读取接口数据
  22. # 参数: 接口类型 待提交数据
  23. arApiPost() {
  24.     local agent=”AnripDdns/5.07(mail@anrip.com)”
  25.     local inter=”https://dnsapi.cn/${1:?’Info.Version’}”
  26.     if [ “x${arToken}” = “x” ]; then # undefine token
  27.         local param=”login_email=${arMail}&login_password=${arPass}&format=json&${2}”
  28.     else
  29.         local param=”login_token=${arToken}&format=json&${2}”
  30.     fi
  31.     wget –quiet –no-check-certificate –output-document=- –user-agent=$agent –post-data $param $inter
  32. }
  33. # 更新记录信息
  34. # 参数: 主域名 子域名
  35. arDdnsUpdate() {
  36.     local domainID recordID recordRS recordCD
  37.     # 获得域名ID
  38.     domainID=$(arApiPost “Domain.Info” “domain=${1}”)
  39.     domainID=$(echo $domainID | sed ‘s/.\+{“id”:”\([0-9]\+\)”.\+/\1/’)
  40.     # 获得记录ID
  41.     recordID=$(arApiPost “Record.List” “domain_id=${domainID}&sub_domain=${2}”)
  42.     recordID=$(echo $recordID | sed ‘s/.\+\[{“id”:”\([0-9]\+\)”.\+/\1/’)
  43.     # 更新记录IP
  44.     recordRS=$(arApiPost “Record.Ddns” “domain_id=${domainID}&record_id=${recordID}&sub_domain=${2}&record_line=默认&value=$hostIP”)
  45.     recordCD=$(echo $recordRS | sed ‘s/.\+{“code”:”\([0-9]\+\)”.\+/\1/’)
  46.     # 输出记录IP
  47.     if [ “$recordCD” == “1” ]; then
  48.         echo $recordRS | sed ‘s/.\+,”value”:”\([0-9\.]\+\)”.\+/\1/’
  49.         return 1
  50.     fi
  51.     # 输出错误信息
  52.     echo $recordRS | sed ‘s/.\+,”message”:”\([^”]\+\)”.\+/\1/’
  53. }
  54. # 动态检查更新
  55. # 参数: 主域名 子域名
  56. arDdnsCheck() {
  57.     local postRS
  58.     local hostIP=$(arIpAdress)
  59.     local lastIP=$(arNslookup “${2}.${1}”)
  60.     echo “hostIP: ${hostIP}”
  61.     echo “lastIP: ${lastIP}”
  62.     if [ “$lastIP” != “$hostIP” ]; then
  63.         postRS=$(arDdnsUpdate $1 $2)
  64.         echo “postRS: ${postRS}”
  65.         if [ $? -ne 1 ]; then
  66.             return 1
  67.         fi
  68.     fi
  69.     return 0
  70. }
  71. ###################################################
  72. # 使用Token认证(免登陆,安全性更高,推荐使用) 请去 https://www.dnspod.cn/console/user/security 获取
  73. arToken=”tokenID,token”
  74. # 使用邮箱和密码认证(不启用Token用这个)
  75. arMail=””
  76. arPass=””
  77. ###################################################
  78. # 检查更新域名
  79. arDdnsCheck “abc.com” “ac68u”
  80. if [ $? -eq 0 ]; then
  81.     /sbin/ddns_custom_updated 1
  82. else
  83.     /sbin/ddns_custom_updated 0
  84. fi

复制代码


#此处感谢网友@ntkevin 解决了提交IP的问题。
—————————————–
首先你得有域名才能用到DDNSPOD。不懂请善用搜索


其他参考文章:
DDNS内网穿透之路由器设置
http://koolshare.cn/thread-23740-1-1.html


Over

By 2015/12/15 1:31

自从入了AC68U,每晚睡的好晚…
RT

转载请注明:徐自远的乱七八糟小站 » 双线路/双拨 WAN自由选择DDNS的IP 支持花生壳-3322-NOIP-(更新DNSPOD代码) – 梅林 – KoolShare – 源于玩家 服务玩家

喜欢 (0)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号