UDP打孔:无法从服务器发送到客户端

时间:2020-07-23 21:11:53

标签: rust udp nat

从服务器A(可通过静态IP全局访问)开始,我将UDP套接字绑定到0.0.0.0:25000。

然后在(住宅)NAT后面使用客户端A,将UDP套接字绑定到0.0.0.0:25000。然后,客户端A将数据包发送到服务器A。

服务器A接收到数据包。服务器A记录了将数据包NAT的远程套接字K。服务器A将数据包发送到K,目的是NAT将数据包转发到客户端A。

但是,客户端A没有收到该数据包。在NAT上,当我在端口25000上启用UDP的端口触发时,它可以工作。但是,在制作p2p应用程序时,我宁愿不要要求客户端进入路由器设置才能使程序正常工作。如何在防火墙上打一个洞,使通信是双向的?

1 个答案:

答案 0 :(得分:0)

如果您的路由器/ NAT设备支持NAT-PMP或UPNP,那真的很容易。您只需要实现协议并打开特定的端口即可使用。如果没有,那么您可能需要使用ICE。