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

标签 python linux nginx portforwarding

我目前正在处理一项需要从端口 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/

相关文章:

python - statsmodels 二维核回归

c - 第二次运行程序返回绑定(bind)的 EADDRINUSE

python - 获取错误/usr/bin/env : node : Permission Denied

nginx - 如何在 Nginx 后面设置带有 Phoenix 的 Websockets?

python - Matplotlib/PyQT4 : transparent figure

python - 过滤掉包含特定字符串的数据帧的行

linux - 使用 O_DIRECT 从 HDD 读取()失败并显示 22(EINVAL,无效参数)

angularjs - 创建只能访问某些页面的子域别名

image - 我启动Docker容器后立即退出

python - 使用内部命令窗口 Python 工具和 Visual Studio 2013 进行调试