什么是计算机端口?| 网络中的端口

端口是操作系统中网络连接开始和结束的虚拟场所。它们帮助计算机对其收到的网络流量进行分类。

学习目标

阅读本文后,您将能够:

  • 了解网络中端口的作用
  • 了解最常用的端口号
  • 了解端口在 OSI 模型中所属的位置

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是端口?

端口是网络连接开始和结束的虚拟点。端口是基于软件的,并由计算机的操作系统进行管理。每个端口都与一个特定的进程或服务相关。端口让计算机能够轻松区分不同种类的流量:例如,尽管电子邮件与网页都通过相同的互联网连接到达计算机,但它们会进入不同的端口。

什么是端口号?

端口在网络连接的所有设备中都统一标准,每个端口都有一个编号。大多数端口为某些协议而保留,例如,所有超文本传输协议 (HTTP) 信息都进入端口 80。IP 地址使信息能够进出特定设备,而端口号允许针对这些设备中的特定服务或应用。

端口如何使网络连接更有效率?

在同一个网络连接上,有大量不同类型的数据进出计算机。端口的使用有助于计算机了解如何处理它们收到的数据。

假设 Bob 使用文件传输协议 (FTP) 将 MP3 录音传输给 Alice。如果 Alice 的计算机将 MP3 文件数据传递给 Alice 的电子邮件应用,电子邮件应用将不知道如何解释它。但是因为 Bob 的文件传输使用了为 FTP 指定的端口(端口 21),所以 Alice 的计算机能够接收和存储文件。

同时,Alice 的计算机可以使用端口 80 加载 HTTP 网页,即使网页文件和 MP3 声音文件都通过同一个 WiFi 连接流向 Alice 的计算机。

白皮书
如何摆脱网络硬件的束缚

端口是网络层的一部分吗?

OSI 模型是互联网工作方式的一个概念模型。它将不同的互联网服务和进程分为 7 层,分别为:

osi 模型 7 层

端口是一个传输层(第四层)概念。只有传输控制协议 (TCP)用户数据报协议 (UDP) 之类的传输协议才能指示数据包应去往哪个端口。网络层协议(例如,互联网协议 (IP))不知道在给定的网络连接中使用什么端口。在标准的 IP 标头中,没有任何地方可以表明数据应该去往哪个端口。IP 标头只表明目标 IP 地址,而不是该 IP 地址的端口号。

通常,无法在网络层指示端口对网络进程没有影响,因为网络层协议几乎总是与传输层协议结合使用。但是,这确实会影响测试软件的功能,这是使用互联网控制消息协议 (ICMP) 数据包“ping”IP 地址的软件。ICMP 是一种网络层协议,可以 ping 联网设备。但如果无法 ping 特定端口,网络管理员就无法测试这些设备中的特定服务。

一些 ping 软件(如 My Traceroute)提供了发送 UDP 数据包的选项。与不能指定特定端口的 ICMP 相反,UDP 是一种可以指定特定端口的传输层协议。通过向 ICMP 数据包添加 UDP 标头,网络管理员可以测试联网设备中的特定端口。

注册
任何 Cloudflare 计划均可提供安全性和速度

为什么防火墙有时会阻止特定端口?

防火墙是一种网络安全系统,它基于一组安全规则来阻止或允许网络流量。防火墙通常位于受信任的网络和不受信任的网络之间;通常,不受信任的网络是互联网。例如,办公室网络通常使用防火墙来保护其网络免受在线威胁。

一些攻击者试图将恶意流量发送到随机端口,寄希望于这些端口保持“开放”状态,这意味着它们能够接收流量。这种举措有点像一个偷车贼走在街上,试图打开停放车辆的门,希望其中一辆车没有被锁。出于这个原因,防火墙应配置为阻止指向大多数可用端口的网络流量。并不存在什么正当理由来让大部分可用端口接收流量。

正确配置的防火墙在默认情况下会阻止前往所有端口的流量,但已知的几个预先确定的常用端口除外。例如,企业防火墙可以只开放端口 25(用于电子邮件)、80(用于 Web 流量)、443(用于 Web 流量)和少数其他几个端口,允许内部员工使用这些基本服务,然后阻止其余 65000 多个端口。

举一个更具体的例子,攻击者有时试图通过向端口 3389 发送攻击流量来利用 RDP 协议的漏洞。为了阻止这些攻击,防火墙可能会默认阻止端口 3389。由于该端口仅用于远程桌面连接,若员工无需远程工作,则此规则对日常业务运营几乎无甚影响。

有哪些不同的端口号?

有 65,535 个可能的端口号,但并非所有端口都常用。下面列出了一些最常用的端口及其关联的网络协议:

  • 端口 20 和 21:文件传输协议 (FTP)。FTP 用于在客户端和服务器之间传输文件。
  • 端口 22:安全外壳 (SSH)。SSH 是许多隧道协议中的一种,用于建立安全的网络连接。
  • 端口25: 历史上,简单邮件传输协议(SMTP)。SMTP用于电子邮件
  • 端口 53:域名系统 (DNS)。DNS 是现代互联网的一个重要过程,它将人类可读的域名与机器可读的 IP 地址相匹配,使用户能够加载网站和应用,而不必记住一长串 IP 地址。
  • 端口 80:超文本传输协议 (HTTP)。HTTP 是使万维网成为可能的协议。
  • 端口 123:网络时间协议 (NTP)。NTP 允许计算机时钟互相同步,这个过程对于加密至关重要。
  • 端口 179:边界网关协议 (BGP)。BGP 对于在组成互联网的大型网络之间建立有效路由至关重要(这些大型网络被称为自治系统)。自治系统使用 BGP 来广播它们控制的 IP 地址。
  • 端口 443:HTTP 安全 (HTTPS)。HTTPS 是 HTTP 的安全和加密版本。所有 HTTPS Web 流量都进入端口 443。使用 HTTPS 加密的网络服务(如 DNS over HTTPS)也通过这个端口连接。
  • 端口 500:互联网安全关联和密钥管理协议 (ISAKMP),这是建立安全 IPsec 连接过程的一部分。
  • 端口587:现代安全的 SMTP,使用加密技术。
  • 端口 3389:远程桌面协议 (RDP)。RDP 使用户能够从另一个设备远程连接到他们的台式计算机。

互联网号码分配机构 (IANA) 维护着端口号与分配给它们的协议的完整列表