端口监听本质是进程绑定端口并等待连接,以提供网络服务;其核心区分在于协议(TCP/UDP)、端口号、绑定地址及应用功能。

Linux 端口监听的服务,本质是进程主动绑定端口并进入等待连接状态,从而对外提供网络服务。它不是“类型”本身,而是服务运行的必要行为;真正区分服务的是协议(TCP/UDP)、端口号、绑定地址和所承载的应用功能。
TCP 与 UDP 监听服务的区别
TCP 监听强调可靠连接:必须完成三次握手,适合需要数据准确、顺序、不丢包的场景,如 Web(80/443)、SSH(22)、数据库(3306)、邮件(25/110/143)等。netstat 或 ss 中状态为 LISTEN 的 TCP 行,代表该服务已就绪等待客户端建连。
UDP 监听不建立连接:程序直接绑定端口接收数据报,适用于低延迟、容忍少量丢包的场景,如 DNS(53)、DHCP(67/68)、NTP(123)、Syslog(514)、Avahi(5353)等。注意:UDP 没有 LISTEN 状态,ss -uln 或 netstat -uln 显示的 “UNCONN” 表示 UDP 套接字已绑定并可收包,即实际意义上的“监听”。
按端口范围划分的服务层级
-
知名端口(0–1023):系统级服务,通常需 root 权限启动。例如:
22(sshd)、80/443(httpd/nginx)、25(postfix)、53(bind/named)、111(rpcbind) -
注册端口(1024–49151):用户或第三方服务常用。例如:
3306(mysqld)、5432(postgresql)、6379(redis-server)、8080/8000(开发用 Web 服务)、9000(php-fpm)、9092(kafka) - 动态端口(49152–65535):一般不由服务主动监听,而是客户端临时使用;服务端极少在此范围监听,除非明确配置且无权限限制。
按监听地址体现的服务可见性
同一端口在不同地址上监听,意味着完全不同的访问能力:
- 0.0.0.0:端口 或 *:端口:监听本机所有 IPv4 接口,外部网络可访问(前提是防火墙放行)
- [::]:端口:监听所有 IPv6 接口
- 127.0.0.1:端口 或 localhost:端口:仅本地回环访问,其他机器无法连接,常用于内部 API、管理接口或安全加固场景
- 具体 IP:端口(如 192.168.1.100:3000):仅绑定到该网卡地址,适用于多网卡隔离部署
常见服务与监听端口对应关系
以下为典型服务及其默认监听行为(以 TCP 为主):
- Web 服务:Apache/Nginx 监听 80(HTTP)、443(HTTPS),支持 IPv4/IPv6 双栈
- 远程管理:sshd 默认监听 22,可配置为只监听 127.0.0.1 提升安全性
- 数据库:MySQL 默认监听 3306(TCP),Redis 默认监听 6379,PostgreSQL 为 5432
- 监控与可观测性:Prometheus 默认 9090,Grafana 默认 3000,Node Exporter 默认 9100
- 容器与编排:Docker daemon 默认监听 unix:///var/run/docker.sock(Unix 域套接字),部分配置会暴露 2375/2376(需谨慎)


















