Linux中查看监听中的(占用)端口(netstat,ss,lsof)

Linux中查看监听中的(占用)端口(netstat,ss,lsof)

在对网络连接或特定应用做故障排查时,最先要做的一般是确认系统中正在使用的端口,还有查看哪些应用监听特定的端口。

本文介绍了如何用 netstat, ss, lsof 等命令找出哪些服务在侦听哪些端口。以下说明适用于所有基于Linux或Unix的操作系统。

netstat命令​

netstat命令可提供网络连接相关的信息。想要查看所有监听中的TCP或UDP端口,包含使用端口和套接字状态的服务,可使用如下命令

sudo netstat -tunlp

命令中的选项参数有如下含义

-t -显示TCP端口。

-u -显示UDP端口。

-n -显示数字地址而不是解析主机。

-l -仅显示监听端口。

-p -显示监听进程的PID和名称。仅当以root用户或 sudo 用户身份运行命令时,才会显示此信息。

将会输出如下信息:

对于我们,比较重要的几个列是:

Proto - 套接字使用的协议

Local Address - 进程所监听的IP地址及端口号

PID/Program name - PID和进程名称

也可以使用grep命令对查询结果做一些筛选。例如,查看哪个进程使用TCP协议监听端口22,可执行如下命令

sudo netstat -tnlp | grep :22

从输出内容可以看出来,22端口被SSH服务所占用

如果没有输出内容,则表示没有进程在监听相关端口

netstat虽然已过时,被ss和ip命令所取代。但很多发行版中仍可以用该命令,而且比较常用的一个命令。

ss命令​

ss是新版netstat,它缺少netstat的部分功能,但它能够显示更多关于TCP的信息,而且比netstat更快。命令选项都差不多,想要使用ss命令获取监听中的端口,可使用如下命令:

sudo ss -tunlp

输出内容跟netstat差不多

lsof命令​

lsof是一个强大的命令行工具,可提供进程打开的文件信息。

在Linux中一切皆为文件,可以将套接字视为写入网络的文件。

通过lsof命令获取监听端口列表

sudo lsof -nP -iTCP -sTCP:LISTEN

使用的命令选项有如下含义

-n -不要将端口号转换为端口名称。

-p -不解析主机名,显示数字地址。

-iTCP -sTCP:LISTEN - 仅显示TCP状态为LISTEN的网络文件。

想要查看特定端口的进程监听信息,例如想查看端口3306,可使用如下命令:

sudo lsof -nP -iTCP:3306 -sTCP:LISTEN

输入内容可以看出端口3306被mysql所占用

以上展示了 netstat, ss, lsof 的基本的使用方法,可用于查看哪些端口正在被监听,还可以查找监听特定端口的是哪个进程。

相关推荐

微博如何玩:玩转微博的小白入门指南
365bet开户网址

微博如何玩:玩转微博的小白入门指南

📅 07-08 👁️ 4058
娱乐圈低调富二代:王嘉尔所住的富人区,有钱也难买
365平台app下载手机版

娱乐圈低调富二代:王嘉尔所住的富人区,有钱也难买

📅 07-04 👁️ 5595
c4d怎么汉化,以及怎么添加汉化包
365bet开户网址

c4d怎么汉化,以及怎么添加汉化包

📅 07-04 👁️ 9411
回收站清空了怎么恢复回来?实测3种回收站文件恢复方法,高恢复率!
手机还信用卡怎么还?
365bet在线体育投注网

手机还信用卡怎么还?

📅 07-12 👁️ 2323
在长达84年20届世界杯的历史上,仅有三支国家队战胜过中国国家队
东南三菱-V3菱悦
365bet开户网址

东南三菱-V3菱悦

📅 07-05 👁️ 4100
娱乐圈低调富二代:王嘉尔所住的富人区,有钱也难买
365平台app下载手机版

娱乐圈低调富二代:王嘉尔所住的富人区,有钱也难买

📅 07-04 👁️ 5595
威士顿IPO:携旧疾转战创业板,业绩增速下滑明显,创业板定位或不符