一、端口概念
1. 端口本质与作用
定义:端口是 IP 地址的延伸,通过IP:Port组合定位网络中的具体服务
范围:0-65535(共 65536 个端口)
分类:
周知端口(Well-Known Ports):0-1023,固定分配给核心网络服务(如 HTTP、FTP)
注册端口(Registered Ports):1024-49151,分配给用户程序或应用层服务
动态 / 私有端口(Dynamic/Private Ports):49152-65535,临时分配给客户端程序
2. 关键特性
唯一性:同一端口在同一时间只能被一个进程占用
协议相关性:分为 TCP 端口和 UDP 端口(如 HTTP 使用 TCP 80,DNS 同时使用 TCP/UDP 53)
二、通用服务端口(周知端口区)
端口号 | 协议 | 服务名称 | 用途说明 | 典型场景 |
20 | TCP | FTP 数据端口 | 文件传输协议的数据连接端口 | ftp.example.com数据传输 |
21 | TCP | FTP 控制端口 | 管理 FTP 连接的控制通道 | FTP 客户端登录认证 |
22 | TCP | SSH | 安全外壳协议,远程加密登录 | 服务器远程管理(ssh user@server) |
23 | TCP | Telnet | 远程终端协议(非加密) | 传统设备管理(安全性较差,逐步被 SSH 取代) |
25 | TCP | SMTP | 简单邮件传输协议,发送邮件 | 邮件服务器间通信(如 Postfix、Sendmail) |
53 | TCP/UDP | DNS | 域名系统,解析域名到 IP 地址 | 浏览器访问www.baidu.com时的域名解析 |
80 | TCP | HTTP | 超文本传输协议,Web 服务默认端口 | 访问http://example.com(端口可省略,浏览器自动补全) |
110 | TCP | POP3 | 邮局协议版本 3,接收邮件 | 客户端从邮箱下载邮件(如 Outlook) |
143 | TCP | IMAP | 互联网消息访问协议,管理邮箱 | 在线管理邮箱文件夹(如 Gmail 使用 IMAP) |
443 | TCP | HTTPS | 加密 HTTP 协议,Web 安全通信 | 访问https://bank.com时的安全连接(需 SSL/TLS 证书) |
3389 | TCP | RDP | 远程桌面协议,图形化远程控制 | Windows 服务器远程桌面连接 |
三、Web 服务与应用端口(注册端口区)
1. 常见 Web 容器端口
8080(TCP):Tomcat 默认端口示例:http://localhost:8080/manager访问 Tomcat 管理界面注意:当 80 端口被占用时,常作为 HTTP 服务的备用端口
8088(TCP):YARN ResourceManager Web UIHadoop 集群资源管理界面,地址:http://hadoop-host:8088/cluster
9000(TCP):Nginx 默认备用端口常用于多站点部署,如server { listen 9000; ... }
2. 微服务与 API 端口
8090:Spring Boot 默认调试端口(可通过server.port配置)
9200:Elasticsearch HTTP 接口访问集群状态:http://es-host:9200/_cluster/health
9300:Elasticsearch 传输端口(TCP,用于节点间通信)
四、大数据与分布式系统端口
1. Hadoop 生态端口
服务组件 | 端口号 | 功能描述 | 访问示例 |
HDFS NameNode | 9820 | 内部通信端口(DataNode 注册 / 心跳) | 程序通过hdfs://host:9820访问 HDFS |
HDFS Web UI | 9870 | NameNode 管理界面 | http://hdfs-host:9870查看文件系统 |
YARN ResourceManager | 8088 | Web 管理界面 | 查看集群资源使用情况 |
YARN NodeManager | 8042 | 节点状态监控端口 | http://node-host:8042查看节点日志 |
HiveServer2 | 10000 | 客户端连接 Hive 的 JDBC/ODBC 端口 | 使用 Beeline 连接:beeline -u jdbc:hive2://host:10000 |
2. 其他分布式组件
6379(TCP):Redis 默认端口命令行连接:redis-cli -h host -p 6379
2181(TCP):ZooKeeper 客户端端口分布式系统的协调服务端口(如 Kafka、HBase 依赖)
9092(TCP):Kafka 生产者 / 消费者端口集群间通信端口通常为 9093(安全模式)
五、数据库服务端口
数据库 | 端口号 | 协议 | 连接示例 | 安全注意事项 |
MySQL | 3306 | TCP | jdbc:mysql://host:3306/mydb | 建议修改默认端口防止暴力破解 |
PostgreSQL | 5432 | TCP | psql -h host -p 5432 -U user | 启用 SSL 加密连接 |
MongoDB | 27017 | TCP | mongo host:27017/mydb | 禁用公网访问,配置 IP 白名单 |
Elasticsearch | 9200 | HTTP | RESTful API 接口 | 启用 X-Pack 安全认证 |
Redis | 6379 | TCP | redis-cli -p 6379 | 配置密码并限制本地访问 |
六、动态端口
1. 临时端口范围
客户端程序通常使用 49152-65535 之间的动态端口
Linux 系统默认临时端口范围:32768-61000(可通过/proc/sys/net/ipv4/ip_local_port_range查看)
2. 容器与云服务端口
2375(TCP):Docker 守护进程 API 端口(非安全模式,建议仅本地访问)
30000-32767:Kubernetes NodePort 服务默认端口范围示例:kubectl expose deployment myapp --type=NodePort --port=80 --target-port=8080
3. 安全相关端口
22(SSH):建议禁用密码登录,使用密钥认证
3389(RDP):仅允许可信 IP 访问,启用网络级别认证
关闭闲置端口:通过netstat -tunlp查看端口占用,使用ufw/firewalld配置防火墙
七、端口排查实用工具
查看端口占用
Linux:netstat -tunlp | grep 端口号 或 lsof -i :端口号
Windows:netstat -ano | findstr 端口号,根据 PID 任务管理器查看进程
端口连通性测试
telnet host 端口号(需安装 telnet 客户端)
nc -zv host 端口号(netcat 工具,支持 TCP/UDP 测试)
防火墙配置
Ubuntu:ufw allow 端口号/tcp
CentOS:firewall-cmd --add-port=端口号/tcp --permanent && firewall-cmd --reload