現(xiàn)在網(wǎng)絡(luò)上流行的大多動態(tài)IP映射的腳本很不完善..
雖然都能達(dá)到外網(wǎng)可以通過映射的端口訪問內(nèi)網(wǎng)..但是在內(nèi)網(wǎng)直接訪問外網(wǎng)IP時就不行了..
下面我們來舉個例子..試一下這個另類的端口映射方式..
環(huán)境:一線或多線PPPOE拔號動態(tài)IP上網(wǎng)..
要求:將內(nèi)網(wǎng)IP:192.168.0.253服務(wù)器上的80端口映射出去
做法:
1.首先虛擬成固定IP上網(wǎng)(不要問我怎么虛擬,你就直接用這個就OK了,反正我們就用一下),虛擬外網(wǎng)IP為58.58.58.58
那么,既然是固定IP了.當(dāng)然用固定IP的方式來映射啦.你可以用生成器生成固定IP上網(wǎng)的腳本..或用下面的腳本(注意紅色部分)
/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為你映射端口所使用的協(xié)議..常見的有udp
dst-port=80 #這里設(shè)置外網(wǎng)端口(外網(wǎng)端口可以設(shè)置和內(nèi)網(wǎng)不一樣)
to-addresses=192.168.0.254 #這里設(shè)置你需要映射的內(nèi)網(wǎng)IP地址
to-ports=80 #這里設(shè)置你內(nèi)網(wǎng)服務(wù)器需要映射的端口
comment="80" #這里是一個關(guān)鍵,這里的80可以隨便設(shè)置,但一定要和下面腳本中的comment一致.否則映射失敗!建議使用外網(wǎng)端口!
添加成功后如下圖:
此主題相關(guān)圖片如下:未命名.jpg

此主題相關(guān)圖片如下:未命名.jpg

2.添加刷新IP腳本(說白了把動態(tài)IP轉(zhuǎn)成固定IP,這樣大伙容易理解一點(diǎn))
由于動態(tài)IP隨時都可能改變,那么我們需要設(shè)置他運(yùn)行的時間周期.這時我們需要用到ROS的計劃任務(wù)功能(Scheduler)
接下來我們開始動手.打開winbox --- system --- Scheduler --- 點(diǎn)擊"+"號
將下面的腳本放進(jìn)"On Event"里面(如圖)
此主題相關(guān)圖片如下:未命名.jpg

關(guān)于ROS計劃任務(wù)的詳細(xì)使用請看此教程:http://bbs./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" #這里設(shè)置你PPPOE拔號的名稱,注意大小寫
comment="80" #這里就是我們剛才說的關(guān)鍵了(上面藍(lán)色部分).兩處都一樣.你上面設(shè)置什么.這里就一定要設(shè)置什么.否則此腳本失效!
好了..大功告成..二樓將為您說幾個多個端口映射的例程..希望大家多多關(guān)注深圳網(wǎng)吧聯(lián)盟..
事例一.
需要同時映射內(nèi)網(wǎng)web服務(wù)器192.168.0.253的80端口及文件服務(wù)器192.168.0.252的3389端口.
第一次運(yùn)行腳本如下:
/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"
計劃任務(wù)里添加的腳本如下
: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}