首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UDP或TCP穿孔连接两个对等点(每个节点在路由器后面)

UDP或TCP穿孔连接两个对等点(每个节点在路由器后面)
EN

Unix & Linux用户
提问于 2018-02-02 16:07:27
回答 1查看 3.9K关注 0票数 5

我试图直接连接(没有第三方服务器)我的电脑到朋友的电脑。我们都在ISP路由器的后面,并希望(作为一个挑战!)在不修改路由器配置的情况下进行连接。

正如建议的这里这里一样,我们尝试了两个TCP孔穿孔:

代码语言:javascript
运行
复制
myself$ nc -p 7777 public-ip-friend 8888
friend$ nc -p 8888 public-ip-myself 7777

和UDP打孔:

代码语言:javascript
运行
复制
myself$ nc -u -p 7777 public-ip-friend 8888
friend$ nc -u -p 8888 public-ip-myself 7777

但他们都没用。

How来解决这个问题?

注意: VPS (而不是NAT后面)<->我的家用计算机(仍然在路由器后面)使用相同的方法工作。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-02-05 10:18:38

有时在问题中给出的命令会起作用,但有时却不能。

原因如下。

让我们说:

  • 我在本地网络上的计算机IP : 192.168.1.10
  • 我家公共知识产权: 203.0.113.10
  • 我朋友的公开IP: 198.51.100.27

在我的计算机上执行此操作时:

代码语言:javascript
运行
复制
myself$ nc -u -p 7777  198.51.100.27 8888

在NAT翻译之前,我们有:

代码语言:javascript
运行
复制
srcip          srcport         destip            destport
192.168.1.10   7777            198.51.100.27     8888

但是,在家庭路由器NAT翻译之后,我们有:

代码语言:javascript
运行
复制
srcip          srcport         destip            destport
203.0.113.10   55183(*)        198.51.100.27     8888

也就是说,源IP由NAT but重写,也就是源端口

因此,在我的家庭防火墙(接受来自我朋友198.51.100.27的通信量)中确实会创建一个“漏洞”,但是端口55183和端口 7777的<#>not。

这解释了为什么当我的朋友这样做时它会失败:

代码语言:javascript
运行
复制
friend$ nc -u -p 8888 203.0.113.10 7777

注意(*):在某些情况下,路由器可能保持srcport=7777,而不是将其重写到像55183这样的随机端口。在这种情况下,问题中给出的解决方案可能会奏效。但这是随机行为!

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/421471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档