我目前正在处理一项需要从端口 A 到端口 B 的端口映射的任务。我正在尝试通过使用 nginx 来实现这一点,但到目前为止还没有成功。
场景如下,我有一台服务器 A,它正在监听 123,它应该在内部重定向到 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 之外还可以使用哪些服务?
谢谢
最佳答案
在我看来,您的问题有点困惑。
Nginx 在您的情况下不起作用,因为它不是端口转发器,而是充当 Web 代理,因此除非在端口 1123 上您没有 Web 应用程序,否则它只会失败。原因是因为 nginx 在 ISO/OSI 模型上工作在应用层,而 iptables 在第 3 和第 4 层工作,它基本上接收数据包读取目标端口并重新映射它。
如果您不想使用 iptables 作为最简单的选择,您可以使用的程序范围仅限于在这些级别运行的任何程序。 我不确定 ha-proxy 是否可以工作,即使你可以做的事情比 nginx 多。
您可以尝试编写一些代码来完成这项工作的最后一个选择。
关于python - Nginx:Linux 服务器上的内部端口转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50165691/