windows下用cmd命令netstat查看系统端口使用情况

转:https://www.cnblogs.com/lvxiuquan/archive/2012/08/22/2650507.html

开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列" 。

经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用 。

假如我们需要确定谁占用了我们的9050端口 

1、Windows平台 
在windows命令行窗口下执行: 
1.查看所有的端口占用情况

C:\>netstat -ano

  协议    本地地址                     外部地址               状态                   PID

  TCP    127.0.0.1:1434         0.0.0.0:0              LISTENING       3236
  TCP    127.0.0.1:5679         0.0.0.0:0              LISTENING       4168
  TCP    127.0.0.1:7438         0.0.0.0:0              LISTENING       4168
  TCP    127.0.0.1:8015         0.0.0.0:0              LISTENING       1456
  TCP    192.168.3.230:139      0.0.0.0:0              LISTENING       4
  TCP    192.168.3.230:1957     220.181.31.225:443     ESTABLISHED     3068
  TCP    192.168.3.230:2020     183.62.96.189:1522     ESTABLISHED     1456
  TCP    192.168.3.230:2927     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2929     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2930     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2931     117.79.91.18:80        ESTABLISHED     4732

 

2.查看指定端口的占用情况
C:\>netstat -aon|findstr "9050"

  协议    本地地址                     外部地址               状态                   PID

  TCP    127.0.0.1:9050         0.0.0.0:0              LISTENING       2016

P: 看到了吗,端口被进程号为2016的进程占用,继续执行下面命令: (也可以去任务管理器中查看pid对应的进程)

3.查看PID对应的进程
C:\>tasklist|findstr "2016"

 映像名称                       PID 会话名              会话#       内存使用
 ========================= ======== ================
  tor.exe                     2016 Console                 0     16,064 K 

P:很清楚吧,tor占用了你的端口。

 

4.结束该进程

C:\>taskkill /f /t /im tor.exe

其他不懂的用 help吧~

netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。 
该命令的一般格式为: 

netstat [选项] 

命令中各选项的含义如下: 

-a 显示所有socket,包括正在监听的。 
-c 每隔1秒就重新显示一遍,直到用户中断它。 
-i 显示所有网络接口的信息,格式同“ifconfig -e”。 
-n 以网络IP地址代替名称,显示出网络连接情形。 
-r 显示核心路由表,格式同“route -e”。 
-t 显示TCP协议的连接情况。 
-u 显示UDP协议的连接情况。 
-v 显示正在进行的工作。 

-A 显示任何关联的协议控制块的地址。主要用于调试 
-a 显示所有套接字的状态。在一般情况下不显示与服务器进程相关联的套接字 
-i 显示自动配置接口的状态。那些在系统初始引导后配置的接口状态不在输出之列 
-m 打印网络存储器的使用情况 
-n 打印实际地址,而不是对地址的解释或者显示主机,网络名之类的符号 
-r 打印路由选择表 
-f address -family对于给出名字的地址簇打印统计数字和控制块信息。到目前为止,唯一支持的地址簇是inet 
-I interface 只打印给出名字的接口状态 
-p protocol-name 只打印给出名字的协议的统计数字和协议控制块信息 
-s 打印每个协议的统计数字 
-t 在输出显示中用时间信息代替队列长度信息。 

netstat命令的列标题 
Name 接口的名字 
Mtu 接口的最大传输单位 
Net/Dest 接口所在的网络 
Address 接口的IP地址 
Ipkts 接收到的数据包数目 
Ierrs 接收到时已损坏的数据包数目 
Opkts 发送的数据包数目 
Oeers 发送时已损坏的数据包数目 
Collisions 由这个接口所记录的网络冲突数目 

netstat的一些常用选项: 
netstat -s--本选项能够按照各个协议分别显示其统计数据。如果你的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么你就可以用本选项来查看一下所显示的信息。你需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。 
netstat -e--本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。 
netstat -r--本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的 信息。除了显示有效路由外,还显示当前有效的连接。 
netstat -a--本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。 
bnetstat -n--显示所有已建立的有效连接。 
« AWKPHP经典 »netstat -an中state含义 


netstat -an中state含义 
LISTEN:侦听来自远方的TCP端口的连接请求 
SYN-SENT:再发送连接请求后等待匹配的连接请求 
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认 
ESTABLISHED:代表一个打开的连接 
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认 
FIN-WAIT-2:从远程TCP等待连接中断请求 
CLOSE-WAIT:等待从本地用户发来的连接中断请求 
CLOSING:等待远程TCP对连接中断的确认 
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认 
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认 
CLOSED:没有任何连接状态 
其实可以man netstat , 看其中的stat部分解释 
State 
The state of the socket. Since there are no states in raw mode and usually no states used in UDP, this column may be left 
blank. Normally this can be one of several values: 
ESTABLISHED 
The socket has an established connection. 
SYN_SENT 
The socket is actively attempting to establish a connection. 
SYN_RECV 
A connection request has been received from the network. 
FIN_WAIT1 
The socket is closed, and the connection is shutting down. 
FIN_WAIT2 
Connection is closed, and the socket is waiting for a shutdown from the remote end. 
TIME_WAIT 
The socket is waiting after close to handle packets still in the network. 
CLOSED The socket is not being used. 
CLOSE_WAIT 
The remote end has shut down, waiting for the socket to close. 
LAST_ACK 
The remote end has shut down, and the socket is closed. Waiting for acknowledgement. 
LISTEN The socket is listening for incoming connections. Such sockets are not included in the output unless you specify 
the –listening (-l) or –all (-a) option. 
CLOSING 
Both sockets are shut down but we still don’t have all our data sent. 
UNKNOWN 
The state of the socket is unknown

find  [/v] [/c] [/n] [/i] [/ 关闭 [行]]""[[:] [] [...]]

几个参数说明如下:

参数 说明

/v

显示不包含指定的 的所有行。

/c

对包含指定的 的行进行计数,并显示总计。

/n

在前面的每个行与该文件的行号。

/i

指定搜索不区分大小写。

[/ 关闭 [行]]

不跳过具有脱机属性设置的文件。

""

必需。指定要搜索的字符 (括在引号) 的组。

[:][]

指定要在其中搜索指定字符串的文件的名称和位置。

/?

在命令提示符下显示帮助。

 windows下实现统计某个端口的连接数命令为:

netstat -an|find "xxx.xxx.xxx.xxx:端口" |find  "ESTABLISHED" /c 

你可能感兴趣的:(windows下用cmd命令netstat查看系统端口使用情况)