Nat
Mikrotik:將本地 ip 轉發到特定埠上的另一個本地 ip
我在 8090 埠的機器上執行 Docker 容器。假設那台機器的 IP 地址是
192.168.0.3
. 我想轉發192.168.0.4:80
到192.168.0.3:8090
。該機器只能並且可能只能從本地網路中訪問。我試過的:
/ip firewall nat export add action=dst-nat chain=srcnat dst-address=192.168.0.4 dst-port=80 \ src-address=192.168.0.0/24 to-address=192.168.0.3 to-port=8090 \ protocol=tcp add action=masquerade chain=srcnat dst-address=192.168.0.4 dst-port=80 \ src-address=192.168.0.0/24 protocol=tcp
這行不通。
我是不是忘記了什麼?我有一種感覺,我忽略了一些簡單的東西,但無法弄清楚是什麼。
編輯:
該 IP 地址
192.168.0.4
無法解析為我網路中的任何內容。我只想“分配”並將其轉發給192.168.0.3:8090
. 這樣做的原因是我想設置一個解析到 Docker 容器的本地域名,而無需指定埠。
您在本地網路中的電腦會嘗試直接訪問它們自己子網中的 IP 地址。因此,具有 IP 地址的電腦(“工作站”)在嘗試訪問並嘗試直接發送 tcp 包
192.168.0.105
時將忽略預設網關。192.168.0.4
如果沒有其他電腦正在回答屬於 MAC 地址的工作站呼叫(“arp 請求”),這將失敗
192.168.0.4
- 並且沒有人會回答,因為此 IP 地址未在您的本地網路中使用。對於如何解決它,您確實有多種選擇:
- 添加
192.168.0.4
到防火牆上的介面並使用防火牆重新路由這些包- 添加
192.168.0.4
到 docker-host 上的介面並重定向 docker-host 本身的流量- 在 docker-host 上添加流量重定向,
192.168.0.3
直接使用而不是192.168.0.4
可能存在其他選項。