命令行查看端口号被哪个进程占用

转载 2012年01月19日 20:46:57

 

在网络程序的调试过程中,经常发生一些出乎意料的事情,比如创建一个TCP服务失败,这时候往往需要查看系统的网络情况,最常用的网络抓包当然非WireShark模式。但往往很多时候只需要查看某个端口的使用情况,它到底被那个进程(对应PID)占用了,或者你还需要把它Kill掉。如果你在Windows操作系统,你可以使用netstat命令来查询PID,然后可以打开任务管理器,查看这个PID对应的进程名;如果PID没有显示,菜单》查看》选择列》选中PID即可;得知进程后,我们可以将进程杀掉。下面我简单描述一下我所了解的在Windows和Linux系统下处理方式。 (假如我们需要确定谁占用了我们的9010端口)

 

1、Windows平台
在windows控制台窗口下执行:
netstat -nao | findstr "9010"
TCP 127.0.0.1:9010 0.0.0.0:0 LISTENING 3017

 

你看到是PID为3017的进程占用了9010端口,如果进一步你想知道它的进程名称,你可以使用如下命令:

tasklist | findstr "3017"

 

如果你想杀死这个进程,你当然可以用前面描述的那种方法,在任务管理器里把它KILL了,但如果你喜欢高效一点,那么用taskkill命令就可以了。

taskkill /pid 3017

那么这个进程就灰灰湮灭了:)

 

 

2、Linux

如果你是个Linux爱好者,那个这个命令你应该很熟了,

netstat -pan | grep 9010

 

 

如果你稍微仔细一点,你会发现,用的都是netsta命令,事实上,netstat是一个比较通用的网络统计命令,几乎适用于所有现在流行的操作系统,无论是Linux,Window,还是其他Unix,或者Unix-like操作系统,而且用法基本一致。

 

下面是一个对Windows系统中netstat命令行参数的详细解释。

 

格式:

netstat [-a] [-e] [-n] [-o] [-p Protocol] [-b] [-r] [-s] [-v] [Interval]

 

参数说明:

-a 显示所有连接和监听端口。
-n 以数字形式显示地址和端口号。

-o 显示与每个连接相关的所属进程 ID。

 

-p 在Windows系统中,该选项用于指定默认情况的子集。proto 显示 proto 指定的协议的连接;proto 可以是下列协议之一: TCP、UDP、TCPv6 或 UDPv6。

如果与 -s 选项一起使用以显示按协议统计信息,proto 可以是下列协议之一:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。


-b 显示包含于创建每个连接或监听端口的可执行组件。在某些情况下已知可执行组件拥有多个独立组件,并且在这些情况下; 包含于创建连接或监听端口的组件序列被显示。这种情况下,可执行组件名在底部的 [] 中,顶部是其调用的组件,等等,直到 TCP/IP 部分。注意此选项
可能需要很长时间,如果没有足够权限可能失败。

-e 显示以太网统计信息。此选项可以与 -s选项组合使用。


-s 显示按协议统计信息。默认地,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息。

 

-r 显示路由表。

-v 与 -b 选项一起使用时将显示包含于为所有可执行组件创建连接或监听端口的组件。

interval 重新显示选定统计信息,每次显示之间暂停时间间隔(以秒计)。按 CTRL+C 停止重新显示统计信息。如果省略,netstat 显示当前
配置信息(只显示一次)。

 

Windows下使用命令行查看端口号被哪个进程占用

Windows下使用命令行查看端口号被哪个进程占用
  • u013905744
  • u013905744
  • 2016-05-21 13:46:23
  • 4556

C#实现检查指定端口被哪个进程占用

1. 检查当前系统中80端口是否正在被其它进程使用; 2. 如果80端口正在被使用,就找出该进程,并强行结束。 3. 使用C#变成语言实现。 别人问我问题时,我通常会去google一下,帮...
  • a237428367
  • a237428367
  • 2010-10-12 15:35:00
  • 2600

查找机器上的端口号被哪个进程占用

  • 2010年09月14日 15:11
  • 3KB
  • 下载

MAC 下查看某个端口被哪个进程占用及杀进程方法

1,查看端口被哪个程序占用 sudo lsof -i tcp:port 如: sudo lsof -i tcp:8080 2,看到进程的PID,可以将进程杀死。 sudo kill -9 ...
  • libing06081227
  • libing06081227
  • 2015-07-12 13:51:34
  • 896

linux如何查看端口被哪个进程占用

本文介绍linux如何查看端口被哪个进程占用的方法: 1、lsof -i:端口号 2、netstat -tunlp|grep 端口号 都可以查看指定端口被哪个进程占用的情况 ...
  • river131
  • river131
  • 2016-11-30 09:46:14
  • 2088

linux下查看某一端口被哪个进程占用

方法1: lsof命令,即ls open fileslsof -i:端口号例如: 方法2: netstat命令netstat -tunpl | grep 端口号例如:...
  • xiangwanpeng
  • xiangwanpeng
  • 2017-12-14 16:35:22
  • 182

怎么查看unix下被占用的某端口的进程?

工作中遇到
  • hrpzxj
  • hrpzxj
  • 2014-04-16 11:53:32
  • 3389

MAC OSX下查看某个端口被哪个程序占用及杀进程方法

sudo lsof -i : 9000COMMAND   PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAMEjava    61...
  • hellobinfeng
  • hellobinfeng
  • 2014-07-05 13:51:18
  • 13309

window系统 查看端口 被哪个进程占用了

一、在windows命令行窗口下执行:运行--cmd C:\>netstat -aon|findstr "8080"  TCP     127.0.0.1:80       0.0.0.0:0  ...
  • windcloud1986
  • windcloud1986
  • 2016-03-21 10:13:43
  • 6512

查询网络端口被哪个进程/线程占用

背景最近遇到一个问题,就是我去绑定8080端口时,发现errno是93(记不清了),表示已经被人用了,于是想去查是哪个进程或者线程。当然我也搜了代码,发现很多以网址的形式出现,还是从linux 系统去...
  • deyangliu
  • deyangliu
  • 2015-03-15 10:23:48
  • 1654
收藏助手
不良信息举报
您举报文章:命令行查看端口号被哪个进程占用
举报原因:
原因补充:

(最多只允许输入30个字)