![torrent 如何实现 p2p 而不需要打开端口?](https://linux22.com/image/763104/torrent%20%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%20p2p%20%E8%80%8C%E4%B8%8D%E9%9C%80%E8%A6%81%E6%89%93%E5%BC%80%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
我已经使用 torrent 多年了,我计划编写一个简单的 golang 程序来管理 p2p 连接......
但是,因为我到处都看到,要使 p2p 程序运行,必须指定一个开放端口,所以我想到了一个问题... utorrent 如何在不需要打开路由器端口的情况下运行?(是的,我知道人们说仅为 utorrent 打开一个端口可能会提高速度,但对我来说,即使没有这个技巧它也总是有效的)
谢谢,我现在真的很困惑......
答案1
它通过使用反向连接来工作,您的客户端连接到外部服务器,然后此连接用于传入和传出流量。如果每个使用 P2P 的人都在被阻止的端口后面,它就无法工作,因此它假设某些客户端/服务器的端口是开放的。
对于游戏和其他需要向任何方向发送数据的客户端来说,这是一种常见的解决方案,并且还有 uPNP 等解决方案,以便客户端可以在必要时要求路由器打开端口并进行端口映射。