文档章节

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

风中小筑
 风中小筑
发布于 2016/05/22 03:48
字数 1166
阅读 15
收藏 0

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

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

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

在网络程序的调试过程中,经常发生一些出乎意料的事情,比如创建一个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

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

 

  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、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 显示当前
配置信息(只显示一次)。

本文转载自:

共有 人打赏支持
风中小筑
粉丝 0
博文 38
码字总数 2908
作品 0
龙岩
私信 提问
java程序监控tomcat实现项目宕机自动重启并发送邮件提醒

最近由于老项目频繁挂掉,由于项目经过多批人之手,短时间难以定位问题,所以只好写一个监控程序。时间比较紧半天时间,而且水平有限大神勿喷,有好的方法还请赐教。1、问题描述:分两种情况...

秋雨_梧桐
2017/10/21
0
0
Java 开发应掌握的Linux常用命令(一)

Java开发,由于其很多应用都是发布在Linux操作系统上,因此了解、掌握一些常用的Linux命令对与提高Java开发人员的工作效率是很有必要的。 1、 如何登陆到Linux机器上 ·习惯使用命令操作的开...

小矜持小得
2015/09/23
60
0
根据端口号查找服务,根据进程查找端口,查找开放的所有端口

系统信息 根据端口号22查找对应的服务名称 根据进程名sshd查找对应的端口号 查找一台服务器开放的所有端口 可能要花费一点时间 ,不妨把1-65535改为1-100,再尝试一下 注:读者可根据自己的需...

Linux_yk
2018/03/11
0
0
listener.ora/sqlnet.ora/tnsnames.ora配置文件详解

归纳的很好,记之。 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下。 英文说明: The sqlnet.ora is an optional file...

旺旺的钥匙
2012/06/20
0
0
windous查看端口占用并kill掉占用进程

在Windows下启动程序时有时会遇到端口被占用的情况,由于一个端口同时只能运行一个进程,所以要想启动新的程序就要先把占用该端口的进程给kill掉,具体的命令分为以下三步, 以杀死占用了80端...

覃光林
2018/09/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

取变量的地址赋值给另一个变量,C通过,C++编译出错

取变量的地址赋值给另一个变量,C通过。正常运行,C++编译出错。 代码如下: #include <stdio.h>int main(int argc, char *argv[]){int x = 3;int *p = &x;int y = p;/*c ...

SamXIAO
51分钟前
1
0
利用隐写术实施攻击

尽管隐写术是一种低频攻击途径,但网络犯罪分子已经开始利用它结合社交媒体的普遍性和快速传播性来传递恶意有效负载。 低调但有效的隐写技术虽然是旧把戏,但将代码隐藏在看似正常的图像中,...

Linux就该这么学
51分钟前
2
0
YII2的乐观锁和悲观锁

乐观锁与悲观锁¶ Web应用往往面临多用户环境,这种情况下的并发写入控制, 几乎成为每个开发人员都必须掌握的一项技能。 在并发环境下,有可能会出现脏读(Dirty Read)、不可重复读(Unrep...

echojson
57分钟前
2
0
UCOS线程切换原理

黑客画家
今天
3
0
最牛Java架构师进阶路线(年薪80W)

1、源码分析专题 详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美、提高核心竞争力。 帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。知其然,并知其...

别打我会飞
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部