Nginx:Linux服务器上的内部端口转发

时间:2018-05-04 01:01:43

标签: python linux nginx portforwarding

我目前正在处理一项需要从端口A到端口B的端口映射的任务。我试图通过使用nginx来实现这一目标,但现在没有运气。

这是一个场景,我有一个正在侦听123的服务器A,它应该在内部重定向到1123端口。还有另一个服务器B使用python应用程序与123上的服务器A端口进行通信,因为它不是Web请求nginx配置不起作用。 Python应用程序在启动通信时会考虑服务器A的IP地址和端口。

我尝试在Linux服务器A上使用Iptables,当我重新运行上面的场景时,它有效。

iptables -t nat -A PREROUTING -p tcp --dport 123 -j REDIRECT --to-port 1123

您能否分享一下您对此问题的见解,并建议我除了Iptables之外可以使用哪些服务?

由于

1 个答案:

答案 0 :(得分:0)

在我看来,你的问题有点混乱。

Nginx在您的情况下不起作用,因为它不是端口转发器,而是充当Web代理,因此除非在端口1123上没有Web应用程序,否则它将失败。原因是因为nginx在ISO / OSI模型的应用程序级别工作,而iptables在第3级和第4级工作,它基本上接收读取目标端口的数据包并重新映射它。

如果您不想使用iptables作为最简单的选择,您可以使用的程序范围仅限于在这些级别中运行的任何程序。 即使你可以做比nginx更多的事情,我也不确定ha-proxy是否会起作用。

最后一个选项,您可以尝试编写代码来完成工作。