在具体的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号到登录名的转换,这在登录名查找不正确或很慢时非常有用。
-i [info]:该选项指定显示与info中互联网地址相匹配的信息。
2)使用netstat命令
#netstat-tlnp | grep :portnumber
注意:portnumber前面最好加上:,这样便于缩小查询范围。这种方法与第一种方法实际查找的结果不是同一内容,但都可以查到进程名,差别在于,这种方法看到的是最简单的端口监听信息,而第一种方法看到的是跟该端口关联的具体网络连接,大家各取所需吧。
原文:https://blog.51cto.com/riser/1341575
原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/228325.html