windows下通过端口查看其进程程序
2014-11-26 16:13:08 阿炯

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

netstat -a -n -o -b,这样就可以看到哪个程序在使用端口了。其中:

-a:显示所有连接和监听端口;
-n:以数字形式显示;
-o:显示进程;
-b:这个就是显示程序名。加上这个参数运行有点慢,显示可执行组件名。

可以通过netstat /?查看更全的帮助信息,后文将有详细的使用方法。本站有Linux下网络连接信息查看:网络状态统计-Netstat

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


我们需要确定谁占用了我们的80端口
在windows命令行窗口下执行:
C:\>netstat -aon|findstr "80"
 TCP  0.0.0.0:19780  0.0.0.0:0     LISTENING     1950
 TCP  10.72.224.5:2558    96.17.109.8:80     ESTABLISHED   1950
 TCP  10.72.224.5:2757    60.210.176.209:80  TIME_WAIT     0
 TCP  10.72.224.5:3956    125.46.1.234:80    ESTABLISHED   1950
 TCP  10.72.224.5:3959    125.46.1.234:80    ESTABLISHED   1950
 UDP  0.0.0.0:2280   *:*        3700
 
或直接查看侦听的信息:
netstat -aon |findstr "LISTENING"

看到了吗,端口被进程号为1950的进程占用,继续执行下面命令:
C:\>tasklist|findstr “1950″
avp.exe      1950 Console    0   37,680 K

很清楚吧,avp 卡巴监听80端口,调整卡巴网络监听设置。如果你的80端口被其他程序占用,杀掉或者调整端口。

附:netstat的语法

C:\Users\freeoa>netstat /?
显示协议统计和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]
 -a 显示所有连接和侦听端口。
 -b 显示在创建每个连接或侦听端口时涉及的可执行程序。在某些情况下,已知可执行程序承载多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。此情况下,可执行程序的名称位于底部[]中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且在您没有足够权限时可能失败。
 -e 显示以太网统计。此选项可以与 -s 选项结合使用。
 -f 显示外部地址的完全限定域名(FQDN)。
 -n 以数字形式显示地址和端口号。
 -o 显示拥有的与每个连接关联的进程 ID。
 -p proto   显示 proto 指定的协议的连接;proto 可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选项一起用来显示每个协议的统计,proto 可以是下列任何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或 UDPv6。
 -r 显示路由表。
 -s 显示每个协议的统计。默认情况下,显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6的统计;-p 选项可用于指定默认的子网。
 -t 显示当前连接卸载状态。
 interval 重新显示选定的统计,各个显示间暂停的间隔秒数。按 CTRL+C 停止重新显示统计。如果省略,则 netstat将打印当前的配置信息一次。