上一篇                     
               
			  如何查看linux服务端口
- Linux
- 2025-07-21
- 3351
 Linux中,查看服务端口常用命令有
 
 
netstat -tuln、
 ss -tuln、
 lsof -i等,可查看监听端口及进程信息
Linux系统中,查看服务端口是日常运维和故障排查的重要任务,以下是几种常用的方法及其详细说明:
使用netstat命令
-  基本用法 - 命令: netstat -tulpn- -t: 显示TCP连接。
- -u: 显示UDP连接。
- -l: 仅显示监听状态的端口。
- -p: 显示使用端口的进程ID及名称。
- -n: 以数字形式显示地址和端口号,避免DNS解析延迟。
 
- 示例: 查看所有监听的TCP和UDP端口及对应进程: netstat -tulpn 
- 输出示例:
 | Proto | Local Address | Foreign Address | State | PID/Program name |
 |——-|—————|—————-|——-|——————-|
 | tcp | 0.0.0.0:80 | 0.0.0.0: | LISTEN| 1234/nginx |
 | udp | 127.0.0.1:68 | : | | 5678/dhclient |
 
- 命令: 
-  过滤特定端口: 结合 grep筛选指定端口(如80):netstat -tulpn | grep :80 
使用ss命令
-  基本用法  - 命令: ss -tulpen- -t/- -u: TCP/UDP协议。
- -l: 监听状态。
- -p: 显示进程信息。
- -e: 显示扩展的套接字信息。
- -n: 数字化地址和端口。
 
- 优势: 性能优于netstat,适合快速查询。
- 示例: 查看监听的TCP端口及进程: ss -tulpen | grep -i tcp 
 
- 命令: 
-  过滤特定端口: 直接匹配端口号(如443): ss -tulpen | grep :443 
使用lsof命令
-  基本用法 - 命令: lsof -i -P -n- -i: 显示网络文件(包括端口)。
- -P: 禁止端口号转名称(如80→http)。
- -n: 禁止IP转主机名,加速输出。
 
- 示例: 查看所有监听端口: lsof -i -P -n | grep LISTEN 
 
- 命令: 
-  查询特定端口: 直接指定端口号(如9092):  lsof -i :9092 
使用fuser命令
- 基本用法 
  - 命令: fuser -n tcp [端口号]- -n tcp: 指定TCP协议。
 
- 示例: 查看80端口的占用情况: fuser -n tcp 80 
- 输出示例: 80/tcp: 1234
 
- 命令: 
其他方法
-  proc文件系统: 直接读取内核态网络状态。 - 命令: cat /proc/net/tcp | grep 端口号的十六进制需将端口号转为十六进制(如9999→270F)。 
- 示例: 查看9999端口: printf "%xn" 9999 # 输出270F cat /proc/net/tcp | grep 270F 
 
- 命令: 
-  nmap扫描: 探测主机开放端口(需安装 nmap)。 - 命令: nmap -sS -O localhost- -sS: SYN半开扫描。
- -O: 尝试识别操作系统。
 
 
- 命令: 
方法对比与选择建议
| 方法 | 适用场景 | 优点 | 缺点 | 
|---|---|---|---|
| netstat | 快速查看所有端口及进程 | 广泛兼容,参数灵活 | 部分系统需安装 net-tools | 
| ss | 高性能替代netstat | 更详细,速度更快 | 需熟悉新参数格式 | 
| lsof | 查看端口与进程的关联 | 精准定位进程,支持过滤 | 输出信息较冗杂 | 
| fuser | 查询单个端口的占用情况 | 简洁直接 | 仅显示PID,需结合其他命令 | 
| nmap | 远程扫描或安全审计 | 可探测防火墙隐藏端口 | 需额外安装,扫描速度较慢 | 
FAQs
-  如何终止占用特定端口的进程? - 步骤 1: 查找PID: lsof -i :PORT | awk '{print $2}'
- 步骤 2: 杀死进程: sudo kill -9 PID 
 
- 步骤 1: 查找PID: 
-  为什么某些命令(如netstat)提示“未找到”? - 原因: 部分Linux发行版(如CentOS 7)默认未安装net-tools。
- 解决: 安装对应工具: sudo yum install net-tools # CentOS/RHEL sudo apt-get install net-tools # Debian/Ubuntu 
 
- 原因: 部分Linux发行版(如CentOS 7)默认未安装
 
  
			