Linux ➾ 端口占用检查

Linux ➾ 端口占用检查

    • 前言
    • 一、什么是监听端口
    • 二、使用lsof命令查看端口占用情况
    • 三、使用netstat命令检查监听端口
    • 四、使用ss 检查监听端口
    • 总结—温故知新

前言

在Linux系统中,时常需要查看哪个进程占用了特定的端口,以方便进行相关的配置或者问题排查。

本文介绍了几种常用的方法:使用netstat命令、lsof命令、ss命令。并给出了详细的实例,快速准确地查找占用端口的进程。

一、什么是监听端口

监听端口是指在计算机网络通信中,通过指定一个特定的端口号,使得计算机可以监听该端口上的网络通信请求。当计算机监听某个端口时,它会不断地检查该端口上是否有传入的网络连接请求,如果有则会接受连接并进行相应的处理。

监听端口通常用于服务器程序,服务器程序需要监听特定的端口号,以便能够接受客户端的连接请求并提供相应的服务。例如,Web服务器通常会监听80端口,SMTP服务器监听25端口,FTP服务器监听21端口等。

每个监听端口都可以使用防火墙打开或关闭(过滤)。

不能同时让两个服务监听同一IP地址上的同一端口。

二、使用lsof命令查看端口占用情况

lsof是一个用于查看系统打开的文件和进程的工具。通过结合-i参数,我们可以只查看特定端口的相关信息。

sudo lsof -i:<端口号>

这里的<端口号>是要查找的具体端口号。例如,要查看占用端口号为80的进程,可以运行:

sudo lsof -i:80
或者
sudo lsof -nP -iTCP:80 -sTCP:LISTEN

-n➾ 不要将端口号转换为端口名称。
-p ➾ 不解析主机名,显示数字地址。
-iTCP -sTCP:LISTEN ➾ 仅显示TCP状态为LISTEN的网络文件。

执行命令后,终端会显示占用指定端口的进程的相关信息,包括进程ID(PID)和进程名称。
Linux ➾ 端口占用检查_第1张图片
查看所有侦听TCP端口的列表:

sudo lsof -i
或者
sudo lsof -nP -iTCP -sTCP:LISTEN

三、使用netstat命令检查监听端口

netstat是一个命令行工具,可以提供有关网络连接的信息。

列出所有正在侦听的TCP或UDP端口,包括使用端口的服务和套接字状态,可以运行:

sudo netstat -tunlp

-t ➾ 显示TCP端口。
-u ➾ 显示UDP端口。
-n ➾ 显示数字地址而不是解析主机。
-l ➾ 仅显示监听端口。
-p ➾ 显示侦听器进程的PID和名称。仅当你以root用户或 sudo 用户身份运行命令时,才会显示此信息。

Linux ➾ 端口占用检查_第2张图片

1、Proto ➾ 套接字使用的协议。
2、Local Address ➾ 进程侦听的IP地址和端口号。
3、PID/Program name ➾ PID和进程名称。

使用 grep命令过滤结果。例如,要查找在TCP端口22上侦听的进程,可以运行:

sudo netstat -tnlp | grep :22

Linux ➾ 端口占用检查_第3张图片
还可以根据其他条件过滤,例如PID,协议,状态等。

###过滤tcp协议
sudo netstat -tnlp | grep tcp

###过滤httpd服务
sudo netstat -tnlp | grep httpd

###过滤856进程
sudo netstat -tnlp | grep 856

###过滤LISTEN状态
sudo netstat -tnlp | grep LISTEN

Linux ➾ 端口占用检查_第4张图片

四、使用ss 检查监听端口

ss是新的netstat。它缺少netstat的某些功能,但是公开了更多的TCP状态,并且速度稍快。

ss命令用于显示socket状态. 可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计。

它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具。

列出所有正在侦听的TCP或UDP端口,可以运行:

sudo ss -tunlp

Linux ➾ 端口占用检查_第5张图片

常用的ss命令:

1、ss -s ➾ 显示socket的统计信息
2、ss -a ➾ 显示socket的详细信息 (ta:tcp,ua:udp)
3、ss -l ➾ 显示本机监听的端口
4、ss -pl ➾ 显示本机监听的端口和程序
5、ss -t -a ➾ 显示所有tcp socket
6、ss -u -a ➾ 显示所有的UDP Socekt
7、ss -o state established '( dport = :smtp or sport = :smtp )' ➾ 显示所有已建立的SMTP连接
8、ss -o state established '( dport = :http or sport = :http )' ➾ 显示所有已建立的HTTP连接
9、ss -x src /tmp/.X11-unix/* ➾ 找出所有连接X服务器的进程

总结—温故知新

 该章详细介绍了在Linux系统中,几种常用的端口占用检查方法:使用netstat命令、lsof命令、ss命令。并给出了详细的实例,快速准确地查找占用端口的进程。

你可能感兴趣的:(Linux,linux,服务器,netstat命令,lsof命令,ss命令,linux端口占用检查)