你好,这里是网络技术联盟站,我是瑞哥。
网络端口是计算机网络中用于区分不同应用程序和服务的标识符。每个端口号都是一个16位的数字,范围从0到65535。网络端口的主要功能是帮助网络设备(如计算机和服务器)确定数据包应该发送到哪个应用程序。
端口号真的很多,但是作为网络工程师和运维工程师,我们其实不需要记住全部的端口号,事实上也没有人能记住那么多,我们只需要记住常见的、重要的端口号即可。
0-1023:知名端口号
端口号 | 服务/协议 | 解释 |
---|---|---|
20 | FTP数据传输 | 用于文件传输协议(FTP)的数据传输,通常与端口21一起使用。 |
21 | FTP控制 | 用于FTP的控制命令。 |
22 | SSH | 用于安全外壳协议(SSH),提供加密的远程登录服务,常用于安全的系统管理和文件传输。 |
23 | Telnet | 用于Telnet协议,不安全的远程登录服务,因安全性较差,已被SSH替代。 |
25 | SMTP | 用于简单邮件传输协议(SMTP),用于发送电子邮件。 |
53 | DNS | 用于域名系统(DNS),将域名解析为IP地址。 |
67 | DHCP (服务器) | 用于动态主机配置协议(DHCP)服务器端,分配IP地址。 |
68 | DHCP (客户端) | 用于DHCP客户端接收IP地址。 |
69 | TFTP | 用于简单文件传输协议(TFTP),用于小文件的传输,常用于网络设备配置。 |
80 | HTTP | 用于超文本传输协议(HTTP),传输网页数据。 |
110 | POP3 | 用于邮局协议版本3(POP3),用于接收电子邮件。 |
119 | NNTP | 用于网络新闻传输协议(NNTP),用于新闻组文章的传输。 |
123 | NTP | 用于网络时间协议(NTP),用于同步网络设备时间。 |
143 | IMAP | 用于互联网消息访问协议(IMAP),用于接收和管理电子邮件。 |
161 | SNMP | 用于简单网络管理协议(SNMP),用于网络设备管理和监控。 |
162 | SNMP Trap | 用于SNMP Trap消息的发送,设备异常时通知管理系统。 |
179 | BGP | 用于边界网关协议(BGP),用于互联网路由。 |
194 | IRC | 用于互联网中继聊天(IRC),实现实时聊天。 |
389 | LDAP | 用于轻量目录访问协议(LDAP),用于访问和管理目录服务。 |
443 | HTTPS | 用于HTTP安全协议(HTTPS),加密的网页数据传输。 |
445 | Microsoft-DS | 用于Microsoft Directory Services(如SMB协议) |
465 | SMTPS | 用于安全SMTP,邮件传输加密。 |
514 | Syslog | 用于系统日志(Syslog)协议,日志传输。 |
515 | LPD | 用于线路打印机守护程序(LPD),打印服务。 |
993 | IMAPS | 用于安全IMAP,邮件接收加密。 |
995 | POP3S | 用于安全POP3,邮件接收加密。 |
1080 | SOCKS | 用于SOCKS代理协议。 |
1024-49151:注册端口号
端口号 | 服务/协议 | 解释 |
---|---|---|
1433 | Microsoft SQL Server | 用于Microsoft SQL Server数据库服务。 |
1434 | Microsoft SQL Monitor | 用于监控Microsoft SQL Server实例。 |
1723 | PPTP | 用于点对点隧道协议(PPTP),用于VPN连接。 |
1812 | RADIUS (认证) | 用于远程认证拨入用户服务(RADIUS)认证。 |
1813 | RADIUS (计费) | 用于RADIUS计费。 |
3306 | MySQL | 用于MySQL数据库服务。 |
3389 | RDP | 用于远程桌面协议(RDP),远程访问Windows桌面。 |
5432 | PostgreSQL | 用于PostgreSQL数据库服务。 |
5900 | VNC | 用于虚拟网络计算(VNC),远程桌面访问。 |
5984 | CouchDB | 用于CouchDB数据库服务。 |
6379 | Redis | 用于Redis数据库服务。 |
8080 | HTTP Proxy | 用于HTTP代理服务器或Web服务器的备用端口。 |
8443 | HTTPS Proxy | 用于HTTPS代理服务器或Web服务器的备用端口。 |
49152-65535:动态/私有端口号
端口号 | 服务/协议 | 解释 |
---|---|---|
49152-65535 | 动态分配 | 操作系统动态分配的临时端口,用于客户端连接。这些端口号不固定,由操作系统分配以便于短期使用。 |
TCP/IP 模型中的端口号
应用层
在应用层,常见的端口号包括:
端口号 | 服务/协议 | 解释 |
---|---|---|
80 | HTTP | 用于传输网页数据。 |
443 | HTTPS | 用于加密的网页数据传输。 |
21 | FTP | 用于文件传输协议。 |
22 | SSH | 用于安全远程登录。 |
25 | SMTP | 用于发送电子邮件。 |
传输层
在传输层,常见的协议包括TCP和UDP,它们通过端口号进行通信:
端口号 | 服务/协议 | 解释 |
---|---|---|
20, 21 | FTP | 用于文件传输。 |
53 | DNS | 用于域名解析。 |
67, 68 | DHCP | 用于IP地址分配。 |
123 | NTP | 用于时间同步。 |
网络层
在网络层(第三层)中,主要涉及的是IP地址、路由选择和包交换等功能,传统上不直接使用端口号。然而,网络层协议与端口号有间接的关联,因为端口号通常与传输层(如TCP和UDP)相关联,而传输层协议则封装在网络层协议(如IP)中。
尽管如此,有些网络层协议使用特定的协议号,这些号类似于端口号的功能,用于标识不同的上层协议。例如,IPv4报头中有一个8位的“协议”字段,用来指示封装在IP包中的上层协议。
下面是一些常见的网络层协议及其协议号:
协议号 | 协议 | 解释 |
---|---|---|
1 | ICMP | Internet Control Message Protocol,用于发送错误消息和操作信息。 |
2 | IGMP | Internet Group Management Protocol,用于管理多播组成员。 |
6 | TCP | Transmission Control Protocol,用于可靠的端到端通信。 |
17 | UDP | User Datagram Protocol,用于无连接的通信。 |
41 | IPv6 | 用于IPv6封装。 |
47 | GRE | Generic Routing Encapsulation,用于封装多种网络层协议。 |
50 | ESP | Encapsulating Security Payload,用于IPsec中的加密和身份验证。 |
51 | AH | Authentication Header,用于IPsec中的身份验证。 |
89 | OSPF | Open Shortest Path First,用于内部网关路由协议。 |
132 | SCTP | Stream Control Transmission Protocol,用于消息传递的多流控制。 |
虽然这些协议号不完全等同于端口号,但它们在网络层起到了类似的区分作用,帮助确定IP包的内容和处理方式。
数据链路层
数据链路层(第二层)主要处理物理地址(如MAC地址)和帧传输,不涉及传统意义上的端口号。数据链路层的主要功能包括封装数据成帧、错误检测与纠正、介质访问控制等。尽管如此,数据链路层使用了一些特定的协议类型字段,这些字段在某种程度上类似于端口号,区分不同的协议和服务。
以下是一些常见的数据链路层协议及其类型字段(以太网类型字段):
类型字段 (十六进制) | 协议 | 解释 |
---|---|---|
0x0800 | IPv4 | Internet Protocol version 4,用于封装IPv4数据包。 |
0x0806 | ARP | Address Resolution Protocol,用于IPv4地址和MAC地址的映射。 |
0x86DD | IPv6 | Internet Protocol version 6,用于封装IPv6数据包。 |
0x8100 | VLAN-tagged frame (IEEE 802.1Q) | 用于标识虚拟局域网(VLAN)帧。 |
0x8847 | MPLS unicast | Multiprotocol Label Switching,用于单播数据流的标签交换。 |
0x8848 | MPLS multicast | 用于多播数据流的标签交换。 |
0x8863 | PPPoE Discovery Stage | Point-to-Point Protocol over Ethernet,用于发现阶段。 |
0x8864 | PPPoE Session Stage | 用于会话阶段。 |
0x888E | EAP over LAN (IEEE 802.1X) | 用于以太网上的扩展认证协议。 |
0x88A8 | Provider Bridging (IEEE 802.1ad) | 用于提供商桥接(Q-in-Q)。 |
0x88CC | LLDP | Link Layer Discovery Protocol,用于链路层发现。 |
0x8906 | Fibre Channel over Ethernet (FCoE) | 用于以太网上的光纤通道。 |
0x8914 | FCoE Initialization Protocol | 用于光纤通道初始化协议。 |
0x9000 | Ethernet Configuration Testing Protocol | 用于以太网配置测试。 |
这些类型字段在数据链路层帧的头部,用于指示封装在帧中的协议类型。虽然这些字段不是端口号,但它们在数据链路层起到了类似的区分作用。
端口号与安全
端口扫描技术
端口扫描是网络安全中的一个重要概念。以下是几种常见的端口扫描类型:
- TCP连接扫描:尝试与目标端口建立完整的TCP连接。
- SYN扫描:发送SYN包,看目标端口是否响应。
- FIN扫描:发送FIN包,看目标端口是否响应。
- UDP扫描:发送UDP包,看目标端口是否响应。
防火墙和端口过滤
防火墙用于监控和控制进出网络的数据流。防火墙规则可以基于端口号来允许或阻止流量,从而保护网络安全。例如,可以关闭不必要的端口来减少攻击面。