linux如何查看端口被谁占用

本文详细介绍了如何使用netstat和lsof命令来查看端口占用情况,包括如何查找占用特定端口的进程,以及如何通过PID进一步了解进程详情。
使用 netstat 进行查看!
>netstat -noap | grep 80 | grep tcp
Proto      Recv-Q Send-Q Local Address          Foreign Address             State       PID/Program name                      
-----------------------------------------------------------------------------------------------------------------
tcp    74160 138880 127.0.0.1:6150              127.0.0.1:6150              ESTABLISHED 3145/tnslsnr        unkn-4 (52.04/0/0)
tcp        0      0 :::8009                     :::*                        LISTEN      31550/java          off (0.00/0/0)
tcp        0      0 :::8080                     :::*                        LISTEN      31550/java          off (0.00/0/0)
tcp        0      0 :::80                       :::*                        LISTEN      24675/httpd         off (0.00/0/0)


使用 lsof 进行查看!
谁在使用tcp8080端口
lsof -i tcp:8080
COMMAND   PID USER   FD   TYPE   DEVICE SIZE NODE NAME
------------------------------------------------------
java    31550 root  109u  IPv6 78687600       TCP *:webcache (LISTEN)
谁在使用22端口
lsof -i :22
COMMAND  PID USER   FD   TYPE   DEVICE SIZE NODE NAME
sshd    2883 root    3u  IPv6     7642       TCP *:ssh (LISTEN)


然后根据 pid 
使用ps -ef | grep pid去查是哪里占用了

### Linux 查看端口占用进程的命令 在 Linux 系统中,可以通过多种方法查看哪些进程占用了特定端口。以下是几种常用的工具及其具体用法: #### 方法一:使用 `netstat` 命令 `netstat` 是一个强大的网络统计工具,能够显示网络连接、路由表、接口统计等信息。为了查看哪个进程占用了某个特定端口,可以运行以下命令: ```bash netstat -tulnp | grep 端口号 ``` 该命令会列出所有监听中的 TCP 和 UDP 端口以及对应的 PID/程序名称[^2]。 例如,如果想检查是否有进程正在使用 5000 端口,则执行如下命令: ```bash netstat -tulnp | grep 5000 ``` 需要注意的是,在某些较新的 Linux 发行版中(如 Ubuntu 18.04 及以上),默认可能不再安装 `net-tools` 软件包,因此需要手动安装它才能使用 `netstat` 工具: ```bash sudo apt-get install net-tools ``` #### 方法二:使用 `lsof` 命令 `lsof` (List Open Files) 是另一个非常有用的工具,它可以列出系统上打开的所有文件,其中包括网络套接字。要查找占用端口的进程,可使用以下命令: ```bash lsof -i :端口号 ``` 比如,查询 5000 端口是否被占用并获取其关联的进程详情: ```bash lsof -i :5000 ``` 这条命令返回的结果通常包括进程 ID (`PID`)、用户 (`USER`)、协议类型以及其他相关信息[^4]。 #### 方法三:使用 `ss` 命令 作为更现代替代方案之一,`ss` 提供了比传统 `netstat` 更高效的方式去监控 socket 的状态。语法类似于前者但性能更好。对于寻找指定端口上的活动服务来说,可以用到这样的形式: ```bash ss -tuln | grep 端口号 ``` 或者直接结合 `-p` 参数展示相关联的应用程序实例: ```bash ss -tulnp | grep 端口号 ``` 综上所述,无论是采用经典的 `netstat`, 功能全面的 `lsof`, 还是新兴高效的 `ss` 都能很好地完成这项任务——即定位出到底是什么样的后台作业绑定了目标通信地址资源。 ```bash # 示例代码片段 netstat -tulnp | grep 5000 # 利用 netstat 寻找绑定至 5000 的应用层实体 lsof -i :5000 # 应用 lsof 来识别谁占据了我们的测试通道号 ss -tulnp | grep 5000 # 使用 ss 达成同等目的却具备更高效率表现 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值