如何代理网络服务的端口

如何代理网络服务的端口

假设您有 2 台服务器,一台在端口 800 上提供网络服务,另一台在端口 801 上提供另一项服务。

您对它们两个都使用公有 IP,两个服务器都有 2 个网络接口,并且也位于相互连接的私有 LAN 上。您想节省一个公有 IP(因为现在 IPv4 地址并不便宜),因此您希望一个服务器“代理”另一个服务器,这样就只有一个服务器 A 的公有 IP 地址可以监听 800 和 801,但端口 801 的流量将被重定向到服务器 B。

我该怎么做?我不是在寻找 Web 代理,有问题的服务可能是任何潜在的 TCP 网络服务。在 Linux 上。

答案1

您需要在服务器 A 上设置某种 NAT 或转发。在 Linux 上,您可以使用 iptables 来完成此操作,但这不太简单。

一个简单的替代方法是使用rinetd。配置仅包含一行:

# bind ip     port destination ip  port
206.125.69.81 801  1.2.3.4         801

这将适用于所有基于 TCP 的协议,我认为 rinetd 不支持 UDP。请检查您的发行版的包管理器以找到该包。通常可以在以下位置找到配置/etc/rinetd.conf

相关内容