当外部端口不断变化时,natted 网络中对等点之间的 P2P

Posted

技术标签:

【中文标题】当外部端口不断变化时,natted 网络中对等点之间的 P2P【英文标题】:P2P between peers in natted networks when the external port changes constantly 【发布时间】:2021-01-15 16:25:18 【问题描述】:

我正在阅读 WebRTC,这导致我开始研究 STUN(NAT 会话遍历实用程序),我看到的所有示例似乎都假设公共 ip 和端口在至少几秒钟或几分钟内是静态的时间。

但是,我的家庭互联网连接使用共享公共 ip 并放置以下 php 代码

<?php
echo $_SERVER['REMOTE_ADDR'] . ":" . $_SERVER['REMOTE_PORT'];
?>

在具有公共 IP 地址的服务器上会给出这样的结果

63.142.201.34:34850
63.142.201.34:34924
etc.

当页面被反复刷新时。我的手机在使用我的数据计划时也会发生同样的事情(只是使用不同的公共 IP)。

在这种情况下如何实现点对点连接?有人可以给我指出一个教程或一些我可以用来查找的关键字吗?

达斯汀·苏达克

【问题讨论】:

【参考方案1】:

您看到不同的外部端口的原因是您使用不同的本地端口,每个 HTTP 请求一个。这在 TCP 中很常见。

UDP 作为一种无连接协议,可以更轻松地重用本地端口。 tailscale 项目最近写了一篇很棒的关于打孔的博文here

【讨论】:

感谢您使用 UDP 的建议和博文链接! 如果我要创建函数 Peer1IPandPort() 和 Peer2IPandPort(),我会在哪些 WebRTC 函数中使用它们?

以上是关于当外部端口不断变化时,natted 网络中对等点之间的 P2P的主要内容,如果未能解决你的问题,请参考以下文章

NAT学习笔记

什么时候需要转?对称 NAT 和端口限制 NAT

NAT,PAT和反向代理的区别?

网络端口地址转换 NAPT 配置

虚拟机网络连接NAT模式,本地用Xshell连接

配置NAT