找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 17457|回复: 33

[其它] 动态ADSL回流解决方法

[复制链接]
发表于 2007-6-10 18:40:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

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


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

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

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

                3.GIF

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

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

             4.GIF

下面是动态域名脚本:

         先到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 [/ip route get [/ip route find dst-address=0.0.0.0/0 dy=yes active=yes] interface]
:global ddns-ip [ /ip address get [/ip address find interface=$ddns-interface] 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
  }
}
routeros
发表于 2007-6-10 19:25:12 | 显示全部楼层
顶!!!!正需要呢!
routeros
回复

使用道具 举报

发表于 2007-6-11 17:29:42 | 显示全部楼层
不错不错
routeros
回复

使用道具 举报

发表于 2007-6-11 17:47:20 | 显示全部楼层
搞不懂,有没有详细一点
routeros
回复

使用道具 举报

 楼主| 发表于 2007-6-11 19:39:53 | 显示全部楼层
routeros
回复

使用道具 举报

发表于 2007-6-11 19:54:32 | 显示全部楼层
这一个就能解决映射和回流吗?
routeros
回复

使用道具 举报

 楼主| 发表于 2007-6-11 19:57:10 | 显示全部楼层
原帖由 a123123 于 2007-6-11 19:54 发表
这一个就能解决映射和回流吗?



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

使用道具 举报

发表于 2007-6-11 20:05:24 | 显示全部楼层
我用PPPOE的(双ADSL)
按你这样做,没办法内网访问
routeros
回复

使用道具 举报

 楼主| 发表于 2007-6-11 20:07:10 | 显示全部楼层
你指定进入接口没?双线ADSL最好是用SNAT不要用MASQ指定出接口,应该是可以回流的

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

使用道具 举报

发表于 2007-6-11 20:09:58 | 显示全部楼层
指定了

你QQ多少
routeros
回复

使用道具 举报

 楼主| 发表于 2007-6-11 20:13:12 | 显示全部楼层
原帖由 a123123 于 2007-6-11 20:09 发表
指定了

你QQ多少


QQ:17887993    交流下
routeros
回复

使用道具 举报

发表于 2007-6-13 11:10:30 | 显示全部楼层
我的是PPPOE 的ADSL(公司用的宽带)
用这个可以吧!
routeros
回复

使用道具 举报

发表于 2007-6-14 16:34:55 | 显示全部楼层
我刚接触,映射那部分大致的可以看,回流这部分怎么理解?
routeros
回复

使用道具 举报

发表于 2007-6-15 07:14:05 | 显示全部楼层
请老大再详细讲解一下动态域名更新,全是命令,有些看不懂。能讲解一下每步命令的意思吗?感谢!
routeros
回复

使用道具 举报

发表于 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 [/ip address get [/ip address find interface=($pppoe-name . $j) dynamic=yes] 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")}
      }
    }
  }
}
}
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-25 05:36 , Processed in 0.070135 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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