win32环境下侦测端口占用情况

有时候在进行开发或者安装一些框架时,经常会出现端口被占用的情况,导致安装失败。这是让人非常郁闷的事情,今天我安装Alfresco的时候就出现过这样的问题,8100端口被占用,下面给我的解决方案。
首先利用指令查看端口使用情况,在CMD下输入netstat -anb能看到本机所有开放端口以及被使用的情况,即是使用端口进程的名称,我查到的使用8100的进程是service.exe。
接着我想把它kill掉,记得kill指令要跟上的好像是进程pid,于是又百度了一翻,知道了查看占用端口进程pid的指令为netstat -ano|findstr "8100",得到了占用8100端口进程的pid为4044。
再往下,不用说,就是杀之,查看了下经验贴,说是使用ntsd -c q -p PID即可,我在我的机器上试了下,貌似不能识别,这个指令是从windows 2000系统就开始有的,自动带有debug权限,不知道是不是win 7屏蔽了,囧。
无奈换了另外一种方法,使用taskkill指令,在cmd里面,输入taskkill -im service.exe /f 或者taskkill -pid 4044 /f即可。

其他关于这些指令的参考资料见下文,转自http://003317.blog.51cto.com/2005292/531436
端口查看命令
利用命令查看端口及对应程序
利用 netstat 命令查看本机开放端口 netstat 是 windows 自带命令,用于查看系统开放的端口,主要参数只有 -a 和 -n ,前者表示显示所有连接和侦听端口,而后者表示以数字格式显示地址和端口号。
  在 “ 命令提示符 ” 中输入 “ netstat -an ”, 即可显示本机所有开放端口。
其中 active connections 是指当前本机活动连接,
proto  是指连接使用的协议名称
local address  是本地计算机 IP 地址和连接正在使用的端口号
foreign address  是指连接此端口的远程计算机的 IP 地址与端口号
state   则表示 TCP 连接状态
注意如果后面的 UDP 协议有异常连接,则可能有木马正使用端口号,正处于监听状态,如冰河木马的默认监听端口号是 7626
利用 netstat 命令查找打开可疑端口的恶意程序
  先用命令提示符 " netstat -ano " 命令显示端口状态,再在结果中找到可疑端口,然后根据其 PID 在输入 “ tasklist ” 命令显示中查找其对应程序,就可知道其程序名,进而查明程序的来源,采取适当的措施。
直接查看端口与程序 ( 以上两个命令的结合效果 )
  在命令提示符后输入 “ netstat -anb ” 回车,即可显示所有端口及所对应的进程信息,用来查找木马非常方便
用第三方端口查看工具 FPORT
fport 是 foundstone 出品的一个用来查看系统所有打开 TCP/IP 和 UDP 端口,及它们对应程序的完整路径, PID 标识,进程名称等信息的小工具



怎么查看端口占用情况?
开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"
经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用
假如我们需要确定谁占用了我们的9050端口
1、Windows平台
在windows命令行窗口下执行:
C:\>netstat -aon|findstr "9050"TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016
看到了吗,端口被进程号为2016的进程占用,继续执行下面命令:
C:\>tasklist|findstr "2016"tor.exe 2016 Console 0 16,064 K
很清楚吧,tor占用了你的端口。

Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1029 0.0.0.0:0 LISTENING
TCP 169.254.40.87:139 0.0.0.0:0 LISTENING
TCP 192.168.203.1:139 0.0.0.0:0 LISTENING
TCP 192.168.204.1:139 0.0.0.0:0 LISTENING
TCP 222.50.163.57:1960 219.133.60.243:8000 ESTABLISHED
TCP 222.50.163.57:2006 124.115.1.109:443 TIME_WAIT
TCP 222.50.163.57:2007 124.115.3.90:443 ESTABLISHED
netstat 显示协议统计信息和当前 TCP/IP 网络连接。

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

关于taskkill的资料详见百度文库:http://wenku.baidu.com/view/36ac7251f01dc281e53af073.html
关于ntsd详见:http://wenku.baidu.com/view/6ab36019227916888486d76f.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值