如何检查端口占用情况

最近在给学生们做Demo的时候,遇到了一个端口占用的问题……既然知道问题的所在,就要开始尝试解决问题,检查出到底是哪个程序在使用这个端口,然后干掉它……

再Windows下,加入我的端口 3318被占用了,那么在cmd里执行

netstat -aon|findstr “3318”

得到结果如下

TCP    127.0.0.1:3318     127.0.0.1:3319     ESTABLISHED     2116
TCP    127.0.0.1:3319     127.0.0.1:3318     ESTABLISHED     2116

我们可以看到3318这个端口正在被pid为2116的程序占用,于是继续执行

tasklist|findstr “2116”

得到结果

firefox.exe      2116      Console      0      65,956 K

这样,我们就知道是firefox在占用这个端口了……但是奇怪的是,当我关掉firefox再重启,它也不会再继续占用我原来的端口了……可能是因为firefox会随机占用一下,所以导致我原来想使用的端口被占用吧……这不巧了么这不是啊?

然后,因为菜狗肉壳最近买了一台mac,所以考虑到mac也会出现这种情况,该怎么办呢?

mac下相对比较简单,只需要一条命令

lsof -i -n | grep 3318

这样就可以看到哪个程序占用了这些端口,就是这样……