查看端口号被哪个程序占用

第一步,查看windows所有端口进程:

点击开始菜单选择运行(win+r),接着在运行对话框中输入“cmd”,回车打开命令提示符窗口,然后在窗口中输入【netstat  -ano】,回车,之后就会显示所有的端口占用情况

第二步,继续输入【netstat -aon|findstr "端口"】,这里的提示的端口为8080,那么就输入命令为【netstat  -aon|findstr "8080"】,回车之后就可以看见列表中的PID。根据PID在电脑的任务管理器中查看对应的占用程序,然后将其关闭即可

第三步,可以看到占有8080这个程序的进程ID:7172,继续输入命令【tasklist|findstr "7172"】,7172就是进程ID,知道是哪个进程占用的我们就可以采取相应措施进行解决了

 

https://jingyan.baidu.com/article/4f7d571200aacd1a201927c1.html

转载于:https://www.cnblogs.com/zzxzxn/p/10838799.html

<think>我们正在讨论如何查看端口哪个程序占用。根据用户提供的引用,我们可以总结出在Linux和Windows系统下的不同方法。 用户的问题:我想查找查看端口哪个程序占用的方法 根据引用,我们可以提供以下方法: 在Linux系统中: 1. 使用 `lsof -i:端口号` 命令,例如:`lsof -i:9090` 会显示占用9090端口程序信息。 2. 使用 `netstat -an | grep 端口号` 可以查看端口是否被监听,然后结合进程信息(如使用`ps`命令)来查找具体进程。 在Windows系统中: 1. 使用 `netstat -ano | findstr "端口号"` 命令,例如:`netstat -ano | findstr "9090"` 可以找到占用端口的进程的PID。 2. 然后打开任务管理器,在“详细信息”选项卡中根据PID找到对应的程序(映像名称)。 另外,引用[3]中提到,在Windows任务管理器中,可以通过勾选“显示所有用户的进程”来查看系统进程。 下面我们详细说明: ### Linux系统 #### 方法1:使用`lsof`命令 1. 打开终端。 2. 输入命令:`lsof -i :端口号` - 例如查看9090端口:`lsof -i :9090` - 输出结果中会显示进程ID(PID)、用户、命令等信息,从而知道是哪个程序占用了该端口。 #### 方法2:使用`netstat`命令结合`grep` 1. 输入命令:`netstat -tulnp | grep 端口号` - `-tulnp`选项解释: - `-t`:TCP端口 - `-u`:UDP端口 - `-l`:仅显示监听套接字 - `-n`:显示数字地址(不解析主机名) - `-p`:显示进程ID和程序名称 - 例如:`netstat -tulnp | grep 9090` 2. 从输出中找到进程ID(PID)和程序名。 #### 方法3:使用`ss`命令(较新的Linux发行版) - 命令:`ss -tulnp | grep 端口号` - 输出格式与`netstat`类似。 ### Windows系统 #### 方法1:使用命令提示符(CMD) 1. 打开命令提示符(以管理员身份运行)。 2. 输入命令:`netstat -ano | findstr "端口号"` - 例如:`netstat -ano | findstr "9090"` - 输出结果中会显示协议、本地地址、外部地址、状态和进程ID(PID)。 3. 记录下PID,然后打开任务管理器: - 在“详细信息”选项卡中,找到对应PID的进程,查看映像名称(即程序名称)。 #### 方法2:使用PowerShell 1. 打开PowerShell。 2. 输入命令:`Get-Process -Id (Get-NetTCPConnection -LocalPort 端口号).OwningProcess` - 例如:`Get-Process -Id (Get-NetTCPConnection -LocalPort 9090).OwningProcess` - 这会直接显示占用端口的进程信息。 #### 方法3:使用资源监视器 1. 打开任务管理器(Ctrl+Shift+Esc)。 2. 切换到“性能”选项卡,点击底部的“打开资源监视器”。 3. 在“网络”选项卡下,展开“侦听端口”列表,然后根据端口号查找对应的进程。 ### 注意事项 - 在Linux中,如果命令提示`lsof`未安装,可以使用包管理器安装(如`yum install lsof`或`apt install lsof`)。 - 在Windows中,如果使用命令提示符,需要管理员权限才能查看所有进程的端口占用情况。 ### 示例 #### Linux示例(查看80端口哪个程序占用): ```bash $ lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 12345 root 6u IPv4 123456 0t0 TCP *:http (LISTEN) ``` 这里可以看到是nginx进程(PID为12345)占用了80端口。 #### Windows示例(查看8080端口): 1. 在命令提示符: ```cmd C:\> netstat -ano | findstr "8080" TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1234 ``` 2. 然后在任务管理器的“详细信息”选项卡中查找PID为1234的进程,发现是`java.exe`。 ### 总结 - **Linux**:优先使用`lsof -i:端口号`或`netstat -tulnp | grep 端口号`。 - **Windows**:优先使用`netstat -ano | findstr "端口号"`,然后通过任务管理器查看对应PID的进程。 通过以上方法,可以快速定位占用端口程序,便于后续处理(如结束进程)[^1][^2][^3][^4]。 ### 相关问题 1. 如何结束占用某个端口的进程? 2. 在Linux中,如何查看所有被监听的端口及其对应的程序? 3. 在Windows中,如何通过PowerShell一键结束占用端口的进程?</think>### 查看端口哪个程序占用的方法 #### 一、Linux系统方法 1. **使用 `lsof` 命令**(推荐) 直接查看指定端口哪个进程占用: ```bash lsof -i :端口号 ``` **示例**(查看 9090 端口): ```bash $ lsof -i :9090 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 1234 root 46u IPv6 123456 0t0 TCP *:websm (LISTEN) ``` - `COMMAND`:进程名称 - `PID`:进程ID - `USER`:运行用户[^1] 2. **使用 `netstat` + `grep`** 查找端口监听状态: ```bash netstat -tulnp | grep 端口号 ``` **示例**: ```bash $ netstat -tulnp | grep 9090 tcp6 0 0 :::9090 :::* LISTEN 1234/java ``` - 最后一列显示 `PID/程序名`(如 `1234/java`) 3. **查看进程详细信息** 通过 `lsof` 或 `netstat` 获取 PID 后: ```bash # 查看进程启动路径 ls -l /proc/PID/exe # 查看进程环境信息 cat /proc/PID/environ | tr '\0' '\n' ``` --- #### 二、Windows系统方法 1. **命令提示符操作** ```cmd :: 查找端口占用进程的PID netstat -ano | findstr "端口号" :: 根据PID查找程序名 tasklist | findstr "PID" ``` **示例**(查找 8080 端口): ```cmd > netstat -ano | findstr "8080" TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1234 > tasklist | findstr "1234" java.exe 1234 Console 1 487,464 K ``` 2. **任务管理器可视化操作** 1. 按 `Ctrl+Shift+Esc` 打开任务管理器 2. 切换到 **详细信息** 选项卡 3. 右键列标题 → 选择列 → 勾选 **PID** 4. 根据 `netstat` 获取的 PID 找到对应进程[^3] 3. **PowerShell 命令** ```powershell Get-Process -Id (Get-NetTCPConnection -LocalPort 端口号).OwningProcess ``` --- ### 关键区别总结 | 特性 | Linux | Windows | |---------------------|--------------------------------|-----------------------------| | **推荐命令** | `lsof -i:端口号` | `netstat -ano \| findstr` | | **进程路径查看** | `/proc/PID/exe` | 任务管理器 → 右键"打开文件位置" | | **需安装的工具** | 部分系统需手动安装 `lsof` | 内置工具无需安装 | > ⚠️ **注意**: > - Linux 需要 root 权限查看所有进程(命令前加 `sudo`) > - Windows 需用管理员身份运行命令提示符 ### 常见问题场景 1. **端口冲突时**: ```bash # Linux 结束进程 kill -9 PID # Windows 结束进程 taskkill /PID 1234 /F ``` 2. **找不到进程时**:检查是否为系统内核保留端口(如 1-1023 端口通常需 root 权限访问) --- ### 相关问题 1. 如何查看某个程序具体占用了哪些端口? 2. 在 Linux 中,如何实时监控端口占用变化? 3. Windows 系统端口被 `SYSTEM` 进程占用时该如何处理? [^1]: Linux 查看端口占用方法 [^2]: 端口冲突处理场景 [^3]: Windows 任务管理器操作 [^4]: Windows 命令详解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值