端口是操作系统中网络连接开始和结束的虚拟场所。它们帮助计算机对其收到的网络流量进行分类。
阅读本文后,您将能够:
复制文章链接
端口是网络连接开始和结束的虚拟点。端口是基于软件的,并由计算机的操作系统进行管理。每个端口都与一个特定的进程或服务相关。端口让计算机能够轻松区分不同种类的流量:例如,尽管电子邮件与网页都通过相同的互联网连接到达计算机,但它们会进入不同的端口。
端口在网络连接的所有设备中都统一标准,每个端口都有一个编号。大多数端口为某些协议而保留,例如,所有超文本传输协议 (HTTP) 信息都进入端口 80。IP 地址使信息能够进出特定设备,而端口号允许针对这些设备中的特定服务或应用。
在同一个网络连接上,有大量不同类型的数据进出计算机。端口的使用有助于计算机了解如何处理它们收到的数据。
假设 Bob 使用文件传输协议 (FTP) 将 MP3 录音传输给 Alice。如果 Alice 的计算机将 MP3 文件数据传递给 Alice 的电子邮件应用,电子邮件应用将不知道如何解释它。但是因为 Bob 的文件传输使用了为 FTP 指定的端口(端口 21),所以 Alice 的计算机能够接收和存储文件。
同时,Alice 的计算机可以使用端口 80 加载 HTTP 网页,即使网页文件和 MP3 声音文件都通过同一个 WiFi 连接流向 Alice 的计算机。
OSI 模型是互联网工作方式的一个概念模型。它将不同的互联网服务和进程分为 7 层,分别为:
端口是一个传输层(第四层)概念。只有传输控制协议 (TCP) 或用户数据报协议 (UDP) 之类的传输协议才能指示数据包应去往哪个端口。网络层协议(例如,互联网协议 (IP))不知道在给定的网络连接中使用什么端口。在标准的 IP 标头中,没有任何地方可以表明数据包应该去往哪个端口。IP 标头只表明目标 IP 地址,而不是该 IP 地址的端口号。
通常,无法在网络层指示端口对网络进程没有影响,因为网络层协议几乎总是与传输层协议结合使用。但是,这确实会影响测试软件的功能,这是使用互联网控制消息协议 (ICMP) 数据包“ping”IP 地址的软件。ICMP 是一种网络层协议,可以 ping 联网设备。但如果无法 ping 特定端口,网络管理员就无法测试这些设备中的特定服务。
一些 ping 软件(如 My Traceroute)提供了发送 UDP 数据包的选项。与不能指定特定端口的 ICMP 相反,UDP 是一种可以指定特定端口的传输层协议。通过向 ICMP 数据包添加 UDP 标头,网络管理员可以测试联网设备中的特定端口。
防火墙是一种网络安全系统,它基于一组安全规则来阻止或允许网络流量。防火墙通常位于受信任的网络和不受信任的网络之间;通常,不受信任的网络是互联网。例如,办公室网络通常使用防火墙来保护其网络免受在线威胁。
一些攻击者试图将恶意流量发送到随机端口,寄希望于这些端口保持“开放”状态,这意味着它们能够接收流量。这种举措有点像一个偷车贼走在街上,试图打开停放车辆的门,希望其中一辆车没有被锁。出于这个原因,防火墙应配置为阻止指向大多数可用端口的网络流量。并不存在什么正当理由来让大部分可用端口接收流量。
正确配置的防火墙在默认情况下会阻止前往所有端口的流量,但已知的几个预先确定的常用端口除外。例如,企业防火墙可以只开放端口 25(用于电子邮件)、80(用于 Web 流量)、443(用于 Web 流量)和少数其他几个端口,允许内部员工使用这些基本服务,然后阻止其余 65000 多个端口。
举一个更具体的例子,攻击者有时试图通过向端口 3389 发送攻击流量来利用 RDP 协议的漏洞。为了阻止这些攻击,防火墙可能会默认阻止端口 3389。由于该端口仅用于远程桌面连接,若员工无需远程工作,则此规则对日常业务运营几乎无甚影响。
有 65,535 个可能的端口号,但并非所有端口都常用。下面列出了一些最常用的端口及其关联的网络协议:
互联网号码分配机构 (IANA) 维护着端口号与分配给它们的协议的完整列表。