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

我在端口8090的机器上运行Docker容器。假设该机器的IP地址是192.168.0.3 。 我想转发192.168.0.4:80192.168.0.3:8090 。 机器是并且可能只能从本地networking内访问。

我试过了:

 /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不能parsing到我的networking中的任何东西。 我只是想“分配”并转发到192.168.0.3:8090 。 原因是我想设置一个本地域名parsing到Docker容器,而不必指定一个端口。

您的本地networking中的计算机尝试直接在自己的子网内访问IP地址。 因此,IP地址为192.168.0.105的计算机(“工作站”)将在尝试到达192.168.0.4时忽略默认网关,并尝试直接发送tcp软件包。

如果没有其他计算机正在应答属于192.168.0.4的MAC地址的工作站呼叫(“ARP请求”),则这将失败,因为此IP地址在您的本地networking中未被使用,所以没有人会回答。

你有如何解决它有各种select:

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

其他选项可能存在。