将端口5000的stream量从一个接口转发到另一个接口

我试图从我的networking外部公开访问我的networking中的特定设备(10.1.1.12),使用端口5000。

我有一台PC作为我的网关和我的networking中的设备之间的防火墙,所以我需要改变PC的iptables。 作为防火墙的PC有两个接口:eth0(10.1.1.1)和eth1(192.168.1.5)。

来自外部的stream量来自eth1(192.168.1.5),我只需要将它转发给eth0(10.1.1.1),因为目前我已经把转发从10.1.1.1设置为10.1.1.12(最后的设备),它工作正常。

在网上search,我试图设置下两个iptables规则,没有成功:

iptables -A FORWARD -p tcp --destination-port 5000 --in-interface eth1 -j ACCEPT iptables -t nat -A POSTROUTING -p tcp --destination-port 5000 --out-interface eth0 -j MASQUERADE 

然后,我试图设置下一个iptables规则,也是不成功的:

 iptables -t nat -A PREROUTING -p tcp --destination-port 5000 --in-interface eth1 -j MASQUERADE 

总之,如果我从networking内部input一个浏览器10.1.1.1:5000,就可以访问10.1.1.12,这样转发就可以正常工作了。 但是,如果我从networking外部input浏览器my.public.ip:5000,我得到一个ERR_ADDRESS_UNREACHABLE,所以eth1和eth0之间的转发工作不正常。

一些帮助将不胜感激。 谢谢。

你知道,192.168.0.0/16和10.0.0.0/8都是私人网段,因此无法从互联网? 如果你的“路由器”有IP 192.168.1.5,它已经在内部networking上了。 外部IP将是别的东西,边界路由器必须能够将来自外部的所有stream量路由到您的192.168.1.5内部IP,以便能够重新路由该端口。 如果它阻止了传入的stream量,那么你不能从Internet上获得任何5000端口的数据包。