根据port端口号查找process进程(服务)或者根据服务名字查找端口号

根据port端口号查找process进程(服务)或者根据服务名字查找端口号html

首先介绍根据服务名字查找端口:mysql

控制面板->管理工具->服务,好比已经开启的服务 mysql5_pn,右键属性,能够查看到它的服务名字,显示名字,和对应的进程exe,咱们平时在cmd中的命令net start service之类的命令这个service就是服务名字,而tasklist命令查找的是进程名字,这时候咱们找到mysql5_pn对应的进程名字是 mysqld-nt,而后使用tasklist |findstr mysqld-nt,就会列出对应的信息,咱们找到pid,好比说是3372,而后敲netstat -aon |findstr 3372,而后就会列出含有3372字符串的一些进程,同时显示了端口,这样就从一个服务名字来得到它的端口号了。sql

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

 

  1.  Windows平台

:在windows控制台窗口下执行promise

netstat -nao | findstr "9010"
TCP 127.0.0.1:9010 0.0.0.0:0 LISTENING 3017
网络

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

tasklist | findstr "3017"spa

若是你想杀死这个进程,你固然能够用前面描述的那种方法,在任务管理器里把它KILL了,但若是你喜欢高效一点,那么用taskkill命令就能够了。操作系统

taskkill /pid 3017命令行

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

 

  1. :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、IPv六、ICMP、ICMPv六、TCP、TCPv六、UDP 或 UDPv6。


-b 显示包含于建立每一个链接或监听端口的可执行组件。在某些状况下已知可执行组件拥有多个独立组件,而且在这些状况下; 包含于建立链接或监听端口的组件序列被显示。这种状况下,可执行组件名在底部的 [] 中,顶部是其调用的组件,等等,直到 TCP/IP 部分。注意此选项
可能须要很长时间,若是没有足够权限可能失败。
-e 显示以太网统计信息。此选项能够与 -s选项组合使用。

-s 显示按协议统计信息。默认地,显示 IP、IPv六、ICMP、ICMPv六、TCP、TCPv六、UDP 和 UDPv6 的统计信息。

-r 显示路由表。 -v 与 -b 选项一块儿使用时将显示包含于为全部可执行组件建立链接或监听端口的组件。 interval 从新显示选定统计信息,每次显示之间暂停时间间隔(以秒计)。按 CTRL+C 中止从新显示统计信息。若是省略,netstat 显示当前 配置信息(只显示一次)。

相关文章
相关标签/搜索