一)windows下查看端口占用指令
1)netstat指令NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval] -a            显示所有连接和监听端口。
-b 显示包含于创建每个连接或监听端口的
可执行组件。在某些情况下已知可执行组件
拥有多个独立组件,并且在这些情况下
包含于创建连接或监听端口的组件序列
被显示。这种情况下,可执行组件名
在底部的 [] 中,顶部是其调用的组件,
等等,直到 TCP/IP 部分。注意此选项
可能需要很长时间,如果没有足够权限
可能失败。
-e 显示以太网统计信息。此选项可以与 -s
选项组合使用。
-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 选项用于指定默认情况的子集。
-v 与 -b 选项一起使用时将显示包含于
为所有可执行组件创建连接或监听端口的
组件。
interval 重新显示选定统计信息,每次显示之间
暂停时间间隔(以秒计)。按 CTRL+C 停止重新
显示统计信息。如果省略,netstat 显示当前
配置信息(只显示一次)
2)实际操作
A)查看具体某个端口的占用信息
在windows命令行窗口下执行:
C:\>netstat -aon|findstr ":67"/C:\>netstat -aon|findstr :67
TCP    127.0.0.1:67      0.0.0.0:0              LISTENING      315
意思:端口67被进程号为315的进程占用
B)查看指定进程的信息
斗鱼米希尔在windows命令行窗口下执行:
C:\>tasklist|findstr "315"
< 315 Console 0 16,064 K
这样的话,可以看清楚时知道占用已知端口的进程。并根据实际需要将其关闭,释放端口号。
C)显示进程信息
c:\> tasklist /fi "IMAGENAME "
This command returned the following information:
Image Name PID Session Name Session# Mem Usage
< 3044 RDP-Tcp#9 0 2,072 K ========================================================
c:\> tasklist /fi "PID eq 2500"
Image Name PID Session Name Session# Mem Usage
< 2500  RDP-Tcp#9      0          5,584 K3)findstr
是 Windows 自带的一个实用程序,用来查文件中的字符串,支持正则表达式。
findstr strings 要查的文字。4)tasklist
是一个用来显示运行在本地或远程计算机上的所有进程的命令行工具,带有多个执行参数。它的使用格式为:
TASKLIST [/S system [/U username [/P [password]]]]
梁继远
[/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
参数列表:
/S system 指定连接到的远程系统。
/U [domain\]user 指定使用哪个用户执行这个命令。
/P [password] 为指定的用户指定密码。
/M [module] 列出调用指定的 DLL 模块的所有进程。/SVC 显示每个进程中的服务。/V 指定要显示详述信息。
/FI filter 显示一系列符合筛选器指定的进程。
/FO format 指定输出格式,有效值: "TABLE"、"LIST"、"CSV"。
/NH 指定栏标头不应该在输出中显示。网红宏楠死了
只对 "TABLE" 和 "CSV" 格式有效。
-------------------------------------------------
/FI filter 显示一系列符合筛选器指定的进程。
使用筛选器查指定的进程
在命令提示符下输入:
“TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running“
这样就列出了系统中正在运行的非“SYSTEM“状态的所有进程。
其中“/FI“为筛选器参数,” ne“和”eq“为关系运算符”不相等“和”相等“。
怎么查看某一个端口状态
说到端口,这确实是个老话题,但一切都是从它开始的,不得不说。何谓端口,打个比方,你住在一座房子里,想让别人来拜访你,得在房子上开个大门,你养了个可爱的小猫,为了它的进出,专门给它修了个小门,为了到后花园,又开了个后门……所有这些为了进到这所房子里而开的门叫端口,这些为了别人进来而开的端口称它为“服务端口”。
茴香菜
你要拜访一个叫张三的人,张三家应该开了个允许你来的门--服务端口,否则将被拒之门外。去时,
首先你在家开个“门”,然后通过这个“门”径直走进张三家的大门。为了访问别人而在自己的房子开的“门”,称为“客户端口”。它是随机开的而且是主动打开的,访问完就自行关闭了。它和服务端口性质是不一样的,服务端口是开了个门等着别人来访问,而客户端口是主动打开一个门去打开别人的门,这点一定要清楚。
下面从专业的角度再简单解释一下端口的概念。联网的计算机要能相互通信必须用同一种协议,协议就是计算机通信的语言,计算机之间必须说一种语言才能彼此通信,Internet的通用语言是TCP/TP,它是一组协议,它规定在网络的第四层运输层有两种协议TCP、UDP。端口就是这两个协议打开的,端口分为源端口和目的端口,源端口是本机打开的,目的端口是正在和本机通信的另一台计算机的端口,源端口分主动打开的客户端口和被动连接的服务端口两种。在Internet中,你访问一个网站时就是在本机开个端口去连网站服务器的一个端口,别人访问你时也是如此。也就是说计算机的通讯就像互相串门一样,从这个门走进哪个门。
当装好系统后默认就开了很多“服务端口”。如何知道自己的计算机系统开了那些端口呢?这就是下面要说的。
二)、查看端口的方法
1、命令方式
下面以Windows XP为例看看新安装的系统都开了那些端口,也就是说都预留了那些门,不借助任何工具来查看端口的命令是netstat,方法如下:
a、在“开始”的“运行”处键入cmd,回车
b、在dos命令界面,键入netstat -na,图2显示的就是打开的服务端口,其中Proto
代表协议,该图中可以看出有TCP和UDP两种协议。Local Address代表本机地址,该地址冒号后的数字就是开放的端口号。Foreign Address代表远程地址,如果和其它机器正在通信,显示的就是对方的地址,State代表状态,显示的LISTENING表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开了,但此时还没有人进来。以第一行为例看看它的意思。
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
这一行的意思是本机的135端口正在等待连接。注意:只有TCP协议的服务端口才能处于LISTENING状态。
图1 用netstat命令查看端口状态
2、用TCPView工具
为了更好的分析端口,最好用TCPView这个软件,该软件很小只有93KB,而且是个绿软件,不用安装。
图3是TCPView的运行界面。第一次显示时字体有些小,在“Options”->“Font”中将字号调大即可。TCPView显示的数据是动态的。图3中Local Address显示的就是本机开放的哪个端口(:号后面的数字),TCPView可以看出哪个端口是由哪个程序发起的。从图3可以看出445、139、1025、135、5000等端口是开放的,445、139等端口都是system发起的,135等都是SVCHOST发起的。
图2 用TCPView查看端口状态
三)、研究端口的目的
1、知道本机开了那些端口,也就是可以进入到本机的“门”有几个,都是谁开的?
2、目前本机的端口处于什么状态,是等待连接还是已经连接,如果是已经连接那就要特别注意看连接是个正常连接还是非正常连接(木马等)?
3、目前本机是不是正在和其它计算机交换数据,是正常的程序防问到一个正常网站还是访问到一个陷阱?
当你上网时就是本机和其它机器传递数据的过程,要传递数据必须要用到端口,即使是有些非常高明的木马利用正常的端口传送数据也不是了无痕迹的,数据在开始传输、正在传输和结束传输的不同阶段都有各自的状态,要想搞明白上述3个问题,就必须清楚端口的状态变化。下面结合实例先分析服务端口的状态变化。只有TCP协议才有状态,UDP协议是不可靠传输,是没有状态的。
四)、服务端口的状态变化
先在本机(IP地址为:192.168.1.10)配置FTP服务,然后在其它计算机(IP地址为:192.168.1.1)访问FTP服务,从TCPView看看端口的状态变化。
下面黑体字显示的是从TCPView中截取的部分。
1、LISTENING状态
FTP服务启动后首先处于侦听(LISTENING)状态。
State显示是LISTENING时表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开的,但还没有人进来。
玩游戏电脑配置从TCPView可以看出本机开放FTP的情况。它的意思是:程序开放了21端口,FTP默认的端口为21,可见在本机开放了FTP服务。目前正处于侦听状态。
<:1260 TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
2、ESTABLISHED状态
现在从192.168.1.1这台计算机访问一下192.168.1.10的FTP服务。在本机的TCPView可以看出端口状态变为ESTABLISHED。
ESTABLISHED的意思是建立连接。表示两台机器正在通信。
下面显示的是本机的FTP服务正在被192.168.1.1这台计算机访问。
<:1260 TCP 192.168.1.10:21 192.168.1.1:3009 ESTABLISHED
注意:处于ESTABLISHED状态的连接一定要格外注意,因为它也许不是个正常连接。后面要讲到这个问题。
3、 TIME_WAIT状态
现在从192.168.1.1这台计算机结束访问192.168.1.10的FTP服务。在本机的TCPView可以看出端口状态变为TIME_WAIT。
TIME_WAIT的意思是结束了这次连接。说明21端口曾经有过访问,但访问结束了。
[System Process]:0 TCP 192.168.1.10:21 192.168.1.1:3009 TIME_WAIT
4、小技巧陈思成背景
a、可以telnet一个开放的端口,来观察该端口的变化。比如看1025端口是开放的,在命令状态(如图1运行cmd)运行:
telnet 192.168.1.10 1025
b、从本机也可以测试,只不过显示的是本机连本机
c、在Tcpview中双击连接可看出程序的位置,右键点击该连接,选择End Process即可结束该连接
五)、客户端口的状态变化
客户端口实际上就是从本机访问其它计算机服务时打开的源端口,最多的应用是上网,下面就以访问baidu为例来看看端口开放以及状态的变化情况。
1、SYN_SENT状态
SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED,此时SYN_SENT 状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多SYN_SENT 的原因。
下面显示的是本机连接baidu网站时的开始状态,如果你的网络正常的,那很快就变为ESTABLISHED的连接状态。
IEXPLORE.EXE:2928 TCP 192.168.1.10:1035 202.108.250.249:80 SYN_SENT
2、ESTABLISHED状态
下面显示的是本机正在访问baidu网站。如果你访问的网站有许多内容比如访问sky,那会发现一个地址有许多ESTABLISHED,这是正常的,网站中的每个内容比如图片、flash等都要单独建立一个连接。看ESTABLISHED状态时一定要注意是不是IEXPLORE.EXE程序(IE)发起的连接,如果是EXPLORE.EXE之类的程序发起的连接,那也许是你的计算机中了木马了。