如何查看端口号被谁用

生活 2019-02-24 21:53:07 6337

本文收集整理关于如何查看端口号被谁用的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:如何查看端口号是否被占用
  • Q2:如何查看端口号被哪个进程占用
  • Q3:计算机如何查看USB端口号?
  • Q4:如何查看端口号被哪个程序占用了
  • Q1:如何查看端口号是否被占用

    在网络程序的调试过程中,经常发生一些出乎意料的事情,比如创建一个TCP服务失败,这时候往往需要查看系统的网络情况,最常用的网络抓包当然非WireShark模式。但往往很多时候只需要查看某个端口的使用情况,它到底被那个进程(对应PID)占用了,或者你还需要把它Kill掉。如果你在Windows操作系统,你可以使用netstat命令来查询PID,然后可以打开任务管理器,查看这个PID对应的进程名;如果PID没有显示,菜单》查看》选择列》选中PID即可;得知进程后,我们可以将进程杀掉。下面我简单描述一下我所了解的在Windows和Linux系统下处理方式。(假如我们需要确定谁占用了我们的9010端口) 1、Windows平台 在windows控制台窗口下执行: netstat -naofindstr 9010 TCP 127.0.0.1:9010 0.0.0.0:0 LISTENING 3017 你看到是PID为3017的进程占用了9010端口,如果进一步你想知道它的进程名称,你可以使用如下命令: tasklistfindstr 3017 如果你想杀死这个进程,你当然可以用前面描述的那种方法,在任务管理器里把它KILL了,但如果你喜欢高效一点,那么用taskkill命令就可以了。 taskkill /pid 3017 那么这个进程就灰灰湮灭了:)2、Linux 如果你是个Linux爱好者,那个这个命令你应该很熟了, netstat -pangrep 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 显示当前 配置信息(只显示一次)。

    Q2:如何查看端口号被哪个进程占用

    1)使用lsof命令
    lsof是一个非常强大的linux工具,她被用来查找哪些程序使用了那些文件。在linux系统下,基本上所有的东西都可以被当作文件来用。socket当然也是一种文件了。所以lsof可以用来查找谁用了某一个端口。具体方法:
    lsof -i :port_numbergrep "(LISTEN)"
    -i是用来查找和网络相关的文件,":"号是必须的,它是标志你查找的是一个端口。port_number就是你要查找的端口号,譬如你要查找是否 有程序占用了oracle的监听端口1521,就可以使用lsof -i :1521 |grep "(LISTEN)"。如果有程序已经占用了,那么下面打印的第二个字段就是该程序的进程id,第一个字段是进程的名字。
    如果只有losf -i :port_number可能会查到很多应用程序,但这些程序实际并没有占用你指定的端口,这些端口只是连接到本机器或者别的机器的该端口。所以要grep "(LISTEN)“,因为一个端口只可能被一个程序占用的,所以这种方法是可靠的。
    2)使用netstat 命令
    大家一定对这个命令比较熟悉了,可能你从没有想到用到来查找哪一个程序的占用了指定的端口。但是netstat -an 的确提供了这种功能。所以有问题了一定要想到先去查找man手册,不过说实话,某些man手册写得让中国人看不懂,那没有办法了,就googe或者 baidu一下吧。
    执行man netstat命令,你会发现netstat 提供了-p的选项,这个选项的功能是告诉你哪个程序占用了该端口,但是她提供的形式比较古怪是以pid/process_name提供的。pid当然 是进程id了,process_name是进程的命令,中间以/号分隔。
    和上面的原因一样,我们只查找listen的端口,netstat 给我们提供了-l的选项,这个选项不是默认的选项。
    下面以1521端口来看怎么查找到该程序,我们使用下面的命令:
    netstat -lnp|awk BEGIN{prt=":1521$"}{if ($4 ~ prt) print $0}
    在这里使用awk来匹配第4个字段的模式是为了避免误判。

    Q3:计算机如何查看USB端口号?

    1

    右键-我的电脑-管理-设备管理(这个时候没有在USB上插上手机或者网卡之类的这里是没有显示的):

    2

    然后把手机或者USB设备插上,这个时候的变化如下面:

    3

    点击端口,这个时候的USB端口号就可以看出来了,此时电脑的端口号用的是16号端口。

    4

    上面的调制解调器端口是可以连接此端口进行上网的(这个端口号需要在用的的软件里面看,一般情况下,端口号和调制解调器端口号是连续的):

    __________________________________________

    本文摘自百度经验

    经验内容仅供参考,并受版权保护。

    本条经验由wangjiajixing编写

    wWW.YijitAO.CO★M

    Q4:如何查看端口号被哪个程序占用了

    参考如下内容:
    eg:查找具体的“8080”端口是否被占用,被何程序占用
    在 “ 命令提示符 ” 中输入 netstat -aon|findstr "8080" ,如果有信息显示,则表明有程序占用了“8080”这个端口,反之则没有任何程序占用这个端口
    以此为例:TCP127.0.0.1:80800.0.0.0:0LISTENING20444、以上表明端口被进程号为 20444的进程占用,继续执行以下命令:tasklist|findstr "20444"控制台出现了以下内容:
    java.exe20444 Console043,288 K
    看到了吧,java.exe占用了这个8080的端口号。

    相关文章
    淘宝怎么查看我的追评2019-01-12
    微信如何查看年度报告2019-01-12
    怎么查看window10版本2019-01-12
    word 文档批注怎么查看2019-01-12
    如何查看微信授权登录2019-01-14
    怎样查看淘宝店铺地址2019-01-15
    怎么查看淘宝消费总额2019-01-18
    酷狗相似歌曲怎么查看2019-01-19
    手机如何查看qq在哪里登陆过2019-01-21
    怎么查看自己手机号码2019-01-21