通过防火墙进行点对点网络连接

时间:2012-02-11 03:33:59

标签: network-programming ip rtp nat

我想在不同位置的两台计算机之间建立网络连接(RTP或UDP),每台计算机都位于NAT调制解调器/防火墙之后。我不想修改防火墙。

我的工作假设是我需要两台计算机都可以到达的机器人(例如互联网服务器上的shell帐户)。每台计算机都连接到机器人,机器人允许两台计算机更新和查询状态并交换数据。

这是可以的,但这意味着所有数据都通过机器人传播。有没有办法可以在没有机器人的情况下连接两台计算机,或者如果没有这样做,一旦建立连接,允许机器人退出数据交换机?我的感觉是没有办法做到这一点,但我的TCP / IP有点生疏......

1 个答案:

答案 0 :(得分:1)

如果您在NAT /防火墙上没有任何内容,那么您的内容是正确的。

例如,就我所知,孔打孔不适用于过载的NAT(PAT),因为源端口由NAT设备随机化,并且它映射/匹配目标公共地址和拾取的源端口选出。

UPnP可能有效,但您需要再次假设它在NAT设备上存在并启用。

正如我所看到的,如果你想成为通用的,你只有两个选择: 1.配置NAT。 2.使用代理(您提到的机器人)。 Skype例如使用第二种,但是以分布式方式使用每个Skype客户端作为潜在代理(可能只有当它检测到它不在NAT后面或不受其限制时)。