Linux下如何根据进程名查端⼝号(或根据端⼝号查进程名)
在具体的Linux系统维护中,特别对于某些我们初次接触的新应⽤程序,我们往往需要根据进程名查对应的端⼝号(当然,前提是进程要处于启动状态),或者反过来,根据端⼝号查对应的进程名。那么,我们该采⽤什么⽅法呢?
1、根据进程名查对应的端⼝号
如果你在⽹上搜索⼀下,发现有不少这⽅⾯的资料,仔细尝试,却发现多半是不正确的(吐槽⼀下:⽂抄公真是多如⽜⽑,以讹传讹太可恶)。其实这个很容易做到:
#netstat -tlnp | grep processname
2、根据端⼝号查对应的进程名
⽹上推荐使⽤两种⽅法,分别⽤到lsof和netstat命令,在这⾥根据我的使⽤经验总结⼀下:
1)使⽤lsof命令
#lsof -Pnl -i :portnumber
lsof(list open files)是⼀个列出当前系统中打开⽂件的⼯具。在linux环境下,everything is file,通过⽂件不仅仅可以访问常规数据,还可以访问⽹络连接和硬件。
上述lsof命令参数解释:
-P :该选项禁⽌端⼝号到端⼝名的转换,这样可以加快lsof运⾏速度。
-n :该选项禁⽌端⼝号到主机名称的转换,这样不仅可以加快lsof的运⾏速度,⽽且在主机名称查不能奏效时⾮常有⽤。
-l :该选项禁⽌⽤户ID号到登录名的转换,这在登录名查不正确或很慢时⾮常有⽤。
linux中netstat命令-i [info]:该选项指定显⽰与info中互联⽹地址相匹配的信息。
2)使⽤netstat命令
#netstat-tlnp | grep :portnumber
注意:portnumber前⾯最好加上:,这样便于缩⼩查询范围。这种⽅法与第⼀种⽅法实际查的结果不是同⼀内容,但都可以查到进程名,差别在于,这种⽅法看到的是最简单的端⼝监听信息,⽽第⼀种⽅法看到的是跟该端⼝关联的具体⽹络连接,⼤家各取所需吧。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论