2017-09-21 34 views
-1

我在superuser.com(https://superuser.com/questions/284051/what-is-port-forwarding-and-what-is-it-used-for)上阅读了一篇文章,该文章回答了除使用端口以外的所有内容。当从NAT路由器后面发送数据时,发送设备使用哪个端口发送到路由器以及路由器在通过互联网发送出去之后使用哪个端口?我知道当服务器收到这个数据包时,它使用发送设备(客户端)发送的端口来知道将数据包发回的位置。但是,这仍然不能解决NAT路由器最初提出这两个(私有和公共)端口的问题。 NAT路由器是否只是选择随机端口,并通过发送端口来发送窥探游戏,使黑客几乎不可能使用端口扫描器在互联网的随机节点上找到开放端口?请有人把我从痛苦中解救出来。客户端使用哪些网络端口发送出站数据包?

回答

-1

除非另有说明,端口在整个频谱范围内保持不变。例如,

客户端在80上发送HTTP,路由器将80个私有上的HTTP转发给80个公共端。 Internet路由器在公共80上接收并转发到私有80.

路由器(NAT后面)更改的唯一内容是请求的IP地址。如果我从端口80上的计算机发送数据包到Internet站点,则路由器将数据包源IP更改为其IP,然后将其发送到全球。

现在,假设我们正在家庭网络中。以下是事情的运作方式。 192.168.0.2发送请求到路由器端口80上的8.8.8.8(谷歌)。数据包到达路由器。路由器将SourceIP从192.168.0.2更改为其公有IP(64.5.5.5)。它使用各种信息(如请求MAC地址)存储此记录。数据包到达8.8.8.8,然后将目标IP从8.8.8.8更改为172.0.0.5(Google的一些内部Web服务器)并将请求发送到服务器。当服务器发送响应时,相同的过程反过来发生。

+0

客户端从系统分配的端口向*端口80 *发送HTTP *。 – EJP

+0

我发誓我没有试图变得困难,当你说它保持不变时,这个端口初始化到什么地方以及是什么决定了它?当我想发送NAT后面的东西时,我知道路由器最终将每个节点分配给一个私有地址。好吧,它也会为每个节点分配一个端口和它分配的地址?我熟悉你描述的所有内容,特别是在看完这些后:https://youtu.be/QBqPzHEDzvo?t=5m29s。我唯一的困惑是使用的第一个端口(私有端)的起源以及路由器分配的发送给服务器(公共端)的端口。 – Doug

+0

我依赖于尝试通信的应用程序(或协议)。以下是常见端口号的列表https://en.m.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers –