Linux 端口管理
端口基础概念
什么是端口?
端口是计算机与外部交互的出入口,分为两类:
- 物理端口:USB、HDMI、DP、VGA、RJ45 等硬件接口。
- 虚拟端口:操作系统与外部交互的逻辑出入口,用于区分不同的网络服务。
端口的分类
Linux 系统支持 0~65535 个端口,分为三类:
| 端口范围 | 分类 | 说明 |
|---|---|---|
| 1~1023 | 公认端口 | 用于系统内置或知名程序,如 SSH(22)、HTTP(80)、HTTPS(443)。非特殊需要不要占用。 |
| 1024~49151 | 注册端口 | 通常可随意使用,用于绑定各种应用程序和服务。 |
| 49152~65535 | 动态端口 | 一般不固定绑定程序,当程序对外发起网络连接时临时使用。 |
IP 与端口的关系
- IP 地址:用于在网络中定位计算机设备。
- 端口号:用于锁定计算机上具体的应用程序或服务。
IP 只能确定计算机,通过端口才能定位到要交互的具体程序。
端口扫描命令
nmap 命令(网络探测工具)
nmap 是一款开源的网络探测和安全审核工具,用于快速扫描大型网络,检测开放端口和运行服务。
安装:
yum install nmap -y
语法:
nmap [选项] 目标
常用参数
| 参数 | 说明 |
|---|---|
-v |
显示扫描过程 |
-p |
指定端口范围(如 -p 1-1000) |
-A |
全面系统检测(启用脚本检测、操作系统识别等) |
-sT |
TCP 全连接扫描(会在目标主机日志留下记录) |
-sS |
TCP 半开扫描(隐蔽性高,需 root 权限) |
-sU |
UDP 扫描 |
-O |
启用远程操作系统检测 |
-Pn |
跳过 ping 检测(适用于防火墙禁止 ping 的场景) |
-sP |
Ping 扫描,检测哪些主机在线 |
-oN/-oX/-oG |
将结果输出为普通/XML/grepable 格式文件 |
示例:简单扫描(仅扫描常见端口)
nmap 192.168.1.1
netstat 命令(网络状态查看)
netstat 用于显示网络连接、路由表、接口统计等信息,常用于检查本机端口占用情况。
安装:
yum install net-tools -y
语法:
netstat [选项]
常用参数
| 参数 | 说明 |
|---|---|
-a |
显示所有连接和监听端口 |
-l |
仅显示监听的端口 |
-t |
显示 TCP 协议端口 |
-u |
显示 UDP 协议端口 |
-n |
以数字形式显示 IP 和端口(不进行域名解析) |
-p |
显示占用端口的进程 PID 和名称 |
-c |
每隔固定时间持续执行命令 |
-e |
显示扩展信息 |
-r |
显示路由表 |
常见用法示例
-
查看所有连接和监听端口
netstat -anp
-
查看 TCP 监听端口
netstat -ntpl
-
查看 UDP 监听端口
netstat -nupl
-
仅显示所有监听端口
netstat -l
-
仅显示 TCP 监听端口
netstat -lt
连接状态说明
| 状态 | 说明 |
|---|---|
| LISTENING | 服务启动后处于监听状态,等待连接 |
| ESTABLISHED | 已建立连接,正在通信 |
| CLOSE_WAIT | 对方主动关闭连接,等待本地关闭 |
| TIME_WAIT | 本地主动关闭连接后,等待足够时间确保远程收到确认 |
| SYN_SENT | 正在尝试建立连接 |
总结
- 端口范围:0-65535,分为公认端口、注册端口和动态端口。
- IP + 端口:IP 定位计算机,端口定位具体程序。
- nmap:用于远程扫描,检测目标主机的开放端口和服务。
- netstat:用于本地检查,查看本机的端口占用和网络连接状态。
掌握这两个命令,可以有效管理和排查 Linux 系统的网络与端口问题。

浙公网安备 33010602011771号