linux中如何通过端口查询api
linux中如何通过端口查询api详细介绍
在 Linux 中,可以通过以下常用命令根据端口号查询对应的进程、服务或网络连接信息,以下是具体方法:
1.
使用 netstat 命令(经典工具)
netstat 用于显示网络连接、路由表、接口统计等信息,常用选项:
-t:查看 TCP 端口-u:查看 UDP 端口-n:以数字形式显示端口号(不解析服务名)-l:仅显示正在监听(Listening)的端口-p:显示占用端口的进程及其 PID
查询指定端口是否被监听
bash
端口号
- 示例(查询 80 端口):bash
tcp .0.0:80 .0.0:* LISTEN /nginx
- 输出说明:
0.0.0.0:80表示监听所有 IP 的 80 端口,1234/nginx表示进程 PID 为 1234,进程名是 nginx。
- 输出说明:
查询所有端口及对应进程
bash
-o显示定时器信息,-a显示所有连接(包括监听和非监听)。
2.
使用 lsof 命令(更直观)
lsof(List Open Files)可列出所有打开的文件和端口,直接指定端口号:
bash
:端口号
- 示例(查询 8080 端口):bash
:8080COMMAND PID FD TYPE DEVICE SIZE/OFF NODE NAME
user 6u IPv6 0t0 TCP *:8080 LISTEN
- 直接显示进程名(如 java)、PID、用户等信息。
3.
使用 ss 命令(高效替代 netstat)
ss(Socket Statistics)是新一代网络统计工具,比 netstat 更高效:
查询监听的端口
bash
ss 端口号
- 示例(查询 443 端口):bash
ssLISTEN *:443 *:*
查询所有 TCP 连接及端口
bash
ss 端口号
4.
结合 ps 命令(通过 PID 查进程详情)
如果已知端口对应的 PID(如通过 lsof 或 netstat 得到 PID),可通过 ps 查看进程详细信息:
bash
PID comm,pid,user,args
- 示例(PID 为 1234):bash
comm,pid,user,argsCOMMAND PID ARGS
nginx root nginx: master process /usr/sbin/nginx
总结常用命令:
| 需求 | 命令示例 | |
|---|---|---|
| 查监听端口 | `netstat -tuln | grep <端口号>` |
| 查端口对应进程 | lsof -i :<端口号> |
|
| 高效查监听端口 | `ss -tuln | grep <端口号>` |
| 查所有连接(含非监听) | netstat -ano 或 ss -tna |
注意:
- 部分命令(如
netstat -p、lsof)可能需要 管理员权限(加sudo)。 - 端口号前需加
:(如:80),区分 IP 地址(如192.168.1.1:80)。
通过以上方法,可以快速定位 Linux 系统中占用指定端口的进程或服务,进而排查 API 相关的网络问题。