python - 有防火墙时程序可以通信吗?

标签 python networking

当有防火墙阻碍时,两个程序如何进行通信。我想要类似套接字的东西,但这不能通过防火墙。如果您必须使用第三方资源也没关系。我正在 python 中执行此操作。

最佳答案

有两种可能的方法:

1) UPnP/NATPMP/PCP - 这些是一些(大多数?)路由器实现的协议(protocol) 本地网络更有可能允许防火墙后面的应用程序进行交互 在这种情况下,您将数据包(来自两个客户端)发送到各自的路由器 使用上面提到的协议(protocol)请求端口开放,然后进行通信 定期使用套接字。

2) 在某些情况下,NAT 穿越是可能的 - 了解 STUN 服务器和 ICE 协议(protocol)。 - 这对于 UDP 通信最常见,但有时是 TCP 流量也可以通过这种方式在网络中遍历 - 最常见的技术是 UDP打洞

3) 如果这些都不适用(例如,大规模网络上的对称 NAT),则唯一的方法 当您通过公开访问的 channel 转发所有数据时,这将是一种 TURN 方法 服务器。

P2P 和 NAT 穿越在 SIP、Voip 和 torrent 中很常见,因此免费库 像 VUZE(torrent 开源库)一样可以是一个开始挖掘的好地方...:)

关于python - 有防火墙时程序可以通信吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24110915/

相关文章:

python - 将 numpy 数组更改为 float

python - 需要从 simple.tag 制作模板标签

Python - 将特定文件从子文件夹复制到目标,从文本文件获取文件名

java - 谷歌应用程序引擎远程API用于本地开发服务器重定向到登录页面

networking - docker 撰写db2-express C的问题

c - 我如何在 Linux 上用 C 语言获取我的 IP 地址?

c# - 适用于小型企业应用程序的后端或数据库系统

python - 在插图图中具有不同数据的 matplotlib mark_inset

java - 与 Apache Mina 同步线程时出现问题

C select() writefds