使用套接字连接 nat 后面的 ip

2023-12-05

考虑一部通过电话 A 连接到 wifi 的电话,地址为动态 Ipex:192.168.0.34及其监听服务器套接字port 7567,如果我有另一部电话 B 来连接公共 ip 上的电话,我可以通过什么方式使用任何编程语言连接到该套接字10.0.0.56我有 wifi 路由器 ip 说 ex55.56.89.76 ?


如果不使用端口转发,则无法直接连接到 NAT 后面的客户端。但是有一种称为打洞的技术可以通过 NAT 打开端口。

From 维基百科:

打孔是一种计算机网络技术,用于在位于限制性防火墙后面的不同组织中的两方之间建立通信。用于在线游戏、P2P 和 VoIP 等应用程序,两个客户端都与不受限制的第三方服务器建立连接,该服务器为它们揭示外部和内部地址信息。由于每个客户端都向服务器发起请求,因此服务器知道为该会话分配的 IP 地址和端口号,并且彼此共享这些 IP 地址和端口号。拥有有效的端口号会使防火墙接受来自每一侧的传入数据包。 ICMP打洞、UDP打洞和TCP打洞分别使用互联网控制消息、用户数据报和传输控制协议。使用 TCP 恶意打洞,可以将压缩的 SYN 数据包发送到公共 ACK 路径中。许多软件都这样做。

另请参阅相关问题这个话题.

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

使用套接字连接 nat 后面的 ip 的相关文章

  • 设计 EAP-TLS 客户端问候消息

    我正在尝试设计第一个启动 EAP TLS 握手的数据包 这是我的数据包目前的样子 我通过用相应的信息手动填充 C 中的缓冲区来设计 EAP 部分 我使用 OpenSSL 导出的 TLS 部分如图所示在这个问题中 https stackove
  • BSSID可以作为唯一标识符吗?

    我正在构建一个 Android 应用程序 列出用户周围的所有 wifi 网络 当用户尝试使用特定服务时 我的应用程序需要有关用户网络的信息 当我的应用程序从用户网络获取所有信息时 它会自动在我的数据库表中插入一个新行 其中包含所有这些必要的
  • 无法远程连接到Python Socket

    我已经使用 python 套接字和 Tkinter 创建了一个聊天应用程序 它在本地运行得很好 但是客户端无法远程连接到服务器 当我输入我的公共 IP 地址作为主机时 我已经完全端口转发了我的网络并且我知道如何很好地进行端口转发 当我运行在
  • Windows Phone 7 可以实现 ping 吗?

    为了了解 WP7 中的网络功能 我将构建一个简单的 ping 应用程序 该应用程序将显示对某个主机的 ICMP ping 请求的结果 然而 不仅System Net NetworkInformation Ping班级不见了 System N
  • accept() 创建一个新套接字是什么意思?

    我的问题基于以下理解 套接字由 ip port 定义 服务器和客户端都有自己的套接字 Socket连接由五组server ip server port client ip client port protocol定义 套接字描述符是标识套接
  • C++ Boost.asio Ping

    我正在尝试编写一个程序来列出网络上设备的所有 IP 地址 其主要组成部分之一是能够对设备执行 ping 操作 这个程序必须在Linux Windows和Mac上运行 所以我选择了Boost库 我设法在文档中找到这个示例 http www b
  • Python套接字模块:Recv()数据响应被切断

    解释 我目前正在尝试使用 python 脚本控制智能电源板 为了实现这一点 我使用了带有套接字模块的 TCP 连接 大约 75 的情况下 我会得到我正在寻找的响应 数据 并且一切都运行良好 然而 大约 25 的情况下 响应会以完全相同的长度
  • 模拟网络断开连接以在本地测试分布式应用程序分区

    我有几个在本地主机上运行的分布式应用程序实例 每个实例都通过某些端口与其他实例通信 所有实例一起构成一个整体 我实际上是在谈论动物园管理员 http hadoop apache org zookeeper 在 Linux 上运行 现在我想编
  • 理解 htonl() 和 ntohl()

    我正在尝试使用 unix 套接字来测试向本地主机发送一些 udp 数据包 据我了解 当设置 ip 地址和端口以发送数据包时 我会填写我的sockaddr in将值转换为网络字节顺序 我在 OSX 上 我很惊讶这个 printf ntohl
  • Python 套接字库认为套接字未打开时已打开

    我正在使用一些Python 如下所示 HOST 127 0 0 1 PORT 43434 single socket socket socket AF INET socket SOCK STREAM try single bind HOST
  • 使用java实现网站家长控制

    我想用java编写一个独立的应用程序来控制对受限网站的访问 而孩子们在父母不在身边时使用互联网 主要思想是根据浏览者来阻止成人 不需要的网站 用例是这样的 1 用户打开浏览器 2 我们的应用程序 在后台运行 应该弹出一个身份验证框并要求用户
  • 如何以编程方式证明“六度分离”概念?

    我有一个包含 2000 万用户以及这些人之间的联系的数据库 如何证明 六度分离 的概念以最有效的方式在编程中 链接到有关六度分离的文章 http en wikipedia org wiki Six degrees of separation
  • 根据 TCP 的 C++ 函数

    我正在使用 recv 函数 C 来获取有关网络问题的指示 在这种情况下它返回负值 看这里 https www rfc editor org rfc rfc1122 page 100 https www rfc editor org rfc
  • 使用 Shell 脚本提供密码

    我已将客户端和服务器设置为无密码登录 就像无密码登录一样 通过将服务器的 RSA 密钥复制到所有客户端的 root ssh id rsa pub 来实现 但这是我手动完成的 我喜欢使用 shell 脚本自动执行此过程 并通过脚本向计算机提供
  • C# NetworkStream.Read() 会等到读取指定数量的数据吗?

    在 C C 中 常规非阻塞网络套接字上的 read 将立即返回缓冲区中当前可用的数据量 最多可达指定的量 因此 如果我们要求 16 个字节 但目前只有 8 个可用字节 我们将得到这 8 个 由我们决定再次调用 read 并获取所有数据 在
  • 如何修改s_client的代码?

    我正在玩apps s client c in the openssl源代码 我想进行一些更改并运行它 但是在保存文件并执行操作后 我的更改没有得到反映make all or a make 例如 我改变了sc usage函数为此 BIO pr
  • 具有相同容器端口的多个 docker 容器连接到同一网络

    我有一个依赖于多个 Docker 容器的应用程序 我使用 docker compose 以便所有这些都位于同一网络中以进行容器间通信 但是 我的两个容器正在各自容器内侦听相同的端口 8080 但是映射到主机上的不同端口 8072 8073
  • 调试断言失败。表达式(流!=NULL)

    我收到以下错误 调试断言失败 表达式 流 NULL 文件 f dd vctools crty bld self x86 crt src fwrite c 创建 4 个线程时 CPU 使用率 100 该代码最初运行良好一段时间 然后给出此错误
  • 在请求中设置端口

    我正在尝试利用cgminer使用 Python 的 API 我对利用requests图书馆 我了解如何做基本的事情requests but cgminer想要更具体一点 我想缩小 import socket import json sock
  • 如何在 Perl 中使用原始套接字?

    你怎样才能得到一个rawPerl 中的套接字 那么构建与其一起使用的数据包的最佳方法是什么 与在 C 中执行的操作相同 通过在创建套接字时设置套接字类型 在示例中CPAN http search cpan org rgarcia perl

随机推荐

  • Eclipse 编辑器中当前选定代码的 AST?

    我需要在 Eclipse 的 java 编辑器中获取当前选择的 AST 基本上我想将选定的java代码转换为其他形式 可能是其他语言或XML等 所以我想 我需要获得 AST 来进行选择 目前我能够以简单文本的形式进行选择 对于这样的问题有什
  • 使用OpenGL绘制图像

    如何使用开放的 OpenGL OpenTK 在地图 GMap Net 上绘制视频 图像 来自无人机的视频 我的问题是如何在地图上绘制视频图像 因为视频可以在地图上以不同角度观看 并且图像在地图上应该是梯形而不是四边形 I copied im
  • 使用 ref setAccessibilityFocus 不起作用

    我正在使用ref支柱连同findNodeHandle在一堆组件上以便能够触发AccessibilityInfo setAccessibilityFocus 然而 它并不总是按预期工作 有时参考是null虽然componentDidMount
  • 将所有列(表中)的所有零(如果有)更改为...例如 1

    我有一个包含 18 列 均为整数 和 1040 行的表 如果任何值为零 我想将其更改为 1 我正在使用 Postgresql 做这个的最好方式是什么 我无法想出一个简单的更新语句 而且我是数据库新手 关于我应该看什么来学习如何实现这样的事情
  • AspectJ - 使用类型间声明创建全局记录器字段

    我想创建一个类型间声明 在每个类中声明一个 静态最终 Logger 实例 构造函数应该传递给封闭类Klazz class value Aspect public class LoggerAspect public interface Log
  • 安装 Gulp 后:“找不到命令‘gulp’”

    安装后gulp js通过 npm 我收到了no command gulp found运行时出错gulp来自安装到的同一目录的命令 当查看下方时node modules bin 目录 我可以看到gulp在那里可执行 我的npm安装有问题吗 这
  • C# 中何时使用“using”块?如何在 C# 中使用“using”块?

    我在大多数样本中看到SqlCommand像这样使用 using SqlConnection con new SqlConnection CNN STRING using SqlCommand cmd new SqlCommand Selec
  • jQuery 对话框中的单击事件发生两次?

    我一直在处理一个奇怪的问题 click 每当放置在 jQuery 对话框中时 事件就会发生两次 我的简单测试用例如下活生生的例子在这里 div style display none a href Test Link a div
  • 使用 foreach 而不是 while 循环循环 mysql_fetch_assoc [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我有一个 mysql 查询 result mysql query my query 有没有办法让这样的事情发挥作用 results mysql fetch assoc result f
  • Emacs 23、OS X、multi-tty 和 emacsclient

    如何让 emacs 23 在 OS X 上的多 tty 模式下正常工作 我已经添加 server start 到我的 emacs 并发现运行 Applications Emacs app Contents MacOS bin emacscl
  • 什么“类型”是从选择标签中选择的选项

    我是 PHP 新手 正在尝试获取从 select 标签中选择的选项的值 我熟悉某些类型的输入 例如单选 文本 复选框等 我的问题是 类型 是从选择标签中选择的选项 前三种形式工作得很好 但第四种则不行 这是我的代码
  • Akka 路由:回复发送到路由器最终成为死信

    我正在使用 Actor 路由 但无法将回复发送回路由器 以便路由列表中的另一个 Actor 可以接收到此消息 我在用着 sender tell Message context parent 为了根据 akka 文档回复路由器 路由参与者将发
  • 带有 .htaccess 的 SEO 友好 URL

    有人可以帮我重写一些 URL 吗 我有 例如 这些页面 www mydomain com test gallery asp id 2 www mydomain com test gallery asp id 3 并希望他们被要求为 www
  • html onchange 事件不起作用

    我正在尝试做一些实验 我想要发生的是 每次用户在文本框中输入内容时 它都会显示在对话框中 我用的是onchangeevent 属性来使其发生 但它不起作用 我仍然需要按提交按钮才能使其正常工作 我读到了有关 AJAX 的内容 并且正在考虑了
  • 哪些 lua 功能可以用作 python 或 tcl Expect 中的 pexpect?

    我有一些 shell 脚本 它们将一些消息打印到 stdout 并且如果输出与某些正则表达式匹配 我想生成一些其他进程 我可能还想将 shell 挂起一段时间 直到其他进程给出一些反馈 我的要求基本上表现得像shell中的pipe和tcle
  • mongoDB 中的嵌套对象文本搜索

    我不确定如何解决这个问题 我想在 mongoDB 集合中搜索并仅返回适合搜索查询的嵌套对象 在所有字段上使用文本搜索 该集合中的所有文档都具有以下格式 arr id 1 name Random description Hello world
  • 在 RealityKit 中启用手势

    我有一个自定义的 usdz 文件 不是通过代码创建的 而是一把真正的椅子 我将其保存在Entity 一旦我有了它 这就是我的代码 func updateUIView uiView ARView context Context if let
  • XSLT-标准化不间断空白字符

    我有一个像这样的示例 xml 文件
  • Azure 门户错误:无法启动虚拟机“xxxx”。错误:URL“xxxx”引用的 Key Vault 机密不存在

    在假设我的配置中的任何地方都没有使用这些密钥保管库并且这些是我的测试留下的一些内容之后 我从资源管理器中删除了一些密钥保管库 现在我无法启动虚拟机并出现此错误消息 无法启动虚拟机 xxxx 错误 Key Vault 机密 使用 URL xx
  • 使用套接字连接 nat 后面的 ip

    考虑一部通过电话 A 连接到 wifi 的电话 地址为动态 Ipex 192 168 0 34及其监听服务器套接字port 7567 如果我有另一部电话 B 来连接公共 ip 上的电话 我可以通过什么方式使用任何编程语言连接到该套接字10