查看端口占用
2016-02-29 11:42
337 查看
1)使用lsof命令
lsof是一个非常强大的linux工具,她被用来查找哪些程序使用了那些文件。在linux系统下,基本上所有的东西都可以被当作文件来用。socket当然也是一种文件了。所以lsof可以用来查找谁用了某一个端口。具体方法:
lsof -i :port_number |grep "(LISTEN)"
-i
是用来查找和网络相关的文件,":"号是必须的,它是标志你查找的是一个端口。port_number就是你要查找的端口号,譬如你要查找是否
有程序占用了oracle的监听端口1521,就可以使用lsof -i :1521 |grep
"(LISTEN)"。如果有程序已经占用了,那么下面打印的第二个字段就是该程序的进程id,第一个字段是进程的名字。
如果只有losf -i :port_number可能会查到很多应用程序,但这些程序实际并没有占用你指定的端口,这些端口只是连接到本机器或者别的机器的该端口。所以要grep "(LISTEN)“,因为一个端口只可能被一个程序占用的,所以这种方法是可靠的。
2)使用netstat 命令
大
家一定对这个命令比较熟悉了,可能你从没有想到用到来查找哪一个程序的占用了指定的端口。但是netstat -an
的确提供了这种功能。所以有问题了一定要想到先去查找man手册,不过说实话,某些man手册写得让中国人看不懂,那没有办法了,就googe或者
baidu一下吧。
执行man netstat命令,你会发现netstat
提供了'-p'的选项,这个选项的功能是告诉你哪个程序占用了该端口,但是她提供的形式比较古怪是以pid/process_name提供的。pid当然
是进程id了,process_name是进程的命令,中间以'/'号分隔。
和上面的原因一样,我们只查找listen的端口,netstat 给我们提供了-l的选项,这个选项不是默认的选项。
下面以1521端口来看怎么查找到该程序,我们使用下面的命令:
netstat -lnp|awk 'BEGIN{prt=":1521$"}{if ($4 ~ prt) print $0}'
在这里使用awk来匹配第4个字段的模式是为了避免误判。
使用netstat 和lsof命令,并用grep来过滤你需要查看的端口。
例如查看tcp有哪些端口打开了:
然后查看哪个进程占用了这些端口:
如果要查看某个端口,比如80端口是哪个进程:
lsof是一个非常强大的linux工具,她被用来查找哪些程序使用了那些文件。在linux系统下,基本上所有的东西都可以被当作文件来用。socket当然也是一种文件了。所以lsof可以用来查找谁用了某一个端口。具体方法:
lsof -i :port_number |grep "(LISTEN)"
-i
是用来查找和网络相关的文件,":"号是必须的,它是标志你查找的是一个端口。port_number就是你要查找的端口号,譬如你要查找是否
有程序占用了oracle的监听端口1521,就可以使用lsof -i :1521 |grep
"(LISTEN)"。如果有程序已经占用了,那么下面打印的第二个字段就是该程序的进程id,第一个字段是进程的名字。
如果只有losf -i :port_number可能会查到很多应用程序,但这些程序实际并没有占用你指定的端口,这些端口只是连接到本机器或者别的机器的该端口。所以要grep "(LISTEN)“,因为一个端口只可能被一个程序占用的,所以这种方法是可靠的。
2)使用netstat 命令
大
家一定对这个命令比较熟悉了,可能你从没有想到用到来查找哪一个程序的占用了指定的端口。但是netstat -an
的确提供了这种功能。所以有问题了一定要想到先去查找man手册,不过说实话,某些man手册写得让中国人看不懂,那没有办法了,就googe或者
baidu一下吧。
执行man netstat命令,你会发现netstat
提供了'-p'的选项,这个选项的功能是告诉你哪个程序占用了该端口,但是她提供的形式比较古怪是以pid/process_name提供的。pid当然
是进程id了,process_name是进程的命令,中间以'/'号分隔。
和上面的原因一样,我们只查找listen的端口,netstat 给我们提供了-l的选项,这个选项不是默认的选项。
下面以1521端口来看怎么查找到该程序,我们使用下面的命令:
netstat -lnp|awk 'BEGIN{prt=":1521$"}{if ($4 ~ prt) print $0}'
在这里使用awk来匹配第4个字段的模式是为了避免误判。
使用netstat 和lsof命令,并用grep来过滤你需要查看的端口。
例如查看tcp有哪些端口打开了:
相关文章推荐
- nw.js node-webkit系列(9)Native UI API App的使用
- 最全面的C/C++编码规范总结
- 架构师和开发团队应该如何协作?组织架构怎么设置最好?
- glibc CVE-2015-7547漏洞的分析和修复方法
- iOS开发--即时通讯常用第三方库
- Hibernate中Session的get和load
- StringBuffer作为形式参数传递
- Imageview 图片显示相关
- iOS8 之后对 SearchController的使用
- ZOJ1010
- 定位元素
- STM32F407和STM32F051主从I2C通信方法
- 理解js回收机制通俗易懂版
- C++基础知识易错点总结(2)
- 我如何在SQLServer上每天处理四亿三千万记录
- 架构师不写代码,怎能知道技术的痛点?
- linux tar命令总结
- 49.The ORDERS table belongs to the user OE. OE has granted the SELECT privilege on the ORDERS table
- bzoj 1046 : [HAOI2007]上升序列 dp
- iOS国际化(多国语言设置)