如何在两台具有公共IP但都位于LAN后面的机器之间进行通信(python解决方案)?

Sha*_*ane 5 python sockets networking

正在寻找一个简单的 python 解决方案:

假设机器A的本地IP是192.168.1.5,公共IP是111.11.111.11,机器B的本地IP是10.0.0.5,公共IP是222.22.222.22,现在我需要在这两台机器之间进行通信,你该怎么做?

我见过很多服务器和客户端都在同一网络上的套接字编程示例,但是如何在不更改路由器配置(端口转发等)的情况下连接不同网络后面的机器?

编辑:

如果机器 A 在 LAN 后面怎么办:本地 IP 192.168.1.5,公共 IP 111.11.111.11;机器B是一个HTTP服务器,公共IP为222.22.222.22;现在您可以通过 HTTP 请求轻松地从 A 到达 B,但是从机器 B 到达机器 A 的最佳解决方案是什么?

See*_*van 2

打孔是实现这一目标的一种方法。打洞是一种 NAT 穿越技术,允许 NAT 后面的设备之间直接通信。并非所有 NAT 都支持打洞。但很大比例的 NAT 允许。

http://www.brynosaurus.com/pub/net/p2pnat/

这个链接详细解释了它。他们也给出了统计数据。