windows 查看某个端口被哪一个进程占用。

本文介绍了一种在Windows平台上查询端口占用情况的简便方法,包括查看所有端口占用情况及特定端口占用情况,并提供了释放端口占用的步骤。

开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"

        经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用

假如我们需要确定谁占用了我们的9050端口

1、Windows平台
在windows命令行窗口下执行:
1.查看所有的端口占用情况

C:\>netstat -ano

  协议    本地地址                     外部地址               状态                   PID

  TCP    127.0.0.1:1434         0.0.0.0:0              LISTENING       3236
  TCP    127.0.0.1:5679         0.0.0.0:0              LISTENING       4168
  TCP    127.0.0.1:7438         0.0.0.0:0              LISTENING       4168
  TCP    127.0.0.1:8015         0.0.0.0:0              LISTENING       1456
  TCP    192.168.3.230:139      0.0.0.0:0              LISTENING       4
  TCP    192.168.3.230:1957     220.181.31.225:443     ESTABLISHED     3068
  TCP    192.168.3.230:2020     183.62.96.189:1522     ESTABLISHED     1456
  TCP    192.168.3.230:2927     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2929     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2930     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2931     117.79.91.18:80        ESTABLISHED     4732

 

2.查看指定端口的占用情况
C:\>netstat -aon|findstr "9050"

  协议    本地地址                     外部地址               状态                   PID

  TCP    127.0.0.1:9050         0.0.0.0:0              LISTENING       2016

P: 看到了吗,端口被进程号为2016的进程占用,继续执行下面命令: (也可以去任务管理器中查看pid对应的进程)

3.查看PID对应的进程
C:\>tasklist|findstr "2016"

 映像名称                       PID 会话名              会话#       内存使用
 ========================= ======== ================
  tor.exe                     2016 Console                 0     16,064 K

P:很清楚吧,tor占用了你的端口。

 

4.结束该进程

C:\>taskkill /f /t /im tor.exe

 

 

其他不懂的用 help吧~

<think>我们有两个系统:Windows和Linux,需要分别说明如何查看端口被哪个进程占用。根据引用[1]和引用[3],在Linux中可以使用以下方法:1.使用fuser命令:fuser-v端口号/tcp或fuser-v端口号/udp2.使用lsof命令:lsof-i:端口号3.使用netstat命令:netstat-antulp|grep端口号4.使用ss命令:ss-antulp|grep端口号根据引用[2],在Windows中可以使用:1.使用netstat命令:netstat-ano|findstr端口号2.然后根据得到的PID,使用任务管理器查看进程,或者使用tasklist命令:tasklist|findstrPID下面分别详细说明:###Linux系统####方法1:使用`fuser`命令```bashfuser-v80/tcp#查看TCP端口80的占用情况```-输出会显示进程的PID、用户以及命令-需要root权限才能查看所有进程####方法2:使用`lsof`命令```bashlsof-i:80#查看端口80的占用情况```-输出示例:```COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEnginx12345root6uIPv41234560t0TCP*:http(LISTEN)```####方法3:使用`netstat`命令```bashnetstat-tunlp|grep:80```-参数说明:-`-t`:TCP端口-`-u`:UDP端口-`-n`:数字形式显示-`-l`:仅显示监听套接字-`-p`:显示进程标识符和程序名称####方法4:使用`ss`命令(更现代的替代)```bashss-tunlp|grep:80```-参数同上,但`ss`比`netstat`更快>**注意**:以上命令可能需要root权限才能看到所有进程信息。###Windows系统####方法1:使用`netstat`和`tasklist`1.查找占用端口进程PID:```cmdnetstat-ano|findstr:80```-输出示例:```TCP0.0.0.0:800.0.0.0:0LISTENING1234```-最后一列就是PID(例如1234)2.根据PID查找进程名称:```cmdtasklist|findstr1234```-输出示例:```nginx.exe1234Services016,960K```####方法2:使用任务管理器1.打开任务管理器(Ctrl+Shift+Esc)2.切换到“详细信息”选项卡3.根据PID列找到对应进程(如果看不到PID列,右键点击列标题,勾选“PID”)###通用步骤总结|系统|步骤||--------|----------------------------------------------------------------------||Linux|1.使用上述任一命令查找占用端口的PID<br>2.根据PID用`ps-p<PID>`查看进程详情||Windows|1.用`netstat-ano`查找PID<br>2.用`tasklist`或任务管理器查看进程|---###示例:Linux中查找80端口占用```bash#方法1:lsofsudolsof-i:80#方法2:netstatsudonetstat-tunlp|grep:80#方法3:sssudoss-tunlp|grep:80```###示例:Windows中查找80端口占用```cmdREM查找80端口占用的PIDnetstat-ano|findstr:80REM根据PID查找进程名tasklist|findstr<PID>```>**注意**:在Windows中,如果遇到权限问题,请以管理员身份运行命令提示符。---§§相关问题§§1.如何查看进程打开了哪些端口?2.如何释放被占用端口?3.Linux中`netstat`和`ss`命令有什么区别?4.Windows中如何结束占用端口进程?</think>### 如何查看端口被哪个进程占用Windows/Linux) #### **Linux 系统方法** 1. **使用 `lsof` 命令**(推荐) ```bash lsof -i :端口号 ``` **示例**(查看 80 端口): ```bash lsof -i :80 ``` **输出**: ``` COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1234 root 6u IPv4 12345 0t0 TCP *:http (LISTEN) ``` - `PID` 列显示进程 ID,`COMMAND` 列显示进程名称[^1][^3] 2. **使用 `fuser` 命令** ```bash fuser -v 端口号/tcp ``` **示例**: ```bash fuser -v 80/tcp ``` 3. **使用 `netstat` 或 `ss` 命令** ```bash netstat -tulnp | grep :端口号 # 或 ss -tulnp | grep :端口号 ``` **示例**: ```bash ss -tulnp | grep :80 ``` 4. **定位进程详细信息** ```bash ps -aux | grep PID # 根据 PID 查看进程 ls -l /proc/PID/cwd # 查看进程工作目录[^3] ``` --- #### **Windows 系统方法** 1. **查找占用端口的 PID** ```cmd netstat -ano | findstr :端口号 ``` **示例**(查看 8080 端口): ```cmd netstat -ano | findstr :8080 ``` **输出**: ``` TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5678 ``` - 最后一列 `5678` 是进程 PID[^2] 2. **根据 PID 查找进程名** ```cmd tasklist | findstr PID ``` **示例**: ```cmd tasklist | findstr 5678 ``` **输出**: ``` javaw.exe 5678 Console 1 1,036 K ``` 3. **使用任务管理器** - 按 `Ctrl+Shift+Esc` 打开任务管理器 - 在 "详细信息" 选项卡中,根据 PID 查找进程 --- ### 端口冲突解决方案 当出现 `address already in use` 错误时: ```bash kill -9 PID # Linux/Mac 终止进程 taskkill /PID PID /F # Windows 终止进程 ``` --- ### 对比总结 | 功能 | Linux 命令 | Windows 命令 | |---------------------|-------------------------------|-------------------------------| | **查看端口占用** | `lsof -i :端口` / `ss -tulnp` | `netstat -ano \| findstr :端口` | | **根据 PID 查进程** | `ps -aux \| grep PID` | `tasklist \| findstr PID` | | **终止进程** | `kill -9 PID` | `taskkill /PID PID /F` | > **注意**: > - Linux 需要权限:普通用户可能需 `sudo` > - 部分命令需安装:`lsof`(Linux)、`net-tools`(Linux) > - 端口号需替换为实际数字(如 80, 3306, 8080) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值