常见网络端口参考:完整指南
· 12分钟阅读
目录
什么是网络端口?
网络端口是虚拟通信端点,允许多个服务在单个设备上运行。如果IP地址就像建筑物的街道地址,那么端口就是该建筑物内的各个公寓号码。当数据在互联网上传输时,它会被定向到特定的IP地址和端口号,确保到达正确的应用程序。
每次您浏览网页、发送电子邮件、传输文件或流式传输视频时,您的设备都会使用网络端口来同时管理这些不同的通信。您的网络浏览器可能正在与Web服务器的443端口通信,而您的电子邮件客户端则与邮件服务器的993端口通信——所有这些都在同一时间、同一互联网连接上进行。
端口号范围从0到65,535。每个号码都可以与特定的服务或应用程序关联。一些端口号是标准化的并被普遍认可(如用于HTTP的80端口),而其他端口则根据需要动态分配。理解常见端口号是任何从事网络、服务器或Web应用程序工作的人的基础知识。
快速提示:将端口想象成电视频道。您的电视通过一根电缆接收信号,但您可以通过调谐到不同的频率来观看不同的频道。同样,您的计算机在一个网络接口上接收网络流量,但不同的应用程序监听不同的端口号。
端口在OSI模型的传输层(第4层)工作。当应用程序想要通过网络通信时,它会绑定到特定的端口号。然后操作系统将发往该端口的传入流量路由到正确的应用程序。这种多路复用能力使现代网络成为可能——没有端口,您一次只能运行一个网络应用程序。
您可以使用我们的端口扫描工具检查系统上当前正在使用的端口,该工具有助于识别开放端口及其上运行的服务。
TCP与UDP:理解传输协议
在深入了解特定端口号之前,了解使用端口的两种主要传输协议很重要:TCP和UDP。这些协议决定了设备之间如何传输数据,每种协议都有不同的特性,使它们适用于不同的应用程序。
TCP(传输控制协议)
TCP是可靠的、面向连接的协议。它在发送数据之前建立连接("三次握手"),确保每个数据包按正确顺序到达,并重新传输任何丢失的数据。将TCP想象成打电话——您建立连接,进行对话,双方都知道通话何时结束。
TCP的主要特征:
- 面向连接:在数据传输开始之前建立专用连接
- 可靠传输:保证所有数据包到达且顺序正确
- 错误检查:检测损坏的数据包并请求重新传输
- 流量控制:防止一次性向接收方发送过多数据
- 较慢但可靠:可靠性机制的开销增加了延迟
TCP非常适合准确性比速度更重要的应用程序:网页浏览(HTTP/HTTPS)、电子邮件(SMTP、IMAP、POP3)、文件传输(FTP、SFTP)和远程管理(SSH、Telnet)。当您加载网页时,每个图像、样式表和脚本都必须完整正确地到达——即使缺少一个字节也会损坏文件。
UDP(用户数据报协议)
UDP是快速的、无连接的协议。它在不建立连接的情况下发送数据,不保证传输,也不关心数据包顺序。将UDP想象成寄明信片——您把它们投进邮箱并希望它们到达,但您不会收到确认。
UDP的主要特征:
- 无连接:不需要握手或连接设置
- 不可靠传输:数据包可能丢失、重复或乱序到达
- 无错误纠正:损坏的数据包会被简单丢弃
- 无流量控制:以应用程序生成数据的速度发送数据
- 更快且开销更少:最小的协议开销意味着更低的延迟
UDP非常适合速度比完美更重要的实时应用程序:视频流、在线游戏、VoIP通话(Skype、Zoom)、DNS查询和直播。如果在直播期间丢失了几个视频帧,最好继续播放而不是暂停等待重新传输。
专业提示:某些应用程序在同一端口号上同时使用TCP和UDP。例如,DNS主要使用UDP端口53进行快速查询,但对于超过UDP数据包大小限制的大型响应,会回退到TCP端口53。在配置防火墙时,始终检查服务需要哪种协议。
端口号范围和分类
互联网号码分配机构(IANA)将65,536个可用端口号分为三个不同的范围,每个范围在网络通信中服务于不同的目的。
| 范围 | 端口号 | 描述 | 常见用途 |
|---|---|---|---|
| 知名端口 | 0-1023 |
为系统服务和常见协议保留 | HTTP、HTTPS、FTP、SSH、SMTP、DNS |
| 注册端口 | 1024-49151 |
应请求由IANA分配给特定服务 | 数据库服务器、自定义应用程序、企业软件 |
| 动态/私有端口 | 49152-65535 |
可用于临时或私有用途 | 客户端连接的临时端口、测试、开发 |
知名端口(0-1023)
这些端口在类Unix系统上需要root或管理员权限才能绑定。它们在互联网上是标准化的,这意味着端口80始终表示HTTP,端口443始终表示HTTPS。这种一致性允许客户端和服务器在无需配置的情况下进行通信。
操作系统保护这些端口以防止恶意应用程序冒充关键服务。在Linux上,只有以root身份运行的进程才能监听1024以下的端口。这种安全措施确保当您连接到端口22时,您实际上到达的是SSH守护进程,而不是恶意应用程序。
注册端口(1024-49151)
软件供应商和组织可以向IANA注册此范围内的端口用于其特定应用程序。虽然不像知名端口那样严格执行,但这些分配有助于防止冲突。例如,Microsoft SQL Server传统上使用端口1433,而MySQL使用3306。
这些端口不需要特殊权限即可使用,使其成为用户级应用程序和服务的理想选择。但是,注册更像是君子协定——从技术上讲,没有什么能阻止您在注册端口上运行不同的服务。
动态/私有端口(49152-65535)
当应用程序发起出站连接时,这些临时端口由操作系统自动分配。当您的浏览器连接到Web服务器时,它可能使用端口54321作为源端口,同时连接到服务器的端口443。服务器的响应返回到您的端口54321,允许您的操作系统将其路由到正确的浏览器选项卡。
这些端口会快速回收——一旦连接关闭,端口就可以重新使用。您永远不会手动配置这些端口;它们完全由TCP/IP堆栈管理。
每个管理员都应该知道的基本端口
某些端口对互联网运营如此重要,以至于每个系统管理员、开发人员和IT专业人员都应该记住它们。这些端口处理使现代网络成为可能的核心服务。
| 端口 | 协议 | 服务 | 描述 |
|---|---|---|---|
20/21 |
TCP | FTP | 文件传输协议(数据/控制) |
22 |
TCP | SSH | 用于远程管理的安全外壳 |
23 |
TCP | Telnet | 未加密的远程访问(已弃用) |
25 |
TCP | SMTP | 简单邮件传输协议 |
53 |
TCP/UDP | DNS | 域名系统 |
80 |
TCP | HTTP | 超文本传输协议 |
110 |
TCP | POP3 | 邮局协议第3版 |
143 |
TCP | IMAP | 互联网消息访问协议 |
443 |
TCP | HTTPS | HTTP安全(加密) |
3389 |
TCP |