常见网络端口号及端口查看命令
在网络通信中,IP地址好比一栋大楼的地址,而端口号则是大楼里每个房间的门牌号。它用于区分一台计算机上运行的不同应用程序或服务,确保数据包能够被准确地送达目标程序。端口号的范围是0到65535,通常分为以下几类:
- 知名端口:0 - 1023,分配给系统或公认的网络服务。
- 注册端口:1024 - 49151,分配给用户注册的应用程序。
- 动态/私有端口:49152 - 65535,留给客户端程序临时使用。

常见的网络端口号
了解常见端口号对于配置防火墙、排查网络问题和服务部署至关重要。以下是一些你必须知道的端口:
1. 网络基础与远程管理
-
20/21 (FTP)
- 20: 用于数据传输。
- 21: 用于控制连接,即命令通道。
- 用于文件的上传和下载,但传输过程是明文的,不安全。
-
22 (SSH)
- 安全外壳协议。用于加密的远程登录、命令执行和文件传输(通过SCP或SFTP)。是替代不安全的Telnet的首选方案。
-
23 (Telnet)
- 用于远程登录虚拟机或网络设备。由于所有通信(包括密码)都以明文传输,现已基本被SSH取代。
-
53 (DNS)
- 域名系统。将我们熟悉的域名(如
www.google.com)解析为计算机能识别的IP地址。可以说是互联网的“电话簿”。
- 域名系统。将我们熟悉的域名(如
2. Web服务相关
-
80 (HTTP)
- 超文本传输协议,用于普通的网页浏览。数据明文传输。
-
443 (HTTPS)
- 安全的HTTP。在HTTP下加入SSL/TLS层,用于加密的网页访问、在线支付等所有敏感操作。是现代网站的标配。
-
8080
- 常被用作HTTP服务的替代端口或代理端口。一些Web服务器(如Tomcat)在开发阶段默认使用此端口。
3. 邮件服务相关
-
25 (SMTP)
- 简单邮件传输协议。用于在邮件服务器之间发送和转发邮件。
-
110 (POP3)
- 邮局协议第3版。用于从邮件服务器下载邮件到本地计算机,通常会在下载后删除服务器上的邮件。
-
143 (IMAP)
- 互联网消息访问协议。用于在本地客户端(如Outlook)访问和管理服务器上的邮件,所有操作会与服务器同步。
-
993 (IMAPS)
- 基于SSL/TLS加密的IMAP。
-
995 (POP3S)
- 基于SSL/TLS加密的POP3。
4. 文件共享与数据库
-
137-139, 445 (SMB/CIFS)
- 用于Windows系统的文件共享和打印机共享。445端口是现代Windows文件共享的主要端口。
-
3306 (MySQL)
- MySQL数据库服务的默认端口。
-
5432 (PostgreSQL)
- PostgreSQL数据库服务的默认端口。
-
27017 (MongoDB)
- MongoDB数据库服务的默认端口。
5. 远程桌面
- 3389 (RDP)
- 远程桌面协议。用于远程连接和操作Windows计算机。
端口查看命令
掌握如何查看端口状态是网络管理和故障排查的核心技能。
Windows 系统
1. netstat 命令 (最常用)
netstat(网络统计)是一个功能强大的命令行工具,用于显示网络连接、路由表、接口统计等信息。
- 查看所有活动连接和监听端口:
netstat -an
-a: 显示所有连接和监听端口。-n: 以数字形式显示地址和端口号(不进行DNS解析),速度更快。
- 查看哪个进程占用了特定端口(如8080):
netstat -ano | findstr :8080
-o: 显示与每个连接关联的进程PID。- 找到PID后,可以在“任务管理器”的“详细信息”选项卡中查看对应的程序名。
- 查看所有已建立的TCP连接:
netstat -n
2. 资源监视器 (图形化界面)
对于不习惯命令行的用户,Windows提供了更直观的工具:
- 按
Ctrl + Shift + Esc打开“任务管理器”。 - 切换到“性能”选项卡,点击底部的“打开资源监视器”。
- 在“网络”选项卡下,你可以看到所有进行网络活动的进程、它们使用的端口和连接状态。
Linux / macOS 系统
1. netstat 命令
Linux和macOS同样支持 netstat,参数与Windows类似。
- 查看所有监听端口和已建立的连接:
netstat -tulnp
-t: 显示TCP端口。-u: 显示UDP端口。-l: 仅显示监听状态的端口。-n: 拒绝显示别名,能显示数字的全部转化成数字。-p: 显示占用端口的进程名和PID。
- 查看所有连接:
netstat -a
2. ss 命令 (推荐)
ss(Socket Statistics)是 netstat 的现代替代品,它更快、更高效,语法也基本相似。
- 查看所有监听中的TCP端口:
ss -tln
- 查看所有连接(包括监听和已建立):
ss -a
- 查看进程信息:
ss -tlnp
3. lsof 命令
lsof(列出打开文件)功能极其强大,在Linux中,一切皆文件,网络连接也被视为文件。
- 查看哪个进程占用了特定端口(如3306):
lsof -i :3306
- 查看所有网络连接:
lsof -i
总结
| 端口号 | 服务/协议 | 主要用途 |
|---|---|---|
| 22 | SSH | 加密的远程登录与管理 |
| 80 | HTTP | 网页浏览 |
| 443 | HTTPS | 安全的网页浏览 |
| 53 | DNS | 域名解析 |
| 3306 | MySQL | 数据库服务 |
| 3389 | RDP | Windows远程桌面 |
| 操作系统 | 主要命令 | 用途示例 |
|---|---|---|
| Windows | netstat -ano | 查看所有连接和进程PID |
| Windows | netstat -ano | findstr :端口号 | 查找特定端口的占用程序 |
| Linux/macOS | ss -tlnp | 查看所有TCP监听端口及进程 |
| Linux/macOS | lsof -i :端口号 | 精确查找端口占用者 |
熟练掌握这些常见的端口号及其对应的服务,并能够灵活运用 netstat、ss 等命令进行端口状态分析,是每一位IT从业者、开发者乃至进阶用户都应具备的基本素养。这将帮助您更好地理解网络通信、配置服务环境和解决连接故障。
