经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口?
1、Windows平台
在windows命令行窗口下执行:
E:\oracle\ora92\bin>netstat -ano |find ":80"
TCP 172.18.2.56:3311 172.18.40.3:80 ESTABLISHED 3704
TCP 172.18.2.56:3319 172.18.65.7:80 ESTABLISHED 3704
TCP 172.18.2.56:4641 172.18.40.3:80 ESTABLISHED 3704
TCP 172.18.2.56:4734 172.18.65.7:80 ESTABLISHED 3704
TCP 172.18.2.56:4847 172.18.40.3:80 ESTABLISHED 3560
TCP 172.18.2.56:4848 172.18.40.3:80 ESTABLISHED 3560
有个PID为3560的进程占用了80端口,继续执行下面命令:
E:\oracle\ora92\bin>tasklist |find "3560"
firefox.exe 3560 Console 0 147,564 K
可以发现是firefox的进程,并可看到占用的内存大小。
附netstat命令参数效果的对比:
E:\oracle\ora92\bin>netstat -a |find ":8080"
TCP wanhua:8080 0.0.0.0:0 LISTENING
E:\oracle\ora92\bin>netstat -an |find ":8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
E:\oracle\ora92\bin>netstat -ano |find ":8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 3796