Mikrotik:将本地 IP 转发到特定端口上的另一个本地 IP

Mikrotik:将本地 IP 转发到特定端口上的另一个本地 IP

我在端口 8090 上的一台机器上运行 Docker 容器。假设该机器的 IP 地址是192.168.0.3。我想转发192.168.0.4:80192.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 容器的本地域名,而无需指定端口。

答案1

本地网络中的计算机会尝试直接访问其自己子网内的 IP 地址。因此,具有该 IP 地址的计算机(“工作站”)192.168.0.105在尝试访问时会忽略默认网关192.168.0.4,并尝试直接发送 tcp 数据包。

如果没有其他计算机应答工作站对该 MAC 地址的调用(“arp 请求”),此操作将会失败192.168.0.4- 并且没有人会应答,因为该 IP 地址未在您的本地网络中使用。

您确实有多种解决方法:

  1. 添加192.168.0.4到防火墙上的接口并使用防火墙重新路由这些包
  2. 添加192.168.0.4到 docker-host 上的接口,并在 docker-host 本身上重定向流量
  3. 在 docker-host 上添加流量重定向,并192.168.0.3直接使用,而不是192.168.0.4

可能还存在其他选择。

相关内容