背景:今天在帮客户安装IIS后,启动IIS时。总是提示“该程序被占用”。刚开始以为网站目录中的文件被其他程序使用,折腾了很久。后来Google了一下,加上自己的理解初步估计是端口被占用。 故而使用netstat -an查看了一下,确实80端口被占用。从而引出二个问题:
1.查询出那个应用程序占用80端口?
2.在找到改应用程序后怎么杀死该进程?
大家知道在linux下使用 lsof -p 端口号 可以查看端口对应的进程。windows下面我们有以下办法解决:
答案1:使用netstat -anob查看那个pid占用80端口:
D:>netstat -anob | grep -A 2 80
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 3204
[FMSEdge.exe]
--
TCP 127.0.0.1:843 0.0.0.0:0 LISTENING 2080
[FetionVM.exe]
--
TCP 192.168.100.93:1052 221.130.46.141:8080 ESTABLISHED 2080
[FetionVM.exe]
--
TCP 192.168.100.93:3230 121.101.220.180:35000 ESTABLISHED 5108
[SecureCRT.exe]
--
TCP 192.168.100.93:1723 58.248.245.14:80 CLOSE_WAIT 552
[YodaoDict.exe]
--
UDP 127.0.0.1:1080 *:* 1612
[QQPenguin.exe]从上面的结果,可以看出是FMSEdge占用率80端口。
答案2:杀死进程ID,记住80端口对应的进程号。然后:
- 打开任务管理器
- 进入查看->选择列
- 选中PID前的checkbox
- 点击确定。使用此命令可以查看win下所有开着的端口是被那个系统程序占用以及程序的pid