sxmong147 发表于 2007-6-10 18:40:00

动态ADSL回流解决方法

今天没事做,写个动态ADSL回流解决方法,有不足的地方希望网友们斧正,仅此抛砖引玉


    在此再次感谢我们的老大zooyo,在他身上学到不少东西。:lol 下面开工:

   IE地址栏输入http://ip138.com查看公网IP,当然在IP-ROUTE也可以看到   图:
            
         
               
               
               
               
   (我写的脚本是根据comment来判断的,注释名一定要填)我这里注释为:ftp

下面是动态ADSL映射自动修改IP脚本:

               

动态ADSL脚本:
:local ip1 address]
:local ip2 "你想要的名字"] dst-address]
:set ip1 [:pick $ip1 0 ([:len $ip1]-3)]
:if ($ip1 != $ip2) do={
/ip fir nat set "你想要的名字"] dst-address=$ip1
    :log info "【ADSL映射修改完毕】"
    }

以上标记的红字均可根据你的实际情况进行替换.

            

下面是动态域名脚本:

         先到www.changeip.com注册个动态域名.
然后到邮箱激活.
然后到 Winbox-system-Scheduler-添加:Name:随便 Interval:多少时间检测一次IP我设为00:20:00
在 On Event: 里写入下面的

=============================================================
:global ddns-user "注册的域名"
:global ddns-pass "域名密码"
:global ddns-host "*1"
:global ddns-interface interface]
:global ddns-ip [ /ip address get address ]
:if ([ :typeof $ddns-lastip ] = nil ) do={ :global ddns-lastip 0.0.0.0/0 }
:if ([ :typeof $ddns-ip ] = nil ) do={
:log info ("DDNS: No ip address present on " . $ddns-interface . ", please check.")
} else={
:if ($ddns-ip != $ddns-lastip) do={
    :log info "DDNS: Sending UPDATE!"
    :log info [ /tool dns-update name=$ddns-host address=[:pick $ddns-ip 0 [:find $ddns-ip "/"] ] key-name=$ddns-user key=$ddns-pass ]
    :global ddns-lastip $ddns-ip
}
}

g_tree 发表于 2007-6-10 19:25:12

顶!!!!正需要呢!

忧郁咖啡 发表于 2007-6-11 17:29:42

:D 不错不错

dengyuwen 发表于 2007-6-11 17:47:20

搞不懂,有没有详细一点:Q

sxmong147 发表于 2007-6-11 19:39:53

原帖由 dengyuwen 于 2007-6-11 17:47 发表 http://bbs.routerclub.com/images/common/back.gif
搞不懂,有没有详细一点:Q


         上面有图看应该是很清楚了,你再仔细看看

a123123 发表于 2007-6-11 19:54:32

这一个就能解决映射和回流吗?

sxmong147 发表于 2007-6-11 19:57:10

原帖由 a123123 于 2007-6-11 19:54 发表 http://bbs.routerclub.com/images/common/back.gif
这一个就能解决映射和回流吗?


      呵呵,不信,你可以试试,我一直在用

a123123 发表于 2007-6-11 20:05:24

我用PPPOE的(双ADSL)
按你这样做,没办法内网访问

sxmong147 发表于 2007-6-11 20:07:10

你指定进入接口没?双线ADSL最好是用SNAT不要用MASQ指定出接口,应该是可以回流的

[ 本帖最后由 sxmong147 于 2007-6-11 20:11 编辑 ]

a123123 发表于 2007-6-11 20:09:58

指定了

你QQ多少

sxmong147 发表于 2007-6-11 20:13:12

原帖由 a123123 于 2007-6-11 20:09 发表 http://bbs.routerclub.com/images/common/back.gif
指定了

你QQ多少

QQ:17887993    交流下

232941900 发表于 2007-6-13 11:10:30

我的是PPPOE 的ADSL(公司用的宽带)
用这个可以吧!

xpumbaa 发表于 2007-6-14 16:34:55

我刚接触,映射那部分大致的可以看,回流这部分怎么理解?

ylml78366xxm 发表于 2007-6-15 07:14:05

请老大再详细讲解一下动态域名更新,全是命令,有些看不懂。能讲解一下每步命令的意思吗?感谢!

ylml78366xxm 发表于 2007-6-15 07:28:27

老大你的动态域名更新脚本和以下这个有什么不同吗?


以下为使用changeIP的动态域名更新服务的脚本,用之前请自行到www.changeip.com去申请帐号~
#Script DNSupdate install
#以下为DDNS更新脚本
/system script add name="ddnsUpdate" source={
#ChangeIP的注册用户名
:global u "username"
#ChangeIP的注册密码
:global p "password"
#ChangeIP的子域名前缀
:global m "A record name"
#ChangeIP的域
:global z "Domain"
:for j from=1 to=$x do={
/interface pppoe-client monitor ($pppoe-name . $j) once do={:global adsl-statu $status}
:if ($adsl-statu="connected") do={
    :log info ("ddnsUpdate: ADSL" . $j . " ddnsUpdate process start !")
    :global ddns-ip-d address]
    :global ddns-ip [:pick $ddns-ip-d 0 [:find $ddns-ip-d "/"]]
    :global n ($m . $j)
    :global k 0;:while($k<1) do={
      :global res-ip [:resolve ($n . "." . $z)]
      :if (($res-ip) != (0.0.0.0)) do={
      :if (($res-ip) != $ddns-ip) do={
          :log info ("ddnsUpdate: ADSL" . $j . " IP Address is " . $ddns-ip . " sending update")
          /tool dns-update name=$n zone=$z address=$ddns-ip key-name=$u key=$p
          :delay 60} else={:set k ($k+1);:log info ("ddnsUpdate: ADSL" . $j . " IP Address is " . $ddns-ip . " no change")}
      }
    }
}
}
}
页: [1] 2 3
查看完整版本: 动态ADSL回流解决方法