常用端口学习
20
20 端口是 FTP(文件传输协议)主动模式下的专用数据传输端口,与 21 端口(FTP 控制端口)配合完成文件传输操作。
核心作用:
- 传输实际文件数据
FTP 协议的控制连接(21 端口)仅负责传递指令,而20 端口专门承载文件的上传、下载数据 ,比如传输文档、压缩包、音视频等文件的二进制或文本内容。
数据连接的建立依赖控制连接:客户端先通过 21 端口向服务器发送传输指令,服务器再通过 20 端口主动发起数据连接,完成数据传输。 - 主动模式专属端口
这个端口的使用仅限 FTP 主动模式,工作流程如下:- 客户端随机打开一个高端口(如 1024 以上),通过 21 端口告知服务器;
- 服务器从自身的 20 端口主动发起连接,对接客户端的高端口;
- 数据传输完成后,这条基于 20 端口的连接会立即断开,而 21 端口的控制连接仍保持。
注意事项:
- 被动模式下不使用 20 端口
在 FTP 被动模式中,服务器不会主动使用 20 端口,而是随机分配一个高端口作为数据端口,并通过 21 端口告知客户端,由客户端主动发起数据连接。这也是被动模式更适合内网客户端访问公网 FTP 服务器的原因(无需客户端开放端口)。 - 安全与防火墙配置
- 和 21 端口一样,20 端口传输的数据为明文,存在被嗅探的风险,生产环境建议用 SFTP(端口 22)替代。
- 若需开放 FTP 主动模式,防火墙需同时放行入方向的 21 端口和出方向的 20 端口,否则数据传输会失败。
21
21 端口是 FTP(File Transfer Protocol,文件传输协议)的控制端口,主要用于在 FTP 客户端和服务器之间传输控制指令,而非实际的文件数据。
核心作用:
- 指令交互通道
FTP 协议采用分离连接的设计:
21 端口(控制连接):建立持久连接,负责传输所有控制类指令,比如用户登录认证(账号密码)、文件上传(PUT)、下载(GET)、目录切换(CD)、创建文件夹(MKD)等命令。
数据连接:专门传输文件数据,主动模式下默认用20 端口,被动模式下则由服务器随机分配一个高端口。
简单来说,21 端口是 FTP 的 "指挥通道",负责下达和响应操作指令。 - 连接会话管理
控制连接在整个 FTP 会话过程中保持打开状态,即使数据传输中断,只要控制连接不关闭,客户端仍能重新发起数据传输请求,无需重新登录。
注意事项:
- 安全风险
- 传统 FTP 协议通过 21 端口传输的账号密码、指令和数据均为明文,没有加密机制,极易被网络嗅探工具窃取,存在严重的安全隐患。
- 因此,生产环境中更推荐使用SFTP(基于 SSH,端口 22) 或 FTPS(FTP over SSL/TLS) 替代。
- 防火墙配置要点
- 若需开放 21 端口支持 FTP 服务,需区分工作模式:
- 主动模式:除 21 端口外,还需开放 20 端口(数据端口)。
- 被动模式:需开放 21 端口,同时配置服务器指定的被动端口范围(如10000-10010),否则数据传输会失败。
22
22 端口是 SSH(Secure Shell,安全外壳协议)的默认端口,同时基于 SSH 协议的SFTP(安全文件传输协议) 也默认使用该端口,核心作用是为远程操作和文件传输提供加密安全通道。
核心作用:
- 安全远程设备管理
SSH 是 Telnet 的安全替代方案(Telnet 为明文传输,存在极高风险),通过 22 端口可实现对服务器、网络设备(防火墙、路由器等)的远程登录和管理,支持的操作包括:
执行命令行指令(如系统配置、进程管理、日志查看)
配置设备参数(如防火墙策略、路由规则)
管理用户权限和系统服务
其核心优势是全程加密:对传输的指令、账号密码、操作结果进行高强度加密,有效防止数据被嗅探、篡改或伪造。 - 安全文件传输(SFTP)
SFTP 是 SSH 协议的子功能,并非独立协议,它依托 22 端口的加密通道实现文件传输,可替代传统的明文 FTP 协议,支持文件的上传、下载、目录管理等操作,且传输的所有文件数据和操作指令均为加密状态。 - 端口转发与安全隧道
SSH 支持端口转发(也叫 SSH 隧道)功能,通过 22 端口构建加密隧道,将不安全的网络服务(如 HTTP、数据库端口)封装在隧道中传输,典型场景包括:- 本地转发:访问远程内网的服务(如通过 SSH 隧道访问远程服务器的 MySQL 数据库)
- 远程转发:让外网设备访问本地内网服务(如将本地 Web 服务暴露给外网测试)
- 动态转发:搭建临时的加密代理,保障上网数据安全
注意事项:
- 安全加固要点
22 端口是黑客暴力破解的高频目标,需做好以下防护:- 禁用密码登录,强制使用密钥对认证(安全性远高于密码)
- 限制允许登录的 IP 地址(如仅开放企业内网 IP 段)
- 可选修改默认 22 端口(改为 1024 以上的高端口,降低被扫描概率)
- 配置登录失败次数限制,防止暴力破解
- 防火墙配置
若需对外提供 SSH 服务,防火墙需放行入方向的 22 端口;若需通过 SSH 访问外部设备,则放行出方向的 22 端口。
23
23 端口是 Telnet(远程终端协议)的默认端口,核心作用是为用户提供基于 TCP 协议的远程字符界面登录与设备管理能力,是早期网络中实现远程操作的基础协议之一。
核心作用:
- 远程设备管控
Telnet 协议通过 23 端口建立客户端与远程设备(服务器、路由器、交换机等)的 TCP 连接,用户可在本地客户端输入指令,远程设备执行后将结果返回至客户端界面。 - 跨平台字符界面访问
Telnet 基于纯字符交互,不支持图形界面,具有轻量、跨系统的特点 ------ 无论是 Windows、Linux 还是各类网络设备的操作系统,只要开启 Telnet 服务,就能通过通用的 Telnet 客户端访问。
注意事项:
- 极高的安全风险(核心缺陷)
Telnet 协议全程明文传输数据:用户的账号、密码、操作指令以及返回结果,在网络中都是以未加密的原始文本形式传递,攻击者可通过嗅探工具轻松窃取这些敏感信息,甚至篡改传输内容。
这一缺陷导致 Telnet 在现代网络中几乎被完全淘汰,SSH(22 端口) 成为其主流替代方案 ------SSH 通过加密机制保障传输安全,功能与 Telnet 一致但安全性大幅提升。 - 现代网络中的应用现状
- 目前主流操作系统(如 Windows 10/11、Linux 主流发行版)已默认禁用 Telnet 服务;
- 仅部分老旧的工业设备、嵌入式系统或特殊测试场景,仍可能保留 Telnet 服务;
- 网络设备(如交换机、路由器)虽仍支持 Telnet,但厂商通常会建议用户优先使用 SSH 登录。
- 防火墙配置建议
- 公网防火墙:必须封堵 23 端口,禁止外部设备访问,杜绝被黑客扫描和攻击的风险;
- 内网防火墙:若非老旧设备刚需,建议直接关闭 23 端口;若必须使用,需严格限制仅允许内网可信 IP 段访问,且尽量缩短使用时间。
137
137端口是UDP协议下的NetBIOS名称服务(NetBIOS Name Service,NBNS)的默认端口,核心作用是局域网内的NetBIOS名称解析,是早期Windows等系统实现局域网设备互访的关键端口。
核心作用:
-
NetBIOS名称与IP的映射解析
NetBIOS是早期局域网中用于标识计算机的命名系统(比如局域网内的计算机名),137端口的作用就是将计算机的NetBIOS名称转换成对应的IP地址。
举个典型场景:在Windows局域网中,你通过
\\办公室电脑访问同事的共享文件夹时,系统会通过137端口发送名称查询请求,获取"办公室电脑"对应的IP地址,之后才能建立连接。 -
局域网设备身份识别
137端口的查询是广播式的------当一台设备需要解析名称时,会向局域网内所有设备发送UDP广播包,拥有该名称的设备会通过137端口回应自己的IP,从而完成设备识别。
-
配合其他NetBIOS端口工作
NetBIOS协议依赖三个核心端口协同实现局域网共享功能:
- UDP 137:名称解析(核心)
- UDP 138:NetBIOS数据报服务(传输少量信息)
- TCP 139:NetBIOS会话服务(建立稳定连接,实现文件/打印机共享)
注意事项:
-
协议与端口类型限制
137端口仅使用UDP协议,TCP协议的137端口几乎不会被使用;且该服务仅适用于局域网,无法在公网中有效工作。
-
较大的安全风险
- 明文传输与信息泄露:137端口的名称查询数据为明文传输,攻击者可通过嗅探获取局域网内的设备名称和IP地址,为后续攻击(如暴力破解共享密码)提供信息。
- 易被用于网络扫描:黑客常通过扫描目标网络的137端口,判断是否存在使用NetBIOS协议的Windows设备,进而针对性发起攻击(如永恒之蓝漏洞利用就依赖相关端口)。
-
现代网络中的替代方案
随着网络技术发展,NetBIOS协议的作用逐渐弱化,现代局域网更多使用DNS、LLMNR(本地链路多播名称解析)或mDNS(多播DNS,如苹果的Bonjour服务) 实现名称解析,这些方案更安全且支持跨平台。
在Windows系统中,也可以通过关闭"TCP/IP上的NetBIOS"功能来禁用137端口的服务,降低安全风险。
-
防火墙配置建议
- 公网防火墙:必须封堵UDP 137端口,禁止外部设备访问,防止被扫描和攻击。
- 内网防火墙:若局域网内已不使用NetBIOS共享(如全部用DNS解析),建议直接关闭137端口;若仍需使用,需限制仅允许内网IP段访问。
138
138 端口是 UDP 协议下的 NetBIOS 数据报服务(NetBIOS Datagram Service,NBDS)的默认端口,与 137(名称服务)、139(会话服务)共同构成 NetBIOS 协议栈,是早期 Windows 局域网设备间传输无连接、广播式短消息的核心端口。
核心作用:
- 传输 NetBIOS 数据报(无连接短消息)
NetBIOS 数据报服务基于 UDP 协议,特点是无需建立持久连接、采用广播模式传输,适合传递少量、不需要确认回执的信息。138 端口的核心功能就是承载这类数据报,比如:- 局域网设备的状态通知(如设备上线 / 离线、主机名变更);
- "网上邻居"浏览列表的同步更新(让局域网内设备能快速发现彼此的共享资源);
- 简单的消息广播(早期 Windows 系统的net send命令就依赖 138 端口发送局域网弹窗消息)。
- 配合其他 NetBIOS 端口完成局域网共享
138 端口无法独立工作,需与 137、139 端口协同实现完整的局域网资源访问能力:- 137 端口:先完成 NetBIOS 名称到 IP 的解析;
- 138 端口:传输设备状态、列表同步等辅助短消息;
- 139 端口:建立稳定的 TCP 会话连接,实现文件 / 打印机共享的实际数据传输。
3306
3306 端口是 MySQL 数据库(含其分支 MariaDB)的默认 TCP 通信端口,核心作用是实现 MySQL 客户端与服务端之间的远程连接和数据交互,是数据库运维、应用程序访问数据库的核心通道。
核心作用
- 数据库远程通信通道
MySQL 采用客户端 - 服务端(C/S)架构,3306 端口是服务端监听客户端连接请求的默认端口。所有客户端与服务端的交互都通过该端口完成,包括:- 身份认证:客户端发送账号、密码等验证信息,服务端校验后建立连接;
- SQL 指令传输:客户端下发查询(SELECT)、增删改(INSERT/DELETE/UPDATE)、存储过程调用等指令;
- 数据返回:服务端执行指令后,将结果集、执行状态等数据回传给客户端;
- 数据库管理:运维人员通过客户端工具(如 Navicat、MySQL Workbench)远程配置数据库参数、备份恢复数据、管理用户权限。
- 应用程序与数据库的对接端口
网站、APP 等业务系统的后端程序,需要通过 3306 端口连接 MySQL 数据库,实现业务数据的读写。例如:电商平台的订单查询、用户注册等功能,本质都是应用程序通过 3306 端口向数据库发送 SQL 指令并获取结果。
注意事项:
- 极高的安全风险
- 默认端口易被扫描:3306 是公开的默认端口,黑客会通过端口扫描工具批量探测公网开放的 3306 端口,针对弱密码账号进行暴力破解,一旦成功即可完全控制数据库;
- 默认传输未加密:MySQL 默认连接不加密,账号密码、SQL 指令、业务数据均以明文形式在网络中传输,容易被嗅探工具窃取;
- 权限失控隐患:若数据库用户权限配置过宽(如赋予root账号远程访问权限),设备被攻破后会导致数据泄露、篡改甚至删除。
- 安全加固措施
- 修改默认端口:将 3306 改为 1024 以上的非标准端口(如 33060),降低被扫描发现的概率;
- 限制访问 IP:在数据库配置和防火墙中,仅允许应用服务器、运维终端的可信 IP 段访问 3306 端口,严禁公网直接暴露;
- 启用 SSL 加密连接:配置 MySQL 的 SSL/TLS 加密,确保数据传输过程的安全性;
- 强化账号策略:禁用root账号远程访问,创建权限最小化的专用业务账号,设置复杂密码并定期更换;
- 部署防火墙 / 堡垒机:通过防火墙拦截非法 IP 的访问请求,或通过堡垒机中转数据库连接,实现操作审计和权限管控。
- MariaDB 的兼容性
MariaDB 作为 MySQL 的分支,默认也使用 3306 端口,上述安全注意事项和加固措施同样适用于 MariaDB。
3389
3389 端口是微软 RDP(Remote Desktop Protocol,远程桌面协议)的默认端口,核心作用是为 Windows 系统提供图形化的远程登录与设备管理能力,是 IT 运维、远程办公场景中常用的远程控制协议端口。
核心作用:
- 图形化远程系统管控
与 Telnet(23 端口,字符界面)、SSH(22 端口,默认字符界面)不同,RDP 通过 3389 端口建立的是图形化桌面连接,用户可以直接看到远程设备的桌面界面,进行和本地操作完全一致的交互,包括:- 配置系统参数、安装 / 卸载软件、管理文件;
- 排查服务器故障、查看日志、重启服务;
- 远程协助终端用户解决电脑问题。
该功能在 Windows 系统中默认集成,分为远程桌面连接(客户端) 和远程桌面服务(服务端) 两部分。
- 多用户会话并发支持
Windows 服务器版本(如 Windows Server )通过 3389 端口支持多用户同时登录,不同用户的会话相互独立,不会互相干扰,这是运维管理多台服务器的核心优势;而 Windows 桌面版本(如 Windows 10/11)默认仅支持单用户远程登录,且会断开本地用户的会话。 - 跨网络访问能力
只要网络可达(内网或公网),且防火墙放行 3389 端口,用户就能从任意位置远程登录目标设备,无需物理接触机房或终端设备,极大提升了运维效率。
注意事项:
- 高安全风险,需重点防护
3389 端口是黑客的高频攻击目标,主要风险点包括:- 弱密码暴力破解:攻击者通过扫描公网开放的 3389 端口,使用密码字典进行暴力破解,一旦成功即可完全控制目标设备;
- 协议漏洞攻击:历史上出现过多起针对 RDP 协议的高危漏洞(如 BlueKeep 漏洞),未及时打补丁的设备暴露 3389 端口后,易被远程代码执行攻击;
- 权限泄露风险:若登录账号权限过高(如管理员账号),设备被攻破后会导致整个系统或内网的控制权丢失。
- 安全加固措施
- 修改默认端口:将 3389 端口改为 1024 以上的非标准端口(如 33900),降低被扫描发现的概率;
- 启用网络级别认证(NLA):NLA 要求用户先完成身份验证,再建立 RDP 连接,能有效拦截大部分暴力破解和漏洞攻击;
- 限制访问 IP:在防火墙或系统防火墙中,仅允许内网可信 IP 段或指定运维 IP 访问 3389 端口,禁止公网直接暴露;
- 使用 VPN / 跳板机:通过 VPN 接入内网,或通过跳板机(堡垒机)中转访问 3389 端口,避免直接公网暴露;
- 定期更新补丁:及时安装 Windows 系统的安全补丁,封堵 RDP 协议相关漏洞。
- 防火墙配置建议
- 公网防火墙:严禁直接放行 3389 端口,若需远程访问,必须通过 VPN、跳板机等安全通道中转;
- 内网防火墙:限制仅允许运维终端 IP 或内网管理网段访问目标设备的 3389 端口,禁止内网全段访问。
- 跨平台支持情况
RDP 并非 Windows 专属:Linux 系统可通过安装xrdp等组件支持 RDP 连接;macOS、Android、iOS 等系统也有对应的 RDP 客户端(如微软官方的 Remote Desktop),可跨平台访问 Windows 设备。