注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

小猪哥

 
 
 

日志

 
 

ROS动态IP端口映射,解决回美问题  

2010-10-09 08:34:34|  分类: 网吧技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

时间:2010-08-02 15:13来源:未知 举报本文 点击: 290次

ROS动态IP端口映射,解决回美问题
cpro_client='dgwblm001_cpr'; cpro_at='image'; cpro_161=3; cpro_flush=4; cpro_w=300; cpro_h=250; cpro_template='text_default_300_250'; cpro_cbd='#FFFFFF'; cpro_cbg='#FFFFFF'; cpro_ctitle='#0000ff'; cpro_cdesc='#444444'; cpro_curl='#008000'; cpro_cflush='#e10900'; cpro_uap=0; cpro_cad=1; cpro_channel=6;
-

现在网络上流行的大多动态IP映射的脚本很不完善..

虽然都能达到外网可以通过映射的端口访问内网..但是在内网直接访问外网IP时就不行了..

下面我们来举个例子..试一下这个另类的端口映射方式.. 

环境:一线或多线PPPOE拔号动态IP上网..

要求:将内网IP:192.168.0.253服务器上的80端口映射出去

做法:

1.首先虚拟成固定IP上网(不要问我怎么虚拟,你就直接用这个就OK了,反正我们就用一下),虚拟外网IP为58.58.58.58

那么,既然是固定IP了.当然用固定IP的方式来映射啦.你可以用生成器生成固定IP上网的脚本..或用下面的脚本(注意红色部分)

 


 

/ip firewall nat add chain=dstnat dst-address=58.58.58.58 protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.0.254 to-ports=80 comment="80"


红色部分解释:

dst-address=58.58.58.58         #这个你可以不用管他了..就用这个..反正没什么特别的意义!

protocol=tcp                            #这个tcp为你映射端口所使用的协议..常见的有udp

dst-port=80                            #这里设置外网端口(外网端口可以设置和内网不一样)

to-addresses=192.168.0.254    #这里设置你需要映射的内网IP地址

to-ports=80                            #这里设置你内网服务器需要映射的端口

comment="80"                         #这里是一个关键,这里的80可以随便设置,但一定要和下面脚本中的comment一致.否则映射失败!建议使用外网端口!

添加成功后如下图:


此主题相关图片如下:未命名.jpg
按此在新窗口浏览图片
 


此主题相关图片如下:未命名.jpg
按此在新窗口浏览图片

 

2.添加刷新IP脚本(说白了把动态IP转成固定IP,这样大伙容易理解一点)

由于动态IP随时都可能改变,那么我们需要设置他运行的时间周期.这时我们需要用到ROS的计划任务功能(Scheduler)

 

接下来我们开始动手.打开winbox --- system --- Scheduler --- 点击"+"号  

将下面的脚本放进"On Event"里面(如图)

 
此主题相关图片如下:未命名.jpg
按此在新窗口浏览图片

 

关于ROS计划任务的详细使用请看此教程:http://bbs.szwblm.com/dispbbs.asp?boardid=20&Id=15140
 

脚本如下(注意红色部分):

 


 

:global newipaddress
:global lodipaddress
:set newipaddress [/ip address get [/ip address find dynamic=yes interface="pppoe-out1"] address]
:set newipaddress [:pick $newipaddress 0 ([:len $newipaddress] -3)]
:set lodipaddress [/ip firewall nat get [/ip firewall nat find comment="80"] dst-address]
:if ($newipaddress != $lodipaddress) do={/ip firewall nat set [/ip firewall nat find comment="80"] dst-address=$newipaddress}


红色部分解释:

interface="pppoe-out1"        #这里设置你PPPOE拔号的名称,注意大小写

comment="80"                    #这里就是我们刚才说的关键了(上面蓝色部分).两处都一样.你上面设置什么.这里就一定要设置什么.否则此脚本失效!

好了..大功告成..下面有几个多个端口映射的例程..

事例一.

需要同时映射内网web服务器192.168.0.253的80端口及文件服务器192.168.0.252的3389端口.

第一次运行脚本如下:

 


 

/ip firewall nat add chain=dstnat dst-address=58.58.58.58 protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.0.253 to-ports=80 comment="80"

/ip firewall nat add chain=dstnat dst-address=58.58.58.58 protocol=tcp dst-port=3389 action=dst-nat to-addresses=192.168.0.252 to-ports=3389 comment="3389"


计划任务里添加的脚本如下

 


 

:global newipaddress
:global lodipaddress
:set newipaddress [/ip address get [/ip address find dynamic=yes interface="pppoe-out1"] address]
:set newipaddress [:pick $newipaddress 0 ([:len $newipaddress] -3)]
:set lodipaddress [/ip firewall nat get [/ip firewall nat find comment="80"] dst-address]
:if ($newipaddress != $lodipaddress) do={/ip firewall nat set [/ip firewall nat find comment="80"] dst-address=$newipaddress

/ip firewall nat set [/ip firewall nat find comment="3389"] dst-address=$newipaddress}

  评论这张
 
阅读(1111)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017