找回密码
 立即注册
搜索
查看: 208|回复: 0

Linux中查看进程监听端口

[复制链接]

989

主题

92

回帖

5万

积分

管理员

积分
55362
发表于 2022-7-2 10:47:51 | 显示全部楼层 |阅读模式
1,发现进程监听端口通过lsof命令

0 X( W* F( O( @8 i- O) |( v; k
6 O. A9 M* R! B$ ^
lsof 命令代表“列出打开的文件”。由于Linux中的所有内容都是文件,包括端口和套接字,因此我们可以获得所需的所有信息。要查找使用 lsof 侦听特定端口的进程,请运行以下命令:
0 f" t8 J& E7 d9 X7 Z

3 w) c( N6 T8 o6 A' c. l9 |( _) j5 u# v: i
注:如果运行以下命令提示命令未发现,请执行"yum install lsof"安装。
  1. lsof -iTCP:22 -sTCP:LISTEN
复制代码
( w3 @+ c! Q% O9 Q1 I
lsof 命令在所有主要的 Linux 发行版上都可用,并且通常默认安装。
. k$ P% Q1 X5 D0 H7 J: M
& u5 D7 t! M8 O0 I) @
2,发现进程监听端口通过netstat
netstat 命令是一个老古董,但一个好东西。它自80年代初以来一直存在,不仅可用于每个Linux系统,而且至少从XP开始,还可以在任何UNIX或UNIX变体和Microsoft Windows上使用。

' z# P' A3 p, f& _7 b( D
要查找使用 netstat 侦听特定端口的进程,请使用以下命令:
  1. netstat -anp | grep ":22"
复制代码

/ M* N! V$ f& \  U( g
-a 选项表示全部,-n 表示以数字而不是名称显示端口,-p 表示显示进程 ID 和名称。
注意:Windows 和 UNIX 系统上的语法可能会有所不同。
3 U% T# I  Q( {  s. b

+ x) Z, W+ A) Z# [8 E
3,发现进程监听端口通过fuser

( E9 y2 J) t2 D+ b2 hfuser 命令标识哪个进程正在使用文件或套接字。通过一些聪明的选项,可以找到有关哪个进程正在侦听端口的所有信息。如果执行以下命令提示未找到命令,请执行“yum install psmisc.x86_64”安装fuser。* b0 N7 G1 t# K6 H9 o
  1. sudo fuser -v -n tcp 22
复制代码
我们使用 -v 选项表示详细模式,使用 -n 选项选择相应的命名空间,后面跟上TCP以及端口22。
, K" i5 R" @4 M8 y: a, c3 ^, C9 |6 t3 H0 X- k. q8 O
4,发现进程监听端口通过ss
& ], x/ w; _  R5 Q

1 }. M- A1 }$ |7 j$ j
ss 命令被固定为netstat 的替代项。然而,通常netstat在人们中是如此根深蒂固,以至于它需要一段时间才能消失。因此可以看出,ss命令语法有点复杂,但这可能是因为很久未更新这个命令,并且按照老的命令方式来设置。

$ w! I# \2 t" Z' d: |! {! L) I& i, B6 X" j( i

. a' h' f) s1 G- U3 K6 [: s
要使用 ss 命令查找侦听特定端口的进程,可以使用以下命令:
  1. sudo ss -lptn 'sport = :22'
复制代码
: \9 z- G6 l* k9 d' A. e2 L) ~* v
总结:本文主要讲解通过四种方法来查看进程监听的端口,从而也能够通过查找端口来终止服务,或者能够查询该机器上是否开启了该服务都可以通过以上四种方式来查看。
& L4 o1 S$ u0 y" p* B3 V* L% l( i2 g5 k$ C0 P( e6 O
" Z* o) x: n& I% \3 m, f' W) T

, ^; |" q+ k& }2 b9 r/ i9 Z  B2 x# H% t
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|

GMT+8, 2026-5-6 08:37 AM , Processed in 0.095402 second(s), 23 queries .

Powered by xyh-moon X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表