题外话:其实从事IT这个行业,多多少少都要涉及到一些DOS相关命令,特别是有涉及到网络、服务器、客户端等相关的,就需要用到一些命令来帮助我们进行问题的分析还有排查,当我们把一些命令搞熟悉了,我们就可以根据实际的应用场景结合相应的命令来分析相关问题,近期我会定期整理相关IT从业人员必备网络调试命令,希望大家在工作或者生活中都能实际用到,觉得讲得还撮合的过去的,请关注一波,三克油。

1 netstat 功能说明

Netstat命令可以帮助网络管理员了解网络的整体使用情况。它可以显示当前正在活动的网络连接的详细信息,例如显示网络连接、路由表和网络接口信息,可以统计目前总共有哪些网络连接正在运行。

利用命令参数,命令可以显示所有协议的使用状态,这些协议包括TCP协议、UDP协议以及IP协议等,另外还可以选择特定的协议并查看其具体信息,还能显示所有主机的端口号以及当前主机的详细路由信息。

命令格式:

netstat [-r] [-s] [-n] [-a]

参数含义:

-r 显示本机路由表的内容;

-s 显示每个协议的使用状态(包括TCP协议、UDP协议、IP协议);

-n 以数字表格形式显示地址和端口;

-a 显示所有主机的端口号。

2 应用场景:Windows下如何查看某个端口被谁占用?

(1)查看该端口被那个PID所占用;

方法一:有针对性的查看端口,使用命令

Netstat –ano|findstr 端口号,如图,最后一列为PID。图中的端口号为3306,所对应的PID为7272。

图1

方法二:直接查看所有端口的信息 netstat -ano

(2)查到此端口为3306之后,我们可以根据后面的pid值(假设pid为7272),查下哪个进程开启了这个端口,有两个方法:

方法一:tasklist |findstr 7272,直接查找该进程号对应的进程名称,如图所示,是mysqld.exe这个进程创建的3306端口;

图2 tasklist

方法二:打开任务管理器,查看pid为“7272”的进程名,若任务管理器不显示PID值,可以打开任务管理器---选项---选择列,勾选pid即可。

图3任务管理器

(3)了解到是哪个进程开启的端口,若要结束掉该进程的话,可以任务管理器那边直接结束又或者通过dos命令:taskkill /f /t /im mysqld.exe 。

3 知识拓展

以上我们讲到的是常用的命令用法,但是实际上该功能还可以用于很多应用场景,比如可以查下电脑是否有中木马之类的;假设我这台电脑没有打开任何程序,然后发现电脑的网络数据很大,这时候应该怎么排查呢?

举个例子:假设用户打开任务管理器的时候,发现电脑的网络数据量很大,如图所示:

图4

从以上图我们可以发现,进程system,pid为4,网络数据有4.7m多(其实并不是很大,我们只是用来举个例子),这时候我们电脑并没有开启任何的进程,应该不至于产生这么大的数据量;接下来我们用netstat -ano 查看下当前pid值为“4”的连接情况,如图所示:

图5

我们发现,本地电脑有开启了这4个端口,然后访问了192.168.251.2服务器的445端口,我们知道445端口一般是用于共享连接的,也有可能是木马连接,所以我们在dos执行下net use命令,结果如图所示:

图6

发现是本地有个映射盘,所以可能产生了数据,把映射盘关闭掉或者执行net use */del,将当前的连接都清空之后,再观察看看是否还会自动产生连接,如果还会,那可能还得再查查,是本地的哪几个端口连接了445;可以再利用netstat -ano |findstr (端口号),直接查下是哪个进程产生的端口然后发起连接;

其实也可以通过TCPView工具,直接分析当前的连接情况,这个工具直接运行下,更加直观,如图所示:

图7

查看原文 >>
相关文章