Linux 查出正在使用80端口的进程

时间:2019-11-20 08:53:27  来源:igfitidea点击:

在Linux中,如何查看哪个进程正在使用80端口?
在Linux中,如何查看端口被哪个进程占用?

在Linux中,下面的命令都可以查到哪个应用在占用端口:

  • netstat是一个命令行工具,可显示网络连接,路由表和许多网络接口统计信息。
  • fuser命令行工具,用于使用文件或套接字标识进程。
  • lsof是一个命令行工具,用于列出Linux/UNIX下打开的文件,以报告所有打开文件的列表以及打开它们的进程。
  • /proc/$pid 文件系统在Linux下/proc在/proc/PID包含每个正在运行的进程(包括内核进程)的目录,其中包含有关该进程的信息,特别是包括打开端口的进程名称。

Linux查找占用端口的进程

netstat命令找出正在使用80端口的程序

输入以下命令

# netstat -tulpn | grep :80

或者:

# netstat -tulpn | grep --color :80

输出示例:

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      1215/nginx

其中

  • 0 0.0.0.0:80 源IP:端口
  • 1215/nginx PID /进程名称

可以看到nginx正在占用80端口。
然后使用下面的命令,查找nginx的安装位置:

whatis nginx
whereis nginx

使用/proc/$pid/exec文件找出正在使用80端口的进程

找出打开tcp 80端口的进程PI:

# fuser 80/tcp

输出示例:

80/tcp:              12161 21776 25250 25393

最后,找出与PID 3813相关的过程名称:

# ls -l /proc/12161/exe

输出示例:

lrwxrwxrwx. 1 root root 0 Aug  9 13:28 /proc/12161/exe -> /usr/sbin/lighttpd

然后使用下面的命令,查找lighttpd的安装位置:

man lighttpd
whatis lighttpd
whereis lighttpd

lsof命令找出正在使用80端口的进程

输入以下命令

# lsof -i :80 | grep LISTEN

输出示例:

apache2   1607     root    3u  IPv4   6472      0t0  TCP *:www (LISTEN)
apache2   1616 www-data    3u  IPv4   6472      0t0  TCP *:www (LISTEN)
apache2   1617 www-data    3u  IPv4   6472      0t0  TCP *:www (LISTEN)