通常情况下,如果想发现所有已经使用的和正在监听的端口,我们可以使用netstat命令。 netstat并非一个端口扫描工具,如果你想扫描计算机开放了哪些端口的话,建议使用本文介绍的方法。
使用Netstat发现计算机上的监听或开放端口
打开命令提示符窗口,并键入:
C:\WINDOWS>netstat -an |find /i "listening" |
如果用户想要将显示结果存到一个文件中(通常是文本文件),以备日后参考,可以使用重定向命令,如“>”或“>>”:
netstat -an |find /i "listening" > c:\openports.txt |
我们可以将“listening”改为“established”,查看一下计算机到底通过哪些端口通信:
C:\WINDOWS>netstat -an |find /i "established" |
注意:在Windows XP和Windows Server2003中,如果用户要得到与每个连接相关的所有自有进程的ID列表,可以输入执行“NETSTAT -O”:
C:\WINDOWS>netstat -ao |find /i "listening"
TCP pro1:epmap pro1.dpetri.net:0 LISTENING 860
TCP pro1:microsoft-ds pro1.dpetri.net:0 LISTENING 4
TCP pro1:1025 pro1.dpetri.net:0 LISTENING 908
TCP pro1:1084 pro1.dpetri.net:0 LISTENING 596
TCP pro1:2094 pro1.dpetri.net:0 LISTENING 596
TCP pro1:3389 pro1.dpetri.net:0 LISTENING 908
TCP pro1:5000 pro1.dpetri.net:0 LISTENING 1068 |
用户可以访问http://www.petri.co.il/download_free_reskit_tools.htm.
使用PULIST来找到PID和使用它的进程。例如,我们可能会发现计算机在TCP端口80上有一个与远程IP地址的连接,但是计算机上并没有打开Internet Explorer或其它的浏览器窗口。为了查看到底是什么进程在使用
这个会话,我们使用如下的命令:
C:\WINDOWS>netstat -no
Active Connections
Proto Local Address Foreign Address State PID
TCP 192.168.0.100:2496 212.179.4.7:80 ESTABLISHED 1536 |
然后使用带有“FIND”参数的“PULIST”命令:
C:\WINDOWS>pulist |find /i "1536"
Process PID User
LUCOMS~1.EXE 1536 DPETRI\danielp |
可以看出, DANIELP在运行着 LUCOMS~1.EXE,这是Symantec Live Update进程。
要查看所有打开的、已建立的、关闭的以及使用的端口,可以使用如下的命令:
在Windows XP或2003中,我们可以使用-o开关: