我记得我读过一篇文章,介绍了一种建议的方法。如果我没记错的话,研究人员通过相互发送HTTP数据包(Alice假装Bob是HTTP web服务器,Bob假装Alice是web服务器),成功地创建了到另一个网络上的客户端的连接,而不需要端口转发。
我不确定这是否有意义,但有谁知道我在哪里可以找到这篇文章,或者有人有任何其他想法如何在没有中央服务器或端口转发的情况下将两个客户端连接在一起?
这有可能吗?
编辑:我会知道两台计算机的I地址和程序监听的端口。
发布于 2018-04-01 13:08:00
正如所回答的,点对点连接需要在两台(假设)家用计算机之间建立连接,这将需要在它们的两个防火墙上都打洞。有关打孔的具体示例,请参见pwnat: "The only tool to punch holes through firewalls/NATs without a third party"。简单地说,这个过程是这样的:
1.2.3.4
发送一个非常具体的ICMP Echo Request
数据包。在转换过程中,NAT会注意到此数据包,以防收到响应。ICMP Time Exceeded
数据包发送到服务器,这是一种数据包类型,通常包含无法传送的数据包。客户端预先知道服务器发送到1.2.3.4
的确切数据包,将整个数据包嵌入到数据字段中。而且,通过6个简单的步骤,您已经在穿过两个住宅防火墙的客户端和服务器之间建立了UDP连接。接受吧,ISP!
https://stackoverflow.com/questions/16908714
复制相似问题