源地址/源端口与目的地址/目的端口

Ome*_*mer 6 firewall port tcpip ip

我是 TCP/IP 新手,正在努力学习基础知识。嗯,我真的很想知道防火墙的入站规则和出站规则以及源地址端口、目标地址端口的概念。

例如,我正在调查端口 80。我知道 Http 使用端口 80。但是当我尝试侦听流量时,我发现我的浏览器不使用端口 80。正如您从图像中看到的,仅使用了目标端口 80,并且“目的地”应该是托管网页的服务器。而且源端口上也没有使用端口 80,“源”应该是我的电脑。

在此处输入图片说明

我的浏览器使用其他一些端口作为源并转到服务器端口 80。由此,我了解到我的计算机的端口 80 不用于 Http,只有托管网页的服务器计算机使用端口 80,但如果我关闭端口我的 80 台来自出站规则的计算机无法正常工作。但正如我之前从图像中了解到的,我的计算机上没有使用端口 80。

真的很迷茫。有人可以为我澄清一下吗?

Wer*_*nze 7

好的,让我们深入研究 IPv4 的细节。每个 IP 数据包都有一个源 IP 地址和端口以及一个目标 IP 地址和端口。IP 地址是用于整台计算机的,因此 IP 地址足以将数据包从计算机 A 带到计算机 B。如果您在一台计算机上运行两个服务(例如电子邮件和 Web 服务器),IP 数据包需要到达正确的服务。正确服务的选择是基于端口完成的。

如果客户端想要连接到像 web 服务器或邮件服务器这样的服务器,那么客户端需要知道服务器的 IP 地址。在 Web 浏览器中,您输入服务器的 DNS 名称或 IP 地址。在邮件客户端中,您也输入了邮件服务器的名称。所以当客户端想要连接到服务器时,唯一缺少的就是端口。为方便起见,有一些标准定义了哪个端口用于/为哪个服务保留。例如,对于 http 端口 80 是保留的。网络服务器仅侦听端口 80,但忽略任何其他端口。

如果你愿意,你可以配置一个网络服务器来监听你想要的任何端口,例如它也可以是端口 12345。但是客户端需要输入,http://ip:12345/以便网络浏览器知道在哪个端口上联系网络服务器。只是给予http://ip/将是一个捷径http://ip:80/

如您所见,服务器正在一个明确定义的端口上工作,他正在接收发送到目的地=server-ip:server-port 的数据包,并使用 source=server-ip:server-port 发送数据包。从长远来看,操作系统为每个新连接打开一个新的套接字,并为该套接字分配一个唯一的(尚未使用的)端口。使用哪个端口无关紧要。客户端是发起连接的人,他向服务器发送带有 source=client-ip:client-port 的数据包。服务器可以查看数据包的来源,现在就知道谁在连接他,以及他应该在哪里发回答案。

每个四元组 server-ip:server-port:client-ip:client-port 唯一标识一个连接。

客户端将连接视为传出,服务器将它们视为传入。防火墙可以有出站规则(发送数据包),也可以有入站规则(接收数据包)。如果您想阻止来自/到您的计算机的 http 连接,您唯一知道的是服务器正在使用的端口。因此,当您要阻止计算机上的 Web 浏览器时,您必须为目标端口 80 定义拒绝出站防火墙规则。如果要阻止其他计算机,使它们无法连接您在计算机上运行的 Web 服务器,那么您必须为 destination=port 80 定义拒绝入站防火墙规则。

还有一些你没有要求的东西:

  • 并非每个服务都有指定/保留的 IP 端口。
  • 还有用于特殊服务发现过程的协议。
  • 端口的(16 位)范围分为两部分。端口号 1-1024 为管理员/系统进程保留,而更高的端口号可供任何人使用。