两台互联网机器之间的端口转发

两台互联网机器之间的端口转发

这是我的场景:

设置

有3台机器:

A: 在互联网上 : 有 IP ( a.a.a.a),端口已pa打开

B:我的服务器/网关:有 IP ( b.b.b.b),端口已pb打开

C: 在互联网上 : 有 IP ( c.c.c.c),端口已pc打开

约束条件

机器的所有者A通过 port 提供服务,必须通过 portpa在机器上访问该服务。问题是, 的所有者只能允许直接连接到我的服务器,机器的端口。CpcABpb

注意,A并且C在互联网上,所以实际上,我必须充当互联网上两台机器之间的网关(我在大多数防火墙文档中找到的文献涉及充当网关)在互联网和本地之间网络)。

要求

我的任务是确保我为机器提供通过我的服务器C提供的服务,以这样的方式,来自结束的流量和来自结束的流量。ABA:paC:pcC:pcA:pa

那么,我怎样才能实现这一点,比如使用iptables或其他 Linux / Unix 实用程序?有可能吗?

假设的解决方案:

这是我想到的一个想法,但不确定它是否合法或有意义:

iptables -t nat -A PREROUTING -p tcp --source a.a.a.a --source-port pa \
--destination b.b.b.b --destination-port pb -j DNAT --to-destination c.c.c.c:pc

iptables -t nat -A PREROUTING -p tcp --source c.c.c.c --source-port pc \
--destination b.b.b.b --destination-port pb -j DNAT --to-destination a.a.a.a:pa

相关内容