在RouterOS中加入Port Mapping

之前幫 RouterOS 加上 IP分享器功能(NAT)這篇文章教大家怎麼把RouterOS當成Gateway

讓內部的IP可以透過RouterOS上網

那如果外部的電腦想連到內部電腦的服務(例如:Web、SSH、SQL Server…等)

這時候就需要轉Port的功能(Port Mapping)

實作的方式也很簡單,使用winbox的介面就可以達成了

首先開啟winbox後,IP -> Firewall -> NAT -> 加入一筆新的規則

接下來就看圖操作吧,要注意的是如果你是ADSL撥接上網的,In Interface請選該ADSL的介面

20110215_1

 

Action的部份則是選dst-nat,IP與Port則是依自已的需求填寫

20110215_2

最後記得把該新建立的規則拉到masquerade的上面

20110215_3

83 thoughts on “在RouterOS中加入Port Mapping

  1. 您好
    目前使用RB450G
    已照您的blog
    加上負載平衡與DDNS功能
    現在在PORT MAPPING 設定已依照你的方法設定
    遇到設定問題 無法將PPPOE取得的外部IP 指到內部區網某台PC

    因為架站需要 ,需要2個外部真實IP(PPPOE撥接),對應至內部2台WEB SERVER
    或是你方便以遠端協助設定

    1. 雙線(同Gateway)或是單線多個IP(同Gateway)
      實作起來就會複雜許多,不是幾個字可以講清楚的
      過陣子我打算寫篇相關的教學放上來
      如果你很急的話,我大略先講一下

      雙線(同Gateway)或是單線多個IP(同Gateway)
      因為是同1個Gateway,所以ROS不知道要走那一條出去
      也有可能封包經由線路1進來後轉到Server1,但封包要出去時卻不知道要走那一條回去
      解法就是於Mangle中設mark routing,並於routing table中指定相關的mark routing要走那一個IP出去
      當然NAT裡面也是要進行Port Mapping的相關設定,有興趣的話先研究看看吧

      我幫的上忙的話,歡迎隨時留言。要摧搞的話,也是歡迎的啦~~ ^_^

  2. 茶包你好~
    想問一下,若說有在玩BT,我的BT軟体開的port是12345
    那麼,外面的人要連到我這下載,我的 Dst. Port 和 To Port 都要設為 12345嗎?

  3. 你好
    我有個問題請教 我的設備是是 R450G

    我是用 2wan 8M/6M,1M/1M+1 Lan

    都設好了 正常上網

    只是我在做 nat dstnet 有些問題

    例如我想在 兩個 固定IP 開個 port 80 指到內往的 web server 80

    都只有 Wan1 可以用

    兩個 net dstnet 設定如下

    chain=dstnat in-interface=Wan-out1 protocol=tcp dst-port=80
    action=dst-nat to-addresses=192.168.2.1 to-ports=80

    chain=dstnat in-interface=Wan-out2 protocol=tcp dst-port=80
    action=dst-nat to-addresses=192.168.2.1 to-ports=80

    兩個ip GATEWAY 是不同的

    請問還有哪裡需要設定…..

  4. 我的設定
    /ip route print detail

    0 A S dst-address=0.0.0.0/0 gateway=Wan2 gateway-status=Wan2 reachable
    check-gateway=ping distance=1 scope=30 target-scope=10
    routing-mark=toADSL-2

    1 A S dst-address=0.0.0.0/0 gateway=Wan1 gateway-status=Wan1 reachable
    check-gateway=ping distance=1 scope=30 target-scope=10
    routing-mark=toADSL-1

    2 A S dst-address=0.0.0.0/0 gateway=Wan1,Wan2
    gateway-status=Wan1 reachable,Wan2 reachable check-gateway=ping
    distance=10 scope=255 target-scope=10

    3 ADC dst-address=59.125.48.240/28 pref-src=59.125.48.254 gateway=Wan2
    gateway-status=Wan2 reachable distance=0 scope=10

    4 ADC dst-address=192.168.2.0/24 pref-src=192.168.2.1 gateway=bridge
    gateway-status=bridge reachable distance=0 scope=10

    5 ADC dst-address=202.39.134.0/24 pref-src=202.39.134.30 gateway=Wan1
    gateway-status=Wan1 reachable distance=0 scope=10

    /ip firewall mangle
    add action=change-mss chain=forward disabled=no new-mss=1440 protocol=tcp tcp-flags=syn
    add action=mark-connection chain=prerouting disabled=yes dst-address-type=!local in-interface=bridge new-connection-mark=ADSL-2 passthrough=yes per-connection-classifier=src-address-and-port:2/1
    add action=mark-routing chain=prerouting connection-mark=ADSL-2 disabled=yes in-interface=bridge new-routing-mark=toADSL-2 passthrough=yes
    add action=mark-routing chain=prerouting connection-mark=ADSL-1 disabled=yes in-interface=bridge new-routing-mark=toADSL-1 passthrough=yes
    add action=mark-connection chain=input connection-state=new disabled=no in-interface=Wan1 new-connection-mark=ADSL-1 passthrough=yes
    add action=mark-connection chain=input connection-state=new disabled=no in-interface=Wan2 new-connection-mark=ADSL-2 passthrough=yes
    add action=mark-routing chain=output connection-mark=ADSL-2 disabled=no new-routing-mark=toADSL-2 passthrough=yes
    add action=mark-routing chain=output connection-mark=ADSL-1 disabled=no new-routing-mark=toADSL-1 passthrough=yes
    add action=mark-connection chain=prerouting comment=0/2 disabled=no dst-address-type=!local new-connection-mark=ADSL-1 passthrough=yes per-connection-classifier=both-addresses:2/0 src-address=192.168.2.0/24
    add action=mark-connection chain=prerouting comment=1/2 disabled=no dst-address-type=!local new-connection-mark=ADSL-2 passthrough=yes per-connection-classifier=both-addresses:2/1 src-address=192.168.2.0/24
    add action=mark-routing chain=prerouting comment=”pppoe-out1_conn ” connection-mark=ADSL-1 disabled=no new-routing-mark=toADSL-1 passthrough=yes src-address=192.168.2.0/24
    add action=mark-routing chain=prerouting comment=”pppoe-out2_conn ” connection-mark=ADSL-2 disabled=no new-routing-mark=toADSL-2 passthrough=yes src-address=192.168.2.0/24
    /ip firewall nat
    add action=masquerade chain=srcnat comment=”\A6^\ACy” disabled=no out-interface=bridge src-address=192.168.2.0/24
    add action=masquerade chain=srcnat disabled=no out-interface=Wan1 src-address=192.168.2.0/24
    add action=masquerade chain=srcnat disabled=no out-interface=Wan2 src-address=192.168.2.0/24
    add action=dst-nat chain=dstnat comment=PPPoE-1A disabled=no dst-address=202.39.134.30 dst-address-type=local dst-port=1233 in-interface=Wan1 protocol=tcp src-address-list=”” to-addresses=192.168.2.4 to-ports=1233
    add action=dst-nat chain=dstnat comment=PPPoE-1A disabled=no dst-address=59.125.48.254 dst-address-type=local dst-port=1233 in-interface=Wan2 protocol=tcp to-addresses=192.168.2.4 to-ports=1233
    add action=src-nat chain=srcnat comment=Lan_to_Wan1 disabled=no out-interface=Wan1 src-address=192.168.2.4 to-addresses=202.39.134.30
    add action=src-nat chain=srcnat comment=Lan_to_Wan2 disabled=no out-interface=Wan2 src-address=192.168.2.10 to-addresses=59.125.48.254

    1. 剛剛試了一下,發現的確是有點問題

      因為外面的網路透過ROS把封包送到內部的Server時是沒問題的

      問題出在當封包要從Server回傳時,問題就來了

      當Server封包丟到ROS,ROS沒辦法判斷這個封包原本是從那一條WAN過來的,所以封包也不知道該從何回去

      這樣外面的網路就連不上了,如果固定走某1個外網IP出去,那另外1個外網IP就沒作用了

      目前想到的解法是在Server上設2個IP,然後2外網各自對映Server上的1個IP。這樣就可以解決了

      (外網1)123.123.123.111 對照到 192.168.1.10(Server1-IP1)
      (外網2)123.123.123.222 對照到 192.168.1.11(Server1-IP2)

      或是有人有更好的解決,歡迎提出來大家討論一下~~

    1. 找到完美的解法了,原來是我自已想複雜了
      手邊也測試成功了,外部2個IP同時對映到內部1個IP
      我整理一下,再把設定檔貼出來

    1. msn的帳號我send到你的hotmail了。有空大家可以交流一下
      下面先貼出設定檔,你可以測測看。我使用的RouterOS版本是5.2版的

      192.168.55.200 -> 你內部Server的IP位置

      /interface pppoe-client
      add ac-name=”” add-default-route=no allow=pap,chap,mschap1,mschap2 \
      dial-on-demand=no disabled=no interface=LAN max-mru=1480 max-mtu=1480 \
      mrru=disabled name=ISP1 password=99999999 profile=default service-name=”” \
      use-peer-dns=no user=99999999@hinet.net
      add ac-name=”” add-default-route=no allow=pap,chap,mschap1,mschap2 \
      dial-on-demand=no disabled=no interface=LAN max-mru=1480 max-mtu=1480 \
      mrru=disabled name=ISP2 password=99999999 profile=default service-name=”” \
      use-peer-dns=no user=99999999@hinet.net

      /ip firewall mangle
      add action=mark-connection chain=prerouting disabled=no in-interface=ISP1 \
      new-connection-mark=ISP1_conn passthrough=yes
      add action=mark-connection chain=prerouting disabled=no in-interface=ISP2 \
      new-connection-mark=ISP2_conn passthrough=yes
      add action=mark-routing chain=prerouting connection-mark=ISP1_conn disabled=no \
      in-interface=LAN new-routing-mark=to_ISP1 passthrough=yes src-address=\
      192.168.55.200
      add action=mark-routing chain=prerouting connection-mark=ISP2_conn disabled=no \
      in-interface=LAN new-routing-mark=to_ISP2 passthrough=yes src-address=\
      192.168.55.200

      /ip firewall nat
      add action=dst-nat chain=dstnat disabled=no dst-port=80 in-interface=ISP1 \
      protocol=tcp to-addresses=192.168.55.200 to-ports=80
      add action=dst-nat chain=dstnat disabled=no dst-port=80 in-interface=ISP2 \
      protocol=tcp to-addresses=192.168.55.200 to-ports=80
      add action=masquerade chain=srcnat disabled=no out-interface=ISP1
      add action=masquerade chain=srcnat disabled=no out-interface=ISP2

      /ip route
      add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP2 routing-mark=\
      to_ISP2 scope=30 target-scope=10
      add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP1 routing-mark=\
      to_ISP1 scope=30 target-scope=10
      add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP2,ISP1 scope=30 \
      target-scope=10

  5. 照您所設定的,我在In Interface上加了ADSL的介面,這樣就連不上了,另外問個問題,我這樣設NAT(FTP用),設完後我就連不上其他的FTP,我必須加上dst-address才不會有問題,可是我的實體IP是浮動的,有沒有解決方法。

  6. :local NATinterface “HiNet”
    :global NATipADSL1
    :set NATipADSL1 [ /ip address get [/ip address find interface=$NATinterface ] address ]
    :set NATipADSL1 [:pick $NATipADSL1 0 [:find $NATipADSL1 “/”]]
    /ip firewall nat set 2 dst-address $NATipADSL1

    我自己定的一條動態更新dst-address不過沒有成功,能不能幫我看一下哪有錯,謝謝

  7. 單一個ADSL帳號,照理說應該是不用設dst-address。
    建議你把ROS的版本升到最新,然後設定重置,
    這樣測起來會比較準。應該是不需要到寫script的地步。

    如果你一次撥2個以上的ADSL上去,或是有多條ADSL,那此篇文章就不適用

  8. 我是單一個ADSL帳號,因為我設了NAT後,沒辦法連去其他的FTP,會被倒回自己架的FTP,設了dst-address後,其他的FTP就連得上了,我的版本是5.0得,剛剛莫名奇妙得又可以用了。

  9. 請問,我這邊有Seednet+hinet線路各一,今天下午想來搞定2 Wan設定,結果還不要說PCC or NTH,光dual wan+port mappin就碰了一鼻子灰,我現在遇到的狀況是,port 1(seednet)+port 2(hinet),都是PPPOE,播出去沒問題,IP也正常取得了,但是備用線路(hinet)那邊,雖然抓到IP,其實外面也是ping不到的,所以怎麼mapping也都沒用,請問我可能遺漏了那邊的設定呢?

    1. 沒問題,不過這陣子工作比較忙一點,比較沒時間上來寫文章跟回覆

      等過陣子工作告一段落再上來blog還大家的債~~~

  10. 茶包大您好, 請問UPnP開啟後, 好像只有一瞬間能通!? P2P軟體有個TCP、UDP反連測試, 只有在一開始的瞬間可以, 但只要流量一進來之後(約在50 packets)就會出現該connection被reject的結果!? 請問RouterOS有這樣的防堵設定?

  11. 請問,如果我有一台電腦使用 PPPoE 的方式撥上 RB-450G ,取得一組 IP 之後,如何將外面的 80 port 對應到這一台電腦上的 80 port 呢?

    ex: RB-450G LAN IP 192.168.88.1 外網IP:1.2.3.4
    伺服器pppoe撥上450G時配給IP:172.16.0.2 閘道:172.16.0.1
    也就是說當 http://1.2.3.4 時,可以開啟 172.16.0.2 的伺服器網頁畫面。

  12. 茶包您好, 照您教學的Port Mapping設定, 外部IP可以連進內部IP架設的伺服器,
    但是在該內部伺服器查詢連線狀態時(例如linux的netstat -ta),
    遠端位置都變成RouterOS的位置, 等於無法得知外部是哪個IP連進來的.
    有什麼地方可調整的嗎?

  13. 茶包兄, 我又遇到問題了, 就如您所述, 加入 out-interface=!LAN 後的確可以使內部Server抓到外部的IP, 但是RouterOS卻失去了NAT lookback功能了 (設定方法如您在mobile01說的NAT lookback解法). 有兩全其美的方法能解決嗎?

  14. 不好意思, 我自己找到解法了, 多加下面那條, 並拉到原來那條上面就同時解決了NAT lookback問題及取得外部IP的問題.
    /ip firewall nat
    add chain=srcnat src-address=192.168.1.0/24 action=masquerade

  15. 你好,我碰到雙線 PORT MAPPING。簡單的方法是通過Route Table.但是這樣無法實現,哪個interface 進站,就從那個interface出戰.

    我試過VPN的 雙線進站,只需要在Mangle intput & output 里面做mark就可以实现VPN的双线进站,哪里进哪里出.

    但是PORT MAPPING的那裡進,哪裡出測試了好多遍還是沒有成功.
    請教一下,需要在哪個位置做mark才可以

  16. 茶包兄你好,我想請問如果是 Open Port 的方式,該怎麼做呢?
    也就是開啟一個區段的 tcp/udp port 給 dhcp 發放出去的某一台 PC 使用
    例如 27300~27400 這段 port 要開啟給A這台 PC 使用(192.168.10.50)
    這跟 Port Mapping/DMZ 不太一樣… 還請你多多指教

  17. to keke:
    如果你指的是外部的IP連進來Port 27300~27400時,要轉到內部的某個IP的話,那就要在NAT那邊進行Port的對映。

    如果你指的是內部的IP透過NAT連線出去時,要限制NAT Port的區間,那我目前也不知道RouterOS上是否有方法可以達成。

  18. 我把範例解說的詳細一點好了

    Server 軟體:雷電 FTP , 功能啟用:DATA連線使用埠號範圍 27300~27400
    Client 軟體:FlashFXP
    環境: 外部 FTP 站A |一般的分享器/防火牆a|–internet—|一般的分享器/防火牆b|內部FTP站B
    目標任務:從 A 把資料 FXP 到 B (可逆)

    要完成上述情況的話,在 a 跟 b 必須開啟 tcp/udp port 27300~27400 給 雷電FTP 作為 PASV 的 DATA 連線使用

    我以Vigor2100 為例子,一般分享器在 NAT 的設定通常會有三類基本功能

    Port Mapping:http://i.imgur.com/y593TzH.jpg
    DMZ;http://i.imgur.com/Acf1LPm.jpg
    Open Port:http://i.imgur.com/EYpMJEP.jpg

    茶包兄目前已經示範了 Port Mapping/DMZ
    但是我在 mikrotik wiki 上面好像沒找到關於 Open Port 部分的資料

  19. 上面有個地方敘述錯誤….修正為
    環境:
    內部 FTP 站A |一般的分享器/防火牆a|–internet—|一般的分享器/防火牆b|內部FTP站B
    用示意圖的話是這樣:http://i.imgur.com/r6AerI6.jpg
    NAT 可替換為 RouterOS/IPShare

  20. to keke:
    我想你的問題應該可以鎖定在FTP於Firewall後面的設定,
    關於FTP可能要先了解2種模式,主動模式(Active mode)與被動模式(Passive mode),因為這2種模式會影響RouterOS的設定。

    下面幾個連結可以供你參考,或是到google上搜尋「FTP NAT」,相信你的問題應該可以解決。

    RouterOS對於FTP的相關討論
    http://forum.mikrotik.com/viewtopic.php?f=13&t=55787
    http://forum.mikrotik.com/viewtopic.php?f=2&t=61450

    解說 FTP Protocol 的運作原理
    http://blog.miniasp.com/post/2008/06/29/FTP-Protocol-Definitive-Explanation.aspx

  21. 主動模式在正常非 NAT 後面的 FTP 是 OK 的
    但是如果碰到 FTP 是在 NAT/防火牆後面
    那幾乎肯定是跑被動模式…..
    而被動模式也才需要開啟一個區段的 port 提供 FTP Server 隨機取用
    這只是一個應用例子
    回歸正題討論的話
    應該是說
    NAT 的設定通常會有三類基本功能
    Port Mapping/DMZ/Open Port
    而在 RouterOS 上面關於 Open Port 的部分,根據我在 wiki 翻閱的結果,好像是寫在 NAT 的部分,但是只寫了功能參數表示規則,並沒有很具體的說明,
    這篇 http://forum.mikrotik.com/viewtopic.php?f=2&t=61450 的討論比較接近我所舉列的範例環境
    anyway,謝謝 jason 的回覆….^^

  22. 我想再請教一個可能是比較基本但我不會的問題,就是如果我要把網卡的 Mac Adress 設到第一個 Port 上面的話,該怎麼設呢?

    因為 isp 那邊是根據 Mac Adress 來發放固定 ip 給對應的客戶端
    一般的 ip分享器也大多有提供這功能,RouterOS 上面這部分是不是要在防火牆規則那邊來操作呢~

  23. to keke:
    這項改MAC卡號的功能是有的,不過不是在GUI介面中操作,

    必需要在Terminal中下指令才可以。

    /interface ethernet> set P2_LAN mac-address=11.22.33.44.55.66

  24. 試用RB951G-2HnD到現在我發現有一個很奇怪的問題
    就是在WinXP系統下,譬如說開網頁,或是遊戲,會突然頓一下,然後網路就斷了
    但是接著馬上又通了,我查了一下 log,顯示如下

    mar/16 18:44:47 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 18:51:21 interface,info ether2-master-local link down
    mar/16 18:51:24 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 19:17:34 interface,info ether2-master-local link down
    mar/16 19:17:36 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 19:26:51 interface,info ether2-master-local link down
    mar/16 19:26:54 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 20:58:48 interface,info ether2-master-local link down
    mar/16 20:58:50 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 21:15:51 interface,info ether2-master-local link down
    mar/16 21:15:54 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 21:44:40 interface,info ether2-master-local link down
    mar/16 21:44:43 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 21:53:16 interface,info ether2-master-local link down
    mar/16 21:53:19 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 21:53:54 interface,info ether2-master-local link down
    mar/16 21:53:56 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 22:00:26 interface,info ether2-master-local link down
    mar/16 22:00:29 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 22:16:21 interface,info ether2-master-local link down
    mar/16 22:18:11 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 22:23:37 interface,info ether2-master-local link down
    mar/16 22:23:39 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 22:35:47 interface,info ether2-master-local link down
    mar/16 22:35:50 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 23:06:35 interface,info ether2-master-local link down
    mar/16 23:06:37 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 23:46:34 interface,info ether2-master-local link down
    mar/16 23:46:36 interface,info ether2-master-local link up (speed 1000M, full duplex)
    mar/16 23:52:59 interface,info ether2-master-local link down
    mar/16 23:53:01 interface,info ether2-master-local link up (speed 1000M, full duplex)

    我實在是搞不懂為什麼會這樣…..

  25. to keke:
    先把ROS重設回原廠設定,然後找一台乾淨的電腦或筆電測試。

    還是一樣的話,建議你找賣家幫你測試看看是否為RB951G-2HnD機器的問題。

  26. 可以問一個簡單問題嗎?
    因為最近在設定 RouterOS,機器不在手邊,是先弄好 PPTP VPN,然後 VPN 去設定的
    為了以防萬一,我綁定家裡的 IP 是可以 telnet 與 www (改 port) 透過 wan1 進去 RouterOS 的
    但是 winbox 還是沒辦法直接從家裡的 IP 連進去,port mapping 已經設定好,我發現 winbox 會去找 wan 1 的 port 8291, 0, 80,不管我在 /ip Service List 裡面已經改了 www 的 port

  27. to Gemma:
    可能的問題點1:Domain Cache的問題。到開始 => 執行 => cmd => ipconfig /flushdns

    可能的問題點2:winbox要連其他Port的話,可以使用下面的方式(8888可以改成你自訂的Port)
    在Connect To那邊打上ros.yourdomain.com:8888

  28. 您好!我綁定家裡的 IP 可以使用 IP Services www, winbox, telnet
    我並沒有改 winbox 的 port,我只有改 www 的 port 為 8080
    而且在 IP NAT 那邊已經做了 port mapping 了
    我發現只有 www 可以從家裡 IP 連上,其他不管是 telnet 或 winbox 都不行
    而且還有一個問題是,我有兩個 public IP1 與 IP2,RouterOS 是 IP3
    我把 IP1 port 8080 mapping 到 IP3 port 8080,同時 firewall 允許 IP2 的 port 8080 連線,這樣我可以用家裡的 IP 以 www 連上
    但是同樣的作法,把 IP2 port 443 mapping 到 IP3 port 8080,同時 firewall 允許 IP2 的 port 443 連線,卻無法以用家裡的 IP 以 www 連上

  29. 您好!我把我的問題與目前的設定再描述清楚一點,請您指教

    我的環境是 2 WAN 是固定 Public IP 且相同 Gateway,第三個 WAN 則是公司的內網取得的 DHCP IP(這個暫時被 Disable 免得變數太多)
    我的設定是
    1. IP Services 裡面指定 www, winbox, telnet 可以從 LAN 與家裡的 IP 連上,同時修改的 www 的 port 為 8081,而 telnet 與 winbox 的 port 並沒有改變
    2. IP Firewall Filter Rule 裡面的設定
    add action=accept chain=input disabled=no dst-port=8081 in-interface=wan2 protocol=tcp
    add action=accept chain=input disabled=no dst-port=443 in-interface=wan1 protocol=tcp
    add action=accept chain=input disabled=no dst-port=23 in-interface=wan2 protocol=tcp
    add action=accept chain=input disabled=no dst-port=8291 in-interface=wan2 protocol=tcp
    3. IP Firewall NAT 裡面的設定
    add action=dst-nat chain=dstnat disabled=no dst-port=8081 in-interface=wan2 protocol=tcp to-addresses=192.168.88.1 to-ports=8081
    add action=dst-nat chain=dstnat disabled=no dst-port=443 in-interface=wan1 protocol=tcp to-addresses=192.168.88.1 to-ports=8081
    add action=dst-nat chain=dstnat disabled=no dst-port=23 in-interface=wan2 protocol=tcp to-addresses=192.168.88.1 to-ports=23
    add action=dst-nat chain=dstnat disabled=no dst-port=8291 in-interface=wan2 protocol=tcp to-addresses=192.168.88.1 to-ports=8291

    測試的結果
    第一個問題:
    直接從家裡 IP 連上 WAN2,不管是 www, telnet, winbox 都可以使用
    直接從家裡 IP 連上 WAN1,因為從 port 443 轉成 port 8081,用 Browser 連線也不行
    第二個問題:
    人在外地,又想管理 RouterOS,因為已經限制只能用家裡的 IP 管理
    使用 PPTP VPN 連回家裡,檢查對外 IP 顯示為家裡的 IP,無法連上 RB450G
    使用 SSH + Proxy 的方式連回家裡,檢查對外 IP 顯示為家裡的 IP,可以使用 Browser 連上 RB450G,但 telnet 與 winbox 則不行

    1. to Gemma:
      第一個問題:
      確認看看WAN1這個Interface是否有設定IP位置給他。

      第二個問題:
      外面要連進ROS,ROS有多個gateway,而且gateway的位置是一樣時,
      一定要記得用mangle來標記,那邊來的,就要從那邊回去。input與output都要作。
      下面是範例,自己修改後要再配合routing table使用。
      如果有2個WAN都要開放外面可以連線,那就是2對input與output規則(共4條規則)。

      add action=mark-connection chain=input
      connection-state=new disabled=no in-interface=ADSL-1 new-connection-mark=\
      from_adsl_1 passthrough=yes
      add action=mark-routing chain=output connection-mark=from_adsl_1 disabled=no \
      new-routing-mark=to_adsl_1 passthrough=no

  30. 這是我的設定,問過很多地方了,都一直得不到解答

    /ip firewall mangle
    add action=mark-connection chain=input disabled=no in-interface=wan1 new-connection-mark=from_wan1 passthrough=yes
    add action=mark-routing chain=output connection-mark=from_wan1 disabled=no new-routing-mark=to_wan1 passthrough=no
    add action=mark-connection chain=input disabled=no in-interface=wan2 new-connection-mark=from_wan2 passthrough=yes
    add action=mark-routing chain=output connection-mark=from_wan2 disabled=no new-routing-mark=to_wan2 passthrough=no
    add action=mark-connection chain=prerouting connection-state=new disabled=no in-interface=master-local new-connection-mark=nth_1 nth=2,1 passthrough=yes
    add action=mark-routing chain=prerouting connection-mark=nth_1 disabled=no in-interface=master-local new-routing-mark=to_wan1 passthrough=no
    add action=mark-connection chain=prerouting connection-state=new disabled=no in-interface=master-local new-connection-mark=nth_2 passthrough=yes
    add action=mark-routing chain=prerouting connection-mark=nth_2 disabled=no in-interface=master-local new-routing-mark=to_wan2 passthrough=no

    /ip firewall nat
    add action=masquerade chain=srcnat disabled=no out-interface=wan1 routing-mark=to_wan1
    add action=masquerade chain=srcnat disabled=no out-interface=wan2 routing-mark=to_wan2
    add action=masquerade chain=srcnat disabled=no
    add action=masquerade chain=srcnat disabled=no src-address=192.168.88.0/24
    add action=masquerade chain=srcnat disabled=no out-interface=!master-local

    /ip route
    add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway= scope=10 target-scope=10

  31. to Gemma:
    /ip route
    這邊也要設定,那一個routing-mark要走那一個gateway出去

    例子:
    /ip route
    add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ADSL-1 routing-mark=to_adsl_1 scope=255 target-scope=10

  32. 上面沒貼清楚,目前我是這樣寫,wan1 與 wan2 是同一個 gateway_ip
    /ip route
    add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=gateway_ip scope=10 target-scope=10
    如果是像下面這樣設定,則會變成內網連不出去,外網VPN也連不進來
    /ip route
    add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=wan1 routing-mark=to_wan1 scope=255 target-scope=10
    add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=wan2 routing-mark=to_wan2 scope=255 target-scope=10
    add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=gateway_ip scope=10 target-scope=10

  33. 茶包叫你好,我使用hinet計時制贈送的固定ip來架設web server 可是外網連進來的ip,我的server偵測到它都指向自己router ip,有參考您在上面的教學方法:
    —————————————————–
    /ip firewall nat
    add action=masquerade chain=srcnat comment=”” disabled=no out-interface=!LAN
    重點在於下面這行,注意有個驚嘆號
    out-interface=!LAN
    ——————————–
    可是卻都一樣偵測不到外網ip,以下是我的設定參數,麻煩求教,謝謝
    [admin@MikroTik] /ip firewall mangle> /ip firewall nat print detail
    Flags: X – disabled, I – invalid, D – dynamic
    0 chain=dstnat action=dst-nat to-addresses=192.168.88.2 to-ports=80
    protocol=tcp dst-address=220.134.244.104 dst-port=80

    1 ;;; default configuration
    chain=srcnat action=masquerade to-addresses=0.0.0.0 fragment=no hotspot=””
    out-interface=!ether3-slave-local connection-limit=0,32
    [admin@MikroTik] /ip firewall mangle>

  34. to qq168:
    建議不要使用IP來綁定(除非你是使用不需撥接ADSL的固接方式),用interface的方式來設定會比較彈性,你可以參考下面的另一種解法。
    下面的例子是假設你的Server IP為192.168.10.100,撥接固定IP的Interface為ADSL-2。

    /ip firewall nat
    add action=masquerade chain=srcnat disabled=no out-interface=ADSL-2 \
    routing-mark=to_ADSL2
    add action=masquerade chain=srcnat disabled=no src-address=192.168.10.0/24
    add action=netmap chain=dstnat disabled=no in-interface=ADSL-2 to-addresses=\
    192.168.10.100

    /ip route
    add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ADSL-2 routing-mark=\
    to_ADSL2 scope=30 target-scope=10

  35. 茶包兄:
    小弟的區網內 有一台ftp主機 :192.168.1.2
    在另一台電腦192.168.1.3連到 ftp 主機
    可是卻都無法連線,請問是怎麼回事呢??

  36. 茶包薛你好,
    請問 如何將 IP 轉向

    有一個需求,
    就是區網的電腦瀏覽網頁時,若是網頁的目的IP 是 11.22.33.44 時,
    將其連線轉向 區網內的某一台Web主機

    我目前的方法是使用 ROS 的 NAT

    我新增一組設定

    Chain: dstnat
    Dst Address: 11.22.33.44
    Protocol: 6 (tcp)
    Dst Port: 80
    In Interface: locla-lan

    Action: dst-nat
    To Addresses: 192.168.0.18
    To Ports: 80

    但是失敗了!!

    請問設定是/否有問題 ??
    ——————————————————————-
    追加說明:

    ROS 主機 Ping 192.168.0.18 成功
    我的PC Ping 192.168.0.18 成功
    我的PC 瀏覽 192.168.0.18 web站台 成功

    但是我的 PC特地瀏覽 11.22.33.44 時,會出現 連線逾時
    觀察 ROS Firewall-Connection 出現
    Src Address     Dst Address    Prococol    Tcp State
    192.168.0.71    11.22.33.44:80    6(tcp)      syn sent

    PS:已把 In Interface: locla-lan 取消,結果仍然是不行

  37. to Cappella:

    設定上應該是可以的。

    請先確定你要重導的那台server防火牆的設定是ok的。

    我貼上我自己測試的指令給你試試。

    只要是連到1.1.1.1 的80 port ,就會被重導到yahoo的網站。

    /ip firewall nat
    add action=dst-nat chain=dstnat dst-address=1.1.1.1 dst-port=80 in-interface=\
    ether2-local-master protocol=tcp to-addresses=27.123.201.197 to-ports=80

  38. 感謝茶包兄協助!!
    我也照著你的範例做,發現成功連到 YAHOO 網站

    但是我把 to-addresses 改成 區網內的一台 WebServer 的 IP 就不通了

    我是遺漏哪些事項呢 ?

  39. Hi Cappella:

    我這邊試的結果是沒問題的。
    我使用的規則如下
    /ip firewall nat
    add action=dst-nat chain=dstnat dst-address=1.1.1.1 dst-port=80 protocol=tcp \
    to-addresses=192.168.88.190 to-ports=80

    自己的電腦IP是192.168.88.210

    建議你把轉址的規則拉到NAT的第1條,讓它優先執行試試。

  40. 感謝你的協助!! 我這邊仍然卡在 syn sent
    Src Address     Dst Address    Prococol    Tcp State
    192.168.0.71    11.22.33.44:80    6(tcp)      syn sent

    應該是我這邊的問題,謝謝茶包兄

  41. 你好
    我設定好ddns 、port forwarding
    內網的 NAS IP 為 192.168.5.102
    架了FTP , pyLoad , Transmission Remote,Transmission…
    用192.168 .x.x 皆可連到
    但是在內網用 ddns 的網址就連不到。但是在外網用ddns 可連到
    請問這是哪裡沒設定到?
    —————————-
    內網 可用 192,168.x.x
    內網 不用用 ddns
    外網 可用ddns
    —————————–
    謝謝

  42. to chen:

    看起來很像是NAT loopback 的問題,在RouterOS上可以用NAT的方式解決

    add action=dst-nat chain=dstnat comment=”” disabled=no dst-address=外部的IP(123.123.123.123) dst-port=80 protocol=tcp to-addresses=內部的IP(192.168.55.200) to-ports=80

    這樣子就完美了,但是如果你的外部IP是動態的,就需要配合Script去更新使用

    相關參考資料:
    讓 MikroTik RouterOS 支援 NAT loopback
    http://www.mobile01.com/topicdetail.php?f=110&t=2079471

    Hairpin NAT
    http://wiki.mikrotik.com/wiki/Hairpin_NAT

  43. 您好~我在同wan port底下抓了3組pppoe實體ip
    已經達成可以讓3個lan port分別使用不同ip來上網
    但想做到每台主機可以開對外服務,依照站上兩種方式開通NAT指向區網IP都無法成功
    是不是有少設定哪個步驟呢?感恩

  44. to 阿賢:

    除了外部的port對映外,還需指定內部的機器要走那條pppoe回去。
    有去就要有回,從那個pppoe進來,就從那個pppoe回去。
    附上範例供你參考。

    /ip firewall nat
    add action=masquerade chain=srcnat out-interface=AR2_ADSL-3 routing-mark=ArtRouter2_ADSL-3 to-addresses=0.0.0.0
    add action=dst-nat chain=dstnat dst-port=8888 in-interface=AR2_ADSL-3 protocol=tcp to-addresses=192.168.10.119 to-ports=8888

    /ip firewall mangle
    add action=mark-routing chain=prerouting dst-address=!192.168.0.0/16 \
    dst-address-list=!RouterOS_IP new-routing-mark=ArtRouter2_ADSL-3 passthrough=no src-address=192.168.10.119

    /ip route
    add distance=1 gateway=AR2_ADSL-3 routing-mark=ArtRouter2_ADSL-3

  45. 您好!!
    我剛實驗加入以上設定發現網路不通了…

    我先貼上我原本的設定,目前設定是想測試利用ppoe3上網且外面可以網路可以連進192.168.1.3的所有port 不過失敗了…設定是

    # feb/13/2015 08:51:50 by RouterOS 6.19
    # software id = JL9K-DWTY
    #
    /interface ethernet
    set [ find default-name=ether1 ] name=PORT1_WAN1
    set [ find default-name=ether2 ] name=PORT2_WAN2
    set [ find default-name=ether3 ] name=PORT3_LAN1
    set [ find default-name=ether4 ] master-port=PORT3_LAN1 name=PORT4_LAN2
    set [ find default-name=ether5 ] master-port=PORT3_LAN1 name=PORT5_LAN3

    /ip pool
    add name=dhcp_pool1 ranges=192.168.1.100-192.168.1.199

    /ip dhcp-server
    add address-pool=dhcp_pool1 disabled=no interface=PORT3_LAN1 name=dhcp1

    /port
    set 0 name=serial0

    /interface pppoe-client
    add ac-name=”” add-default-route=no allow=pap,chap,mschap1,mschap2 \
    dial-on-demand=no disabled=no interface=PORT2_WAN2 keepalive-timeout=\
    disabled max-mru=1480 max-mtu=1480 mrru=1600 name=pppoe-out1 password=\
    seednet profile=default service-name=”” use-peer-dns=yes user=seednet
    add ac-name=”” add-default-route=no allow=pap,chap,mschap1,mschap2 \
    dial-on-demand=no disabled=no interface=PORT2_WAN2 keepalive-timeout=\
    disabled max-mru=1480 max-mtu=1480 mrru=1600 name=pppoe-out2 password=\
    seednet profile=default service-name=”” use-peer-dns=yes user=seednet
    add ac-name=”” add-default-route=no allow=pap,chap,mschap1,mschap2 \
    dial-on-demand=no disabled=no interface=PORT2_WAN2 keepalive-timeout=\
    disabled max-mru=1480 max-mtu=1480 mrru=1600 name=pppoe-out3 password=\
    seednet profile=default service-name=”” use-peer-dns=yes user=seednet

    /ip address
    add address=192.168.1.1/24 interface=PORT3_LAN1 network=192.168.1.0

    /ip dhcp-server network
    add address=192.168.1.0/24 dns-server=139.175.1.1,168.95.1.1,8.8.8.8 gateway=\
    192.168.1.1

    /ip firewall mangle
    add action=mark-routing chain=prerouting new-routing-mark=to_pppoe3 \
    passthrough=no src-address=192.168.1.3

    /ip firewall nat
    add action=dst-nat chain=dstnat in-interface=pppoe-out3 to-addresses=\
    192.168.1.3
    add action=masquerade chain=srcnat src-address=192.168.1.3

    /ip route
    add distance=1 gateway=pppoe-out3 routing-mark=to_pppoe3

    /ip upnp
    set allow-disable-external-interface=no
    /system clock
    set time-zone-name=Asia/Taipei
    /system clock manual
    set time-zone=+08:00
    [admin@MikroTik] >

  46. 請問大大,因為某些因素,我必須使用我內網其中一個ip(192.168.10.50)作為光世代的線路,其中又只要192.168.10.51-55這幾台電腦走這邊出去,其餘ip出去方向不變。請問這要如何設定?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *