当前位置: 首页 > 知识库问答 >
问题:

使用STUN打孔

颛孙沈义
2023-03-14

我目前正在尝试通过internet发送UDP消息,并且必须为endpointA和B(都在NAT之后)设置防火墙。要做到这一点,我想使用打洞使用一个眩晕服务器。

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

像这样,我没有可能知道我的NAT在向B发送html" target="_blank">数据包时是什么端口做转换的(B因为它的防火墙没有设置,所以接收不到任何东西)。

这是因为我的NAT类型不兼容打孔还是我的概念搞错了?

谢谢!

共有1个答案

司徒英卓
2023-03-14

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

从您的场景来看,我猜您有一个对称NAT。在对称NAT中,每次将某些数据包发送到不同目的地时,NAT的公共端口都会更改。如果您的目的地保持不变,那么NAT的公共ip:port也保持不变。

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

 类似资料:
  • Stun-Lib是一个用Go开发的STUN(RFC 3489)协议支持库,支持stun的BindingRequest和BindingResponse消息以及想关的Atrribute编码和解码。具体使用参考server.go文件。

  • 我正在开发一个通讯系统: A、B是NAT下的计算机,A是服务器B是客户端S是STUN服务器 %S正在Internet上可访问的计算机上运行 麻烦就从这里开始,STUN服务器完成了它的工作,因为两端都接收到关于另一端的正确信息。 但是我从来没有接收到另一端的消息,所以两端都在监听,没有接收到握手操作码或其他任何东西。 我检查了NAT的行为,似乎它是这样的 我运行的测试看到两端(A,B)托管在同一台机

  • 为了处理文字和图形而使用视讯显示器时,设备无关的概念看来非常完美,但对于打印机,设备无关的概念又怎样呢? 总的说来,效果也很好。在Windows程序中,用于视讯显示器的GDI函数一样可以在印表纸上打印文字和图形,在以前讨论的与设备无关的许多问题(多数都与平面显示的尺寸、分辨率以及颜色数有关)都可以用相同的方法解决。当然,一台打印机不像使用阴极射线管的显示器那么简单,它们使用的是印表纸。它们之间有一

  • 我有一个连接到CUPS的打印机,它支持双面打印,如何通过java例程将其设置为单面打印或双面打印? 我曾尝试使用它的库使用ASET添加和addViewer首选项没有任何运气。 有人能提供一些建议吗?

  • 我目前的工作是创建机械图纸,用于发送给客户和作为施工图。当我的绘图完成后,我导出一个. pdf文件,并将其发送给客户端。 我们的客户非常喜欢黑白画,所以我试着提供他们。但是我用来画画的软件效果不好。它只有一个选项“所有颜色都是黑色”,我的画上有一些白色的“隐藏线”。当然,这些显示使用所有颜色作为黑色选项。 我找到了一个解决方案,那就是使用pdf打印机。效果很好,效果也很好。 现在我想打印这个。pd

  • 问题内容: 如何以易于阅读的格式(对人类读者而言)显示JSON?我主要是在寻找缩进和空格,甚至可能是颜色/字体样式/等等。 问题答案: 打印是在中本地实现的](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) 。第三个参数启用漂亮的打印并设置要使用的间距