二月 15

之前幫 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

85 Responses to “在RouterOS中加入Port Mapping”

  1. kevin Says:

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

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

  2. jason Says:

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

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

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

  3. Wen Says:

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

  4. jason Says:

    玩P2P下載的話,RouterOS建議是開啟UPnP就可以了。
    讓後面的P2P軟體自已決定要用什麼Port。
    開啟UPnP的方式可參考官方的wiki。
    http://wiki.mikrotik.com/wiki/Manual:IP/UPnP

  5. 2Wan Port Maping Says:

    你好
    我有個問題請教 我的設備是是 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 是不同的

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

  6. jason Says:

    看看是不是IP -> Routes 的問題。
    如果你是用PPPoE看看是否有勾到Add Default Route

  7. 2Wan Port Maping Says:

    用 2wan 8M/6M=>固16IP
    1M/1M==>固16IP
    Default Route 有加了 有 mark route

  8. 2Wan Port Maping Says:

    我的設定
    /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

  9. jason Says:

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

    因為外面的網路透過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)

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

  10. 2Wan Port Maping Says:

    我試過了 Server 設定 2 各IP 也沒法通 , 有時可以 那是假性的 RouteOs Reboot
    舊又不可以了

  11. jason Says:

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

  12. 2Wan Port Maping Says:

    Jason 你有 MSN 或 Skype 嗎 把帳號發給我 我們研究一下

  13. jason Says:

    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

  14. sewd Says:

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

  15. sewd Says:

    :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不過沒有成功,能不能幫我看一下哪有錯,謝謝

  16. jason Says:

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

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

  17. sewd Says:

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

  18. jason Says:

    建議可以更新到5.2版

  19. sewd Says:

    我怕更新後所有設定要重設,這很麻煩

  20. phoenix Says:

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

  21. jason Says:

    ip->routing與firewall->mangle
    記得設定。
    可以參考RouterOS 2 WAN Mapping to 1 LAN,多個WAN對映到單一內部Server
    http://www.minitw.com/archives/735

  22. phoenix Says:

    請問router那邊要如何設定呢?DAC跟DAS的意思是?

  23. kk Says:

    茶包大你好:
    你網站有Wen問過玩BT的問題,你有回答建議是開啟UPnP,參考官方的wiki。
    http://wiki.mikrotik.com/wiki/Manual:IP/UPnP

    小弟真的是外行英文也不行,有看也不知道如何設定,能請茶包大再來一篇UPnP設定教學,讓我看圖設定。還請茶包大能撥空教導一下。

  24. jason Says:

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

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

  25. xx Says:

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

  26. jason Says:

    to xx:
    設定時需注意設定值
    external : 設在對外的interface上(WAN、ADSL PPPoE…等)
    internal : 設在對內的interface上(LAN)

    可以參考官方的wiki:
    http://wiki.mikrotik.com/wiki/Manual:IP/UPnP

  27. 阿吉仔 Says:

    請問,如果我有一台電腦使用 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 的伺服器網頁畫面。

  28. jason Says:

    可以參考上面的第2張圖,把To Address改成172.16.0.2

    試試看吧

  29. 阿吉仔 Says:

    謝謝,設定之後就可以了。

  30. 樂樂 Says:

    我是兩個浮動的ip 可以端口映射嗎??做好久都失敗

  31. jason Says:

    to 樂樂:
    兩個浮動的ip 端口映射,可以參考:
    http://www.minitw.com/archives/735/

  32. 小青蛙 Says:

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

  33. jason Says:

    to 小青蛙:
    這個問題很好,也很關鍵。
    我之前在這邊有回答過同樣的問題,你可以參考參考

    http://www.mobile01.com/topicdetail.php?f=110&t=2079471&m=s&s=10&b=0&r=2&p=1

    解法:
    /ip firewall nat
    add action=masquerade chain=srcnat comment=”” disabled=no out-interface=!LAN

    重點在於下面這行,注意有個驚嘆號
    out-interface=!LAN

    這樣子內部的Server就可以抓到正確的外部連線IP了

  34. 小青蛙 Says:

    感謝! 您實在太厲害了.

  35. 小青蛙 Says:

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

  36. 小青蛙 Says:

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

  37. 小林 Says:

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

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

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

  38. keke Says:

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

  39. jason Says:

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

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

  40. keke Says:

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

    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 部分的資料

  41. keke Says:

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

  42. jason Says:

    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

  43. keke Says:

    主動模式在正常非 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 的回覆….^^

  44. keke Says:

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

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

  45. jason Says:

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

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

    /interface ethernet> set P2_LAN mac-address=11.22.33.44.55.66

  46. keke Says:

    可惜今晚輸給日本一分含恨………

    /_\

    感謝 Jason 的指導…..你真的是大救星

  47. keke Says:

    試用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)

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

  48. jason Says:

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

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

  49. keke Says:

    我找到可能的禍首: cfosSpeed

    似乎是自帶的更新程式沒有安裝完全所導致…..

    目前持續觀察中……

  50. Gemma Says:

    可以問一個簡單問題嗎?
    因為最近在設定 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

  51. jason Says:

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

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

  52. Gemma Says:

    您好!我綁定家裡的 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 連上

  53. Gemma Says:

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

    我的環境是 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 則不行

  54. jason Says:

    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

  55. Gemma Says:

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

    /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

  56. Gemma Says:

    wan1 確認有設定 IP,因為用 PPTP VPN 從 WAN1 IP 連進去是可以的

  57. jason Says:

    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

  58. Gemma Says:

    上面沒貼清楚,目前我是這樣寫,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

  59. qq168 Says:

    茶包叫你好,我使用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>

  60. jason Says:

    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

  61. qq168 Says:

    茶包兄你好:這幾天小弟有瓽試做測試,可是使用winbox做設定,在指定 routing-mark 的時候,該選項只出現”main” 這個值。不知是什麼情況?感謝解答
    以下是我的畫面
    http://farm4.staticflickr.com/3734/9150311514_6be2f5d612_b.jpg

  62. jason Says:

    to qq168:

    routing-mark那邊要自己打,用下拉的不會出現尚未存在的東西。

  63. qq168 Says:

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

  64. jason Says:

    如果是同一個LAN內,那可能要查一下FTP Server的防火牆設定

  65. RouterOS 實現一個固定IP 多台主機 (Port Mapping) / 電腦玩瞎咪 Says:

    […] 在這裏我用 Webfig 做示範,慣用Winbox的使用者可以看這裡。 […]

  66. Cappella Says:

    茶包薛你好,
    請問 如何將 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 取消,結果仍然是不行

  67. jason Says:

    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

  68. Cappella Says:

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

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

    我是遺漏哪些事項呢 ?

  69. jason Says:

    to Cappella:

    先把問題單純化。

    不要透過ros轉址,直接連你區網內的那台webServer,看看是否可以通。

  70. Cappella Says:

    茶包兄你好!!
    直接連區網內的那台webServer,是可以正常連線的

  71. Cappella Says:

    剛剛我在我的本機電腦,也加了一個WebServer
    我的IP : 192.168.0.71
    瀏覽網頁 http://192.168.0.71 有出現首頁

    若是我透過ROS, 改成 to-addresses = 192.168.0.71
    此時瀏覽 http://1.1.1.1 就不通了

  72. Cappella Says:

    茶包兄不知道你有結果嗎 ??

  73. jason Says:

    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條,讓它優先執行試試。

  74. Cappella Says:

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

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

  75. Cappella Says:

    對啦 我把 1.1.1.1 改成 11.22.33.44 啦

  76. jason Says:

    to Cappella:

    也許你可以把nat裡面的完整的所有規則貼上來,我可以幫你測測看

  77. chen Says:

    你好
    我設定好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
    —————————–
    謝謝

  78. jason Says:

    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

  79. 阿賢 Says:

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

  80. jason Says:

    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

  81. 阿賢 Says:

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

    我先貼上我原本的設定,目前設定是想測試利用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] >

  82. mac Says:

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

  83. jason Says:

    to mac:

    可以參考此篇的作法
    http://wiki.mikrotik.com/wiki/Load_Balancing_over_Multiple_Gateways

  84. 小陳 Says:

    茶包兄:
    小弟使用Hinet的ADSL計時制的線路並使用免費贈送的IP
    並且拿它來架設web server
    可是使用php記錄外部網友連線來源ip都指向 gateway 的ip: 192.168.88.1
    請問是那裏設定錯誤呢??

  85. Jason Says:

    to 小陳:
    /ip firewall nat
    add action=masquerade chain=srcnat comment=”” disabled=no out-interface=!LAN

    重點在於下面這行,注意有個驚嘆號
    out-interface=!LAN

    這樣子內部的Server就可以抓到正確的外部連線IP了
    試試看

    而你上面所說 NAT loopback 的問題,在RouterOS上也是可以解決的
    不需要設DNS,可以直接用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去更新使用

留下評論

限制時效已用盡。請重新載入驗證碼。