一、什么是端口
端口(Port)是计算机与外界通信的逻辑出入口。IP 地址告诉数据要发到哪台电脑,端口则告诉数据要交给这台电脑上的哪个程序。一台电脑上可能同时跑着网页服务、数据库、远程桌面、聊天软件,操作系统靠端口号把不同的数据分流给不同的程序。
端口号范围是 0~65535,分为两大类协议:TCP(面向连接、可靠传输,用于文件、网页、邮件等要求不丢包的场景)和 UDP(无连接、速度快,用于视频、DNS、游戏等允许偶尔丢包的场景)。
端口号的三段分类
端口 | 协议 | 服务 | 用途说明 |
0-1023 | TCP/UDP | 知名端口(Well-known) | 由 IANA 统一分配,绑定系统级服务,普通用户不能随便使用,如 80、443、22。 |
1024-49151 | TCP/UDP | 注册端口(Registered) | 由应用程序厂商注册使用,如 MySQL 3306、Redis 6379、Oracle 1521。 |
49152-65535 | TCP/UDP | 动态/私有端口 | 系统临时分配给客户端程序使用,每次连接随机选一个,关闭后回收。 |
二、系统与基础网络端口
端口 | 协议 | 服务 | 用途说明 |
20 | TCP | FTP-DATA | FTP 数据传输端口,主动模式下服务端用这个端口传文件内容。 |
21 | TCP | FTP | FTP 控制命令端口,用来登录、列目录、切换目录等操作。 |
22 | TCP | SSH / SCP / SFTP | 安全远程登录、加密文件传输,Linux 服务器默认管理端口。 |
23 | TCP | Telnet | 明文远程登录,不安全,现代环境基本已被 SSH 取代。 |
25 | TCP | SMTP | 简单邮件传输协议,服务器之间发邮件、发件客户端投递邮件用。 |
53 | TCP/UDP | DNS | 域名系统,把域名解析成 IP 地址;UDP 用于查询,TCP 用于区域传送。 |
67/68 | UDP | DHCP | 动态主机配置协议,自动给内网设备分配 IP 地址。 |
69 | UDP | TFTP | 简单文件传输协议,无认证、轻量,常用于网络设备固件升级。 |
80 | TCP | HTTP | 网页服务默认端口,浏览器访问 http:// 网址时默认走这个端口。 |
110 | TCP | POP3 | 邮局协议第3版,从邮件服务器下载邮件到本地。 |
123 | UDP | NTP | 网络时间协议,电脑自动对时、同步系统时钟。 |
135 | TCP | RPC | Windows 远程过程调用端点映射器,DCOM 服务用。 |
137/138 | UDP | NetBIOS | Windows 网上邻居、局域网文件共享的名称服务。 |
139 | TCP | NetBIOS-SSN | Windows 文件和打印共享,早期局域网共享用。 |
143 | TCP | IMAP | 邮件访问协议,邮件留在服务器上、多设备同步阅读。 |
161/162 | UDP | SNMP | 简单网络管理协议,路由器、交换机监控用(162 是 Trap 告警)。 |
三、Web 服务相关端口
端口 | 协议 | 服务 | 用途说明 |
443 | TCP | HTTPS | 加密网页服务,HTTP + SSL/TLS,现在绝大多数网站默认走 443。 |
445 | TCP | SMB | Windows 局域网文件共享(替代老版 NetBIOS),也用于域控。 |
465 | TCP | SMTPS | SSL 加密的 SMTP,现代发邮件推荐用这个端口。 |
587 | TCP | Submission | 邮件提交端口,客户端发邮件的标准端口(STARTTLS)。 |
993 | TCP | IMAPS | SSL 加密的 IMAP,加密收取邮件。 |
995 | TCP | POP3S | SSL 加密的 POP3。 |
8080 | TCP | HTTP-Alt | 常用备用 Web 端口,Tomcat、Jenkins、各种管理后台常用。 |
8443 | TCP | HTTPS-Alt | 常用加密 Web 备用端口,很多管理后台走 8443。 |
8000/8001 | TCP | HTTP-Dev | 开发环境常用 Web 端口,Python、Node 本地调试常用。 |
3000 | TCP | Node.js / React | 前端开发常用端口(React、Vite、Next.js 默认)。 |
5000 | TCP | Flask / 各种 | Python Flask 默认端口,也被很多 Docker 管理界面占用。 |
9000 | TCP | PHP-FPM / SonarQube | PHP-FPM 默认监听端口,代码质量管理平台也常用。 |
四、数据库与缓存端口
端口 | 协议 | 服务 | 用途说明 |
1433 | TCP | SQL Server | 微软 SQL Server 数据库默认端口。 |
1521 | TCP | Oracle | Oracle 数据库默认监听端口。 |
3306 | TCP | MySQL / MariaDB | MySQL/MariaDB 数据库默认端口,最常见的开源数据库端口。 |
5432 | TCP | PostgreSQL | PostgreSQL 数据库默认端口。 |
6379 | TCP | Redis | Redis 内存缓存数据库默认端口,未授权暴露风险很高。 |
27017 | TCP | MongoDB | MongoDB 文档数据库默认端口。 |
9200/9300 | TCP | Elasticsearch | ES 数据节点(9200 HTTP API,9300 节点间通信)。 |
5672/5671 | TCP | RabbitMQ | RabbitMQ 消息队列(5672 普通,5671 SSL)。 |
9042 | TCP | Cassandra | Apache Cassandra 数据库默认端口。 |
8529 | TCP | ArangoDB | ArangoDB 多模型数据库默认端口。 |
五、远程管理与桌面端口
端口 | 协议 | 服务 | 用途说明 |
3389 | TCP | RDP | Windows 远程桌面协议,图形化远程控制 Windows。 |
5900 | TCP | VNC | VNC 远程桌面,跨平台图形化远程控制。 |
5985/5986 | TCP | WinRM | Windows 远程管理(5985 HTTP,5986 HTTPS)。 |
22 | TCP | SSH | Linux 服务器远程命令行管理,同时支持端口转发。 |
4848 | TCP | GlassFish | Java 应用服务器管理控制台。 |
9090 | TCP | Prometheus | Prometheus 监控 Web UI 默认端口。 |
9091 | TCP | Transmission | Transmission BT 下载器 Web 管理界面。 |
81/8081 | TCP | 各种面板 | 宝塔面板、1Panel 等服务器管理面板常用端口。 |
六、VPN 与安全相关端口
端口 | 协议 | 服务 | 用途说明 |
500 | UDP | IKE | IPSec VPN 的密钥交换端口。 |
4500 | UDP | IPSec-NAT-T | IPSec VPN 穿越 NAT 后用的端口。 |
1701 | UDP | L2TP | 二层隧道协议,常和 IPSec 搭配。 |
1723 | TCP | PPTP | 老式 VPN 协议,安全性弱,已不推荐。 |
1194 | UDP | OpenVPN | OpenVPN 默认端口(也可用 TCP)。 |
51820 | UDP | WireGuard | WireGuard 现代 VPN 默认端口。 |
443 | TCP | HTTPS 伪装 | 很多代理工具把流量伪装成 HTTPS 走 443,绕过封锁。 |
8388 | TCP/UDP | Shadowsocks | Shadowsocks 代理常用端口。 |
七、常见应用与服务端口
端口 | 协议 | 服务 | 用途说明 |
21 | TCP | FTP | 文件传输服务器。 |
25565 | TCP | Minecraft | Minecraft Java 版服务器默认端口。 |
19132 | UDP | Minecraft-PE | Minecraft 基岩版/手机版服务器端口。 |
3074 | TCP/UDP | Xbox Live | 微软 Xbox 联机服务端口。 |
3478 | UDP | STUN / PlayStation | NAT 穿透 STUN 服务,PSN 也用。 |
5222 | TCP | XMPP | 即时通讯协议(Jabber)。 |
6667 | TCP | IRC | 传统 IRC 聊天网络。 |
1883 | TCP | MQTT | 物联网消息协议默认端口(8883 是 MQTT over SSL)。 |
8883 | TCP | MQTT-S | 加密 MQTT。 |
5353 | UDP | mDNS | 局域网设备自动发现(AirPlay、Chromecast 等)。 |
6881-6889 | TCP/UDP | BitTorrent | BT 下载常用端口段。 |
25565 | TCP | Minecraft | MC 服务器。 |
八、常见恶意软件/木马端口(安全参考)
以下端口是历史上常见的木马、后门使用的端口,在服务器上如果看到这些端口有异常连接,需要警惕入侵。
端口 | 协议 | 服务 | 用途说明 |
12345 | TCP | NetBus / Various | 老牌木马 NetBus 默认端口,也被多种恶意软件滥用。 |
31337 | TCP | Back Orifice | 经典 BO 后门端口,黑客圈子常用象征端口。 |
4444 | TCP | Metasploit / 各种 | Metasploit 框架默认反向 Shell 端口。 |
5554 | TCP | Sasser 蠕虫 | 微软冲击波类蠕虫曾用端口。 |
6666-6667 | TCP | IRC 僵尸网络 | 很多僵尸网络通过 IRC 控制肉鸡。 |
3389 | TCP | RDP 暴力破解 | 经常被爆破扫描,建议改默认端口或加白名单。 |
22 | TCP | SSH 暴力破解 | 公网 SSH 每天会收到大量密码爆破,务必用密钥登录。 |
6379 | TCP | Redis 未授权 | Redis 暴露公网且无密码是挖矿木马重灾区。 |
27017 | TCP | MongoDB 未授权 | 未授权 MongoDB 经常被删库勒索。 |
九、常用端口管理命令
Windows
· 查看所有监听端口:netstat -ano | findstr LISTENING
· 查看某个端口被谁占用:netstat -ano | findstr :3306(最后一列是 PID)
· 根据 PID 查进程名:tasklist | findstr <PID>
· 结束占用进程:taskkill /PID <PID> /F
· PowerShell 查看端口:Get-NetTCPConnection -LocalPort 3306
· 防火墙放行端口:netsh advfirewall firewall add rule name="MySQL" dir=in action=allow protocol=TCP localport=3306
· 查看防火墙规则:netsh advfirewall firewall show rule name=all
Linux
· 查看监听端口:ss -tlnp(推荐)或 netstat -tlnp
· 查某个端口:ss -tlnp | grep :3306
· 查 PID 对应进程:lsof -i :3306 或 fuser 3306/tcp
· 查看所有连接:ss -ant | more
· firewalld 放行端口:firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload
· iptables 放行:iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
· 查看 iptables 规则:iptables -L -n
· 杀掉占用端口的进程:fuser -k 3306/tcp
macOS
· 查看端口:lsof -i :3306
· 查看监听:netstat -an | grep LISTEN
· 防火墙配置:系统设置 → 网络 → 防火墙。
十、端口安全最佳实践
· 最小化原则:只开放必须的端口,不用的服务全部关掉。
· 改默认端口:SSH、RDP、数据库等管理端口不要用默认值,能挡住一大波自动化扫描。
· 绑定地址:数据库、Redis 等只监听 127.0.0.1 或内网 IP,不要直接绑 0.0.0.0 暴露公网。
· 防火墙白名单:管理端口(22、3389)只允许指定 IP 访问,不要对全网开放。
· 用密钥不用密码:SSH 一律禁用密码登录,改用密钥对。
· 及时更新:及时打补丁,堵住 EternalBlue 类漏洞(445 端口相关)。
· 定期检查:定期 netstat/ss 看有没有可疑监听端口和异常外连。
· 数据库加密码:MongoDB、Redis、Elasticsearch 绝对不能无密码暴露公网。
· VPN 代替公网:远程管理走 VPN 或 SSH 隧道,不要把管理面板直接扔公网。