使用 STUN 打孔

2024-04-30

我目前正在尝试通过 Internet 发送 UDP 消息,并且必须为端点 A 和 B(都位于 NAT 后面)设置防火墙。为此,我想使用 STUN 服务器进行打孔。

当 A 创建对 STUN 服务器的请求(例如,私有:85.1.1.12:6000 和公共:173.194.78.127:19302)时,我得到 85.1.1.12:6000 作为响应。如果我要将数据包从相同的源配置(用于 STUN 请求的相同源 IP 和端口)发送到任何其他目标地址(目标端口保持不变),那么我的 NAT 将再次更改公共端口(从 6000 到其他)。我通过对两个不同的 STUN 服务器请求使用相同的地址端口配置(对两个请求使用端口 19302)发现了这一点。

像这样,当我向B发送数据包时,我不可能知道我的NAT在哪个端口进行转换(B无法接收任何东西,因为它的防火墙没有设置)。

这是因为我的 NAT 类型不兼容打洞还是我理解错误了?

Thanks!


85.1.1.12:6000 不是您的私有 IP 地址。它是您的 NAT 的公共/外部 IP:端口。私有 IP 是您的 PC/设备的接口地址。

根据您的情况,我猜测您有一个对称 NAT。在对称 NAT 中,每次您将一些数据包发送到不同的目的地时,NAT 的公共端口都会发生变化。如果您的目的地保持不变,则 NAT 的公共 IP:端口也保持不变。

对于其他类型的 NAT,如果您的私有 IP 没有更改,那么您将数据包发送到何处并不重要,您的 NAT 公共 IP:端口(在您的情况下为 85.1.1.12:6000)将保持不变。

如果一侧具有 **对称 NAT,而另一侧具有对称/PRC NAT,则无法进行打孔。

**所谓对称 NAT,是指提供随机端口分配的对称 NAT。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 STUN 打孔 的相关文章

  • 如何使用 ZeroMQ 处理原始 UDP?

    我有一个客户 我无法更改其代码 但我想使用 重新 编写ZeroMQ插座 客户使用原始TCP和原始的UDP插座 我知道我可以使用ZMQ ROUTER RAW对于生的TCP插座 但是原始的怎么样 UDP数据流 ZeroMQ 中对 UDP 的支持
  • 如何通过peerJS 点对点连接接收数据?

    我正在尝试使用peerJS 连接两个对等点 我几乎只是在遵循他们的 入门 但我仍然在挣扎 下面是我到目前为止得到的代码
  • Java UDP中如何获取实际数据包大小`byte[]`数组

    这是我上一个问题的后续问题 Java UDP发送 接收数据包一一接收 https stackoverflow com questions 21866382 java udp send receive packet one by one 正如
  • 简单的udp代理解决方案

    我正在寻找可以代理我的 udp 数据包的解决方案 我有一个客户端向服务器发送 udp 数据包 它们之间的连接非常糟糕 导致大量数据包丢失 一种解决方案是使用一个新的代理服务器 它将所有数据包从客户端重定向到目标服务器 新的代理服务器与这两个
  • C++ 反序列化通过 UDP 从 C# 应用程序发送的对象

    我有一个申请c 它连接到另一个应用程序 编写为c 通过UDP 我更喜欢高性能的解决方案 因为我希望测量事件客户端 某些处理服务器端和客户端处理完成的响应之间的时间 本质上是 往返延迟 我有一个 C 对象 例如 public class Pa
  • 如果客户端在服务器之后启动,则 GStreamer v1.0 UDP 多播流无法正确解码

    我正在尝试使用 GStreamer 进行 UDP 多播屏幕流传输 我的投屏服务器应该在 Windows 上运行 and my 客户端应在 Linux 上运行 如果我在服务器之前启动客户端 一切都很好 问题是当我启动客户端并且服务器已经启动时
  • 通过 Internet 发送 UDP 数据包

    我正在尝试了解 P2P 去中心化网络的一些细节 我的问题如下 假设我有两台名为 comp1 和 comp2 的机器 现在 comp1 设置在我的家庭网络中的路由器后面 comp2 位于我的办公室中 也位于路由器后面 我是否可以像这样在 In
  • HTTP 是否使用 UDP?

    这可能是一个愚蠢的问题 HTTP 是否使用过用户数据报协议 例如 如果使用 HTTP 传输 MP3 或视频 它内部是否使用 UDP 进行传输 From RFC 2616 http www ietf org rfc rfc2616 txt 通
  • 具有 3 个用户连接的 WebRTC

    我现在正在实施源代码WebRTC 示例 https github com webrtc samples tree gh pages src content peerconnection audio通过使用网状拓扑成为 3 个用户连接 但是
  • 将 Docker 容器连接到网络接口/设备而不是 IP 地址

    经过仔细的研究 测试和摆弄 我只能找到通过从 IP 端口转发来将 Docker 容器连接到给定接口的方法 这可以通过添加来完成 p Host IP Host Port Container Port to a docker run命令 我有一
  • Java UDP 服务器,并发客户端

    下面的代码足以接受并发 UDP 传输吗 更具体地说 如果 2 个客户端同时传输 当我调用 receive 时 DatagramSocket 会将传输排队并一一传送它们 还是只有一个能够通过 DatagramSocket socket new
  • 自动启用从 Internet 访问端口 4900 的方法

    我正在编写一个在端口 4900 上运行的自定义 p2p 程序 在某些情况下 当用户位于路由器后面时 无法从互联网访问该端口 是否有一种自动方式可以从互联网访问该端口 我不太确定其他 p2p 应用程序是如何工作的 有人能解释一下吗 简而言之
  • 如何在QT中发送和接收UDP数据包

    我正在 QT 中编写一个小型应用程序 它通过本地网络发送广播 UDP 数据包 并等待来自网络上的一个或多个设备的 UDP 响应数据包 创建套接字并发送广播数据包 udpSocketSend new QUdpSocket this udpSo
  • 致命错误:netinet/in.h:没有这样的文件或目录

    套接字编程 UDP 服务器 我正在尝试使用 UDP 服务器进行消息加密和解密 代码在这里 https www geeksforgeeks org message encryption decryption using udp server
  • Windows 操作系统中无法访问的 IP 套接字关闭时间

    这些代码通过用户数据报协议提供发送数据 下面有两个代码 当我使用第一个代码来处理无法访问的 IP 地址时 我得到了三秒的延迟 请查看新结果标题 只需打开新的 C 控制台应用程序并将这些代码粘贴到其中 第一个代码 using System u
  • 自 2012 年以来,WinSock 注册 IO 性能是否有所下降?

    我最近使用 MS 为该 API 提供的稍微可接受的文档编写了基于 WinSock Registered IO RIO 的 UDP 接收 最终的性能非常令人失望 单套接字性能有些稳定 约为每秒 180k 数据包 使用多个 RSS 队列 即多个
  • 使用 STUN 打孔

    我目前正在尝试通过 Internet 发送 UDP 消息 并且必须为端点 A 和 B 都位于 NAT 后面 设置防火墙 为此 我想使用 STUN 服务器进行打孔 当 A 创建对 STUN 服务器的请求 例如 私有 85 1 1 12 600
  • 同步通过 LAN 电缆连接的两台 Windows 7 计算机之间的时间

    我有许多笔记本电脑 它们运行我们的应用程序 同时通过以太网电缆成对连接 但未连接到任何外部网络或互联网 时间 我需要连接对来同步其系统时间 但由于每台计算机都需要能够与任何其他计算机同步 因此我无法将一台计算机定义为时间服务器 而另一台计算
  • Rails 是否支持侦听 UDP 套接字的简洁方式?

    在 Rails 中 集成更新模型某些元素的 UDP 侦听过程的最佳方式是什么 特别是向其中一个表添加行 简单的答案似乎是在同一进程中使用 UDP 套接字对象启动一个线程 但不清楚我应该在哪里执行适合 Rails 方式的操作 有没有一种巧妙的
  • 使用 Boost.Asio 进行广播的问题

    如果问题之前已得到解答 我提前表示歉意 但我已经搜索并没有找到任何对我有帮助的东西 正如问题标题所示 我正在尝试将包从服务器广播到一组侦听任何消息的客户端 客户端将计算一秒钟内收到的消息数 服务器端的事情是这样的 class Server

随机推荐

  • 处理限制为 2 列的可变空间分隔文件

    无论出于何种原因 数据均以以下格式提供 0001 This is text for 0001 0002 This has spaces in between 0003 Yet this is only supposed to be two
  • 如何检查 Python 中的函数是否没有发送参数

    因此 在一个函数中 我想测试函数期望的参数是否存在 如果有参数 则执行此操作 如果没有从调用程序发送参数且函数中未接收到任何参数 则执行此操作 def do something calculate if calculate somethin
  • 为什么进度条不像文本那样动态变化?

    我在之后动态更新一些元素setTimeout 功能 jQuery 函数 text 似乎在处理时随着数组索引的每次变化而动态更新 但是引导进度条正在通过以下方式更改 css and attr 好像没有动态更新 这是我的页面 您可以看到文本发生
  • qmake 和 QT_INSTALL_PREFIX。如何为 Qt 库选择新位置?

    我是 qmake 的新手 我正在尝试构建一个现有的应用程序 Qt 最初安装在 usr local lib Qt 4 3 5 中 qmake query QT INSTALL PREFIX 返回该路径 我已将 Qt 库移动到另一个位置 生成的
  • 如何在 Tensorflow 中计算 Spearman 相关性

    Problem 我需要计算 Pearson 和 Spearman 相关性 并将其用作张量流中的指标 对于皮尔逊来说 这是微不足道的 tf contrib metrics streaming pearson correlation y pre
  • 已安装 JDBC,但尝试连接到 Oracle 时出错

    扩展库附带的示例程序工作得很好 但是当我尝试连接到 Oracle 时 出现以下错误 读取关系数据时出错 加载连接 ojdbc14 时出错 加载 JDBC 驱动程序类 oracle jdbc Driver OracleDriver 时出错 如
  • 如何使用AJAX显示数据?

    大家好 我在 ajax 中面临一个问题 我想将此数据显示为 html 中的表格 我如何提取此数据并以 html 表格形式显示它 它只是一个虚拟数据 否则它有很多对象加上嵌套对象帮我 JSON 数据 FullName shahrushabh
  • 求 a/b mod c

    我知道这可能看起来像一个数学问题 但我刚刚在比赛中看到这个问题 我真的很想知道如何解决它 We have 一个 模c and b 模c 我们正在寻找商的值 a b mod c 有任何想法吗 在整数环中模C 这些方程是等价的 A B mod
  • r-project SixSigma ss.rr 在 `row.names<-.data.frame`(`*tmp*`, value = value) 中给出错误:'row.names' 长度无效

    我有下面的数据框 gt str luc data frame 19 obs of 4 variables driver Factor w 16 levels nr 1 nr 10 1 9 10 11 12 13 14 15 16 2 pos
  • SQL Server、C#:事务回滚超时异常

    我有一个奇怪的问题 我有一个 NET 程序 我的处理逻辑需要在 SQL Server 2005 数据库上进行长时间运行的事务 约 20 分钟 没关系 因为没有人并行访问数据库 当出现问题时 事务应该回滚 很少发生并且没有任何可见的模式 th
  • Java hibernate 找不到布尔值验证器

    我有一个服务方法尝试添加一个对象store 冬眠的方法 get 方法适用于此 DAO 和服务类 而添加方法则不起作用 在控制台中没有错误 UrlWhiteListDaoImpl urlDao MapperFacade mapper Auto
  • 棋子层次结构设计:继承与类型字段

    我有一个片段的基类 class piece 和一个包含派生对象的数组 piece board 8 8 优点 通过虚拟函数进行简洁的设计 缺点是 如果我必须在板上找到一块或比较一块 我必须恢复到动态铸造 或 typeid 它很丑陋 并且在发出
  • 为什么 com.ibm.jms.JMSTextMessage 类型的变量会打印截断的内容和省略号 (...)?

    我想了解为什么 com ibm jms JMSTextMessage 类型的变量在转换为字符串时会打印出截断的内容和省略号 我在 JMeter 的 JSR223 Sampler 中有以下代码 import com ibm msg clien
  • 如何设置通知在点击时自行清除?

    如何设置我的通知在点击时自行清除 我已经设置了autoCancel true 但这不起作用 My code Notification n new Notification Builder this setContentTitle Updat
  • UIScrollView停止减速

    在 iPhone 3 0 中立即停止 UIScrollView 减速的最佳方法是什么 我想保持 UIScrollView 的减速 直到它自然停止或用户执行某个操作 无论先发生什么 Thanks 未经测试的建议即将出现 当捕获按钮点击事件时
  • generate_presigned_post 中的 Boto3 InvalidAccessKeyId

    我正在使用 Python 的 Chalice 库创建 AWS Lambda 和 API 我的 AWS 凭证是使用 github 工作流程 aws actions 注入的 它能够chalice deploy 端点正在运行 并且正在完美部署到
  • 何时使用 BlockingCollection 以及何时使用 ConcurrentBag 而不是 List

    The 为什么这个 Parallel ForEach 代码会冻结程序 问题的接受答案 https stackoverflow com a 8365614 2031316建议将列表用法替换为并发包 http msdn microsoft co
  • 自定义半透明 Android ActionBar

    我一直在互联网上搜索 例如 Android 文档 此处的答案等 以寻找我认为相当琐碎的问题的答案 如何实现像中那样的半透明操作栏谷歌音乐 http coreylatislaw com wp content uploads 2011 07 g
  • JPA如何为@OneToMany关系的列添加唯一约束,例如用户名

    我有一个班级Site代表一个网站和一个类User A Site可以有多个Users class Site private int site ID OneToMany with a join table private List
  • 使用 STUN 打孔

    我目前正在尝试通过 Internet 发送 UDP 消息 并且必须为端点 A 和 B 都位于 NAT 后面 设置防火墙 为此 我想使用 STUN 服务器进行打孔 当 A 创建对 STUN 服务器的请求 例如 私有 85 1 1 12 600