Networking 如何在一个新的工作中接触到一台特定的计算机?

Networking 如何在一个新的工作中接触到一台特定的计算机?,networking,ip,router,Networking,Ip,Router,假设我有一个由5台计算机组成的家庭网络。它们都共享相同的外部IP地址。 假设网络之外的一台机器(作为客户端)向家庭网络中的5台计算机(这台计算机将是服务器)中的一台发送请求。它将其消息发送到外部IP地址。然后,路由器如何知道消息必须路由到家庭网络中的哪台计算机?网络地址转换(NAT)允许单个设备(如路由器)充当Internet(或公共网络)和本地网络(或专用网络)之间的代理,这意味着只需要一个唯一的IP地址就可以将整个计算机组表示为其网络之外的任何对象 地址转换(NAT)过载允许您的5台计算机与

假设我有一个由5台计算机组成的家庭网络。它们都共享相同的外部IP地址。
假设网络之外的一台机器(作为客户端)向家庭网络中的5台计算机(这台计算机将是服务器)中的一台发送请求。它将其消息发送到外部IP地址。然后,路由器如何知道消息必须路由到家庭网络中的哪台计算机?

网络地址转换(NAT)允许单个设备(如路由器)充当Internet(或公共网络)和本地网络(或专用网络)之间的代理,这意味着只需要一个唯一的IP地址就可以将整个计算机组表示为其网络之外的任何对象

地址转换(NAT)过载允许您的5台计算机与路由器通信。每台计算机都有唯一的专用IP地址

当computer1尝试与网站通信时,它将数据包发送到路由器

路由器将专用IP地址(例如:192.168.1.1)替换为单个公共IP地址(例如:205.65.45.100),但使用计算机使用的相同源端口号(例如端口5000)。它不会更改源端口号。路由器维护NAT表中的条目

来自(web服务器)internet的回复到达路由器的公共接口

路由器接受数据包并检查目标端口条目。在NAT表的帮助下,您的路由器知道它属于computer1。路由器将单个公共IP地址(例如:205.65.45.100)更改为您的内部专用地址(例如:192.168.1.1),您的计算机将收到该地址

此过程适用于所有5台计算机


上述场景仅适用于您的计算机充当客户端的情况。如果您的计算机充当服务器,则解决方案是“端口转发”


当Internet上的计算机需要启动与防火墙或NAT路由器后面的计算机的连接时,需要端口转发

有关详细信息,请参阅视频。

通常,当你谈论NAT时,有两种主要的“味道”——源NAT和目标NAT。还有另一个函数称为“PAT”(或端口地址转换)

当您的5台计算机都试图连接到公共(互联网)网络时,将使用源NAT。此时,您的5台计算机将被您的公共IPv4地址屏蔽

目的地NAT就是你想要的。在这种情况下,您必须将路由器/防火墙(保存公共地址并维护公共连接的设备)配置为“重定向”或“DNAT”所有发送到特定应用程序(或端口)的传入数据包。例如,如果您的专用网络服务器上运行一个地址为10.0.0.3的HTTP服务器,您只需指示路由器发送已发送到端口80/443上公共IP的所有(或选择性)TCP数据包,并将其发送到10.0.0.3即可

在DNAT场景中,您必须明确指示路由器/防火墙关于每种类型的预期传入连接。另一个例子是,SMTP服务器使用了相同的公共地址,从而将端口25上接收到的所有TCP数据包发送到本地服务器10.0.0.4。等等等等


简而言之,这就是它的工作原理。

谢谢你的回答,但问题是如果我的计算机是服务器而不是客户端,会发生什么。假设家庭网络之外的计算机是客户端,它向家庭网络的外部IP发起请求。在这种情况下,路由器如何知道家庭网络中的哪台计算机来引导流量?只有当您的计算机充当客户端时,上述场景才适用。如果您的计算机充当服务器,则解决方案是“端口转发”。当Internet上的计算机需要启动与防火墙或NAT路由器后面的计算机的连接时,需要端口转发。我对问题进行了编辑以使其更清楚。这是我在最初的职位上的意图。我写了“网络之外的机器发送请求”。我想大家都知道这台机器就是客户/