在运维日常工作中,端口就像网络服务的 “门牌号”—— 服务启动要绑定端口,排障时要查端口占用,配置防火墙得先明确端口对应服务,甚至应对网络攻击时,异常端口也是重要排查线索。掌握常见默认端口号,是运维工程师提升工作效率、保障系统安全的基础,今天就系统梳理这份 “运维端口手册”。
在讲具体端口前,先明确 2 个核心概念,避免后续混淆:
- 端口范围:TCP/UDP 端口共 65536 个(0-65535),其中 0-1023 是 “知名端口”(IANA 分配,多对应常用服务默认端口),1024-49151 是 “注册端口”(应用可申请使用),49152-65535 是 “动态端口”(客户端临时使用,无需记忆);
- 协议区分:多数服务会指定 TCP 或 UDP 协议(少数两者都用),比如 HTTP 用 TCP,DNS 同时支持 TCP(解析大数据包)和 UDP(常规解析),运维排查时需结合协议判断。
(一)基础网络服务端口(运维必备基础)
这类端口是网络通信的 “底层支撑”,排障时经常要先确认它们的状态:
-
ICMP 协议:无端口(重点提!因为 ping 基于 ICMP,虽无端口,但运维排障首步常是 “ping 通与否”,需注意部分防火墙会封禁 ICMP 包);
-
DNS 服务:53 端口(TCP/UDP)
• 用途:域名解析(UDP 用于常规小数据包解析,TCP 用于超过 512 字节的解析请求,比如区域传输);
• 运维注意:排查 “域名无法解析” 时,先 telnet 或 nc 测试目标 DNS 服务器的 53 端口是否通,比如nc -zv8.8.8.853。 -
DHCP 服务:67(服务器,UDP)、68(客户端,UDP)
• 用途:自动分配 IP 地址(客户端通过 68 端口向服务器 67 端口发送请求);
• 运维注意:若客户端获取不到 IP,先查 DHCP 服务器 67 端口是否正常监听,可用ss -uln | grep 67(Linux)。
(二)Web 相关端口(日常部署高频)
Web 服务是运维最常接触的场景,这些端口必须记牢:
-
HTTP 服务:80 端口(TCP)
• 用途:超文本传输协议,默认用于未加密的 Web 访问;
• 运维注意:若 Nginx/Apache 启动失败,先查 80 端口是否被占用,比如lsof -i:80(Linux)或netstat -ano | findstr :80(Windows);生产环境建议搭配 443 端口使用,避免明文传输。 -
HTTPS 服务:443 端口(TCP)
• 用途:加密的 HTTP 协议(基于 TLS/SSL),现在主流网站强制使用;
• 运维注意:部署 SSL 证书后,需确认 443 端口是否正常监听,同时防火墙要开放 443 端口;若出现 “HTTPS 无法访问”,除了端口,还要排查证书是否过期、配置是否正确。 -
HTTP 备用端口:8080、8081 端口(TCP)
• 用途:非 root 用户无法使用 1023 以下端口,所以开发 / 测试环境常把 Tomcat、Jetty 等 Web 容器默认绑定到 8080/8081;
• 运维注意:多服务部署时容易出现 8080 端口冲突,建议在配置文件中自定义端口(比如 8088、8090),并记录端口与服务的对应关系。 -
HTTPS 备用端口:8443 端口(TCP)
• 用途:类似 8080,用于加密 Web 服务的非标准端口,常见于 Java 中间件(如 Tomcat 的 HTTPS 默认端口);
• 运维注意:配置时需区分 “端口” 和 “SSL 证书路径”,避免证书配置错误导致服务启动失败。
(三)数据库服务端口(数据安全核心)
数据库端口一旦暴露风险极高,需明确默认端口并做好防护:
-
MySQL/MariaDB:3306 端口(TCP)
• 用途:关系型数据库默认端口;
• 运维注意:绝对禁止公网直接暴露 3306 端口!常规操作是:①修改默认端口(比如 33060);②开启密码认证(禁用空密码);③绑定内网 IP(my.cnf 中配置 bind-address = 内网 IP);④用防火墙限制访问来源(如 iptables 只允许应用服务器 IP 访问)。 -
PostgreSQL:5432 端口(TCP)
• 用途:开源关系型数据库,常用于企业级应用;
• 运维注意:默认配置允许本地访问,若需远程连接,需修改 postgresql.conf(listen_addresses='*')和 pg_hba.conf(添加允许的 IP 段),同时防护措施同 MySQL。 -
SQL Server:1433 端口(TCP)
• 用途:微软 SQL Server 数据库默认端口;
• 运维注意:Windows 服务器中,除了防火墙开放 1433,还要在 SQL Server 配置管理器中启用 “TCP/IP 协议”;建议修改默认端口,避免被暴力破解。 -
Oracle:1521 端口(TCP)
• 用途:Oracle 数据库默认端口;
• 运维注意:Oracle 端口配置较特殊,还可能涉及监听端口(listener.ora),排查时用lsnrctl status查看监听状态;防护重点是限制监听 IP,避免未授权访问。 -
Redis:6379 端口(TCP,UDP 极少用)
• 用途:开源缓存数据库,现在也常用作消息队列;
• 运维注意:Redis 默认无密码且允许未授权访问,是黑客攻击重灾区!必须做:①设置复杂密码(requirepass 配置);②修改默认端口(如 6380);③绑定内网 IP(bind 配置);④禁用危险命令(如 rename-command CONFIG "")。 -
MongoDB:27017 端口(TCP)
• 用途:文档型 NoSQL 数据库;
• 运维注意:早期版本默认无认证,需开启访问控制(--auth 参数),修改默认端口,绑定内网 IP,避免公网暴露。
(四)远程管理端口(运维操作入口)
远程管理端口是运维登录服务器的 “大门”,安全防护优先级最高:
-
SSH 服务:22 端口(TCP)
• 用途:Linux 服务器默认远程管理端口(替代不安全的 Telnet);
• 运维注意:①绝对禁止密码登录,只启用密钥登录(PasswordAuthentication no);②修改默认端口(如 2222);③限制登录用户(AllowUsers 运维用户名);④用防火墙限制来源 IP(比如只允许公司办公网 IP);⑤禁用 root 直接登录(PermitRootLogin no)。 -
Telnet 服务:23 端口(TCP)
• 用途:早期远程管理协议,明文传输(用户名密码可被抓包);
• 运维注意:现在已基本淘汰,建议禁用 Telnet 服务,若特殊场景需使用,需在防火墙严格限制访问范围,且不用于生产环境。 -
Windows 远程桌面(RDP):3389 端口(TCP)
• 用途:Windows 服务器默认远程桌面端口;
• 运维注意:①修改默认端口(通过注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber);②开启网络级认证(NLA,需在 “系统属性 - 远程” 中勾选);③限制登录 IP(通过 Windows 防火墙高级规则);④禁用弱密码,启用复杂密码策略。
(五)文件传输端口(数据迁移常用)
文件传输场景中,这些端口是数据流通的 “通道”:
-
FTP 服务:21(控制端口,TCP)、20(数据端口,TCP)
• 用途:文件传输协议(21 端口用于指令交互,20 端口用于数据传输,主动模式下);
• 运维注意:FTP 是明文传输,生产环境建议用 SFTP 替代;若必须用 FTP,需配置被动模式(指定数据端口范围,如 50000-50010),并在防火墙开放控制端口和数据端口范围。 -
SFTP 服务:22 端口(TCP)
• 用途:基于 SSH 的加密文件传输(无独立端口,复用 SSH 的 22 端口);
• 运维注意:安全性远高于 FTP,是生产环境首选;排查时同 SSH,确认 22 端口正常即可。 -
SCP 服务:22 端口(TCP)
• 用途:基于 SSH 的文件复制协议(同 SFTP 复用 22 端口);
• 运维注意:常用于服务器间文件快速传输,命令如scp /local/file user@remoteIP:/remote/path,无需额外配置端口。 -
NFS 服务:111(RPC 端口,TCP/UDP)、2049(NFS 端口,TCP/UDP)
• 用途:Linux 间文件共享服务(111 端口用于 RPC 通信,2049 是 NFS 主端口);
• 运维注意:NFS 安全性较低,只用于内网环境,需通过 /etc/exports 配置允许访问的 IP 段,避免全量开放。
(六)邮件服务端口(企业通信必备)
邮件服务涉及多个端口,需区分发送和接收环节:
-
SMTP 服务:25(TCP,明文)、465(TCP,SMTPS 加密)、587(TCP,提交端口)
• 用途:简单邮件传输协议,用于发送邮件;
• 运维注意:①25 端口多数云服务商(如阿里云、腾讯云)默认封禁,避免垃圾邮件,需申请解封或用 465/587 端口;②465 是 SMTP 加密端口(基于 SSL),587 是 TLS 加密端口,建议优先用这两个端口。 -
POP3 服务:110(TCP,明文)、995(TCP,POP3S 加密)
• 用途:邮局协议 3,用于接收邮件(从服务器下载到本地);
• 运维注意:明文 110 端口不安全,生产环境用 995 加密端口,配置时需指定 SSL 协议。 -
IMAP 服务:143(TCP,明文)、993(TCP,IMAPS 加密)
• 用途:互联网邮件访问协议,用于接收邮件(邮件保留在服务器,本地同步);
• 运维注意:功能比 POP3 强(支持文件夹同步、已读状态同步),建议用 993 加密端口,避免明文传输。
(七)中间件 / 工具端口(企业应用支撑)
这类端口对应常用中间件,运维部署时需重点关注:
-
Tomcat:8080(HTTP 默认,TCP)、8443(HTTPS 默认,TCP)、8005(关闭端口,TCP)、8009(AJP 端口,TCP)
• 用途:Java Web 容器;
• 运维注意:①8005 端口是 Tomcat 关闭端口,默认只允许本地访问,禁止开放公网;②8009 端口(AJP 协议)若不用,建议在 server.xml 中注释掉(避免漏洞利用,如 Ghostcat 漏洞);③生产环境建议修改 8080/8443 为自定义端口。 -
Nginx:80(HTTP 默认,TCP)、443(HTTPS 默认,TCP)
• 用途:反向代理、负载均衡;
• 运维注意:Nginx 常作为前端代理,需确保 80/443 端口无冲突,同时配置反向代理时,要正确指向后端服务的端口(如 Tomcat 的 8080)。 -
ZooKeeper:2181(客户端连接,TCP)、2888(集群通信,TCP)、3888(选举端口,TCP)
• 用途:分布式协调服务(如 Kafka、Hadoop 依赖);
• 运维注意:2181 是客户端连接端口,需开放给依赖服务的 IP;集群部署时,2888 和 3888 端口需在集群节点间开放。 -
Kafka:9092(默认端口,TCP)
• 用途:分布式消息队列;
• 运维注意:Kafka 端口配置在 server.properties 中,若开启 SASL 认证,需额外配置;集群部署时,每个 broker 的端口需唯一,且开放给生产者和消费者的 IP。
光记端口不够,还要会排查端口状态,整理了 Windows 和 Linux 常用命令:
(一)Linux 系统
-
查看端口监听状态(TCP/UDP):ss -tuln(t=TCPUDP,u=UDP,l = 监听,n = 数字端口);
-
查看指定端口占用:ss -tuln | grep 端口号 或 lsof -i:端口号(需安装 lsof);
-
查看端口对应的进程:lsof -i:端口号(PID 列是进程 ID)或 netstat -tulnp | grep 端口号(需安装 net-tools);
-
杀死占用端口的进程:kill -9 PID(PID 通过上述命令获取)。
(二)Windows 系统
-
查看端口占用及进程:netstat -ano | findstr :端口号(o 列是进程 ID);
-
根据 PID 找进程名称:tasklist | findstr PID;
-
杀死进程:taskkill /f /pid PID(/f 强制杀死)。
-
最小开放原则:防火墙只开放必需的端口(比如 Web 服务只开 80/443,数据库只开内网访问端口),其余端口全部封禁;
-
避免默认端口:高频攻击端口(22、3306、3389、6379 等)必须修改默认值,降低被扫描攻击的概率;
-
定期扫描检查:用 nmap 工具(如nmap -p 1-1000 服务器IP)定期扫描端口,发现异常开放端口及时排查;
-
绑定内网 IP:非公网服务(如数据库、Redis)尽量绑定内网 IP,禁止 0.0.0.0(允许所有 IP 访问)。
默认端口号是运维的 “基础工具”,建议收藏本文,日常工作中遇到端口问题时随时查阅。同时,端口管理的核心是 “安全”—— 无论什么服务,都要避免默认端口、明文传输和公网暴露,这才是保障系统稳定运行的关键。
