当前位置:首页>弱电技术>系统运维>如何检查 Linux 中打开的端口

如何检查 Linux 中打开的端口

介绍

网络端口是标准化的数字标识符,允许设备使用一个IP 地址同时处理多个网络请求。由于有 65535 个端口号,因此记录正在使用的端口可能具有挑战性。

本文将教您如何使用五种流行的网络工具检查 linux 系统上开放的侦听端口。

先决条件

  • 安装在计算机上的Linux 发行版。
  • 对命令行的管理访问。

什么是监听端口?

应用程序和服务使用侦听端口来侦听传入的网络请求。每个侦听端口都与 IP 地址和通信协议(例如TCP或UDP)相关联。

根据网络设置,侦听端口可以打开关闭

  • 开放端口使用正确的协议接受外部连接。
  • 关闭的端口不接受所有连接。它们与预定的外部服务或应用程序进行通信,而防火墙会阻止其他尝试的连接。

绑定的一个监听端口只能承载一项服务。例如,如果系统上有一个Web 服务器已使用端口 80,则任何其他已安装的 Web 服务器将必须使用不同的非默认端口号。

如何检查Linux中开放的端口?

Linux 用户可以使用多种可用的网络工具检查开放端口。每个工具显示相同的结果,但输出格式和信息量有所不同。

以下部分提供了使用lsofnetstatssNmapnetcat实用程序检查打开端口的说明。

通过 lsof 命令检查端口

lsof 命令允许用户列出使用侦听端口的程序和维护活动网络连接的守护程序。

使用该lsof命令可以:

  • 显示正在使用的端口列表:
sudo lsof -nP -iTCP -sTCP:LISTEN

该命令输出使用 TCP 协议的连接列表。

如何检查 Linux 中打开的端口

  • 使用以下语法检查特定端口号:
sudo lsof -nP -i:[port-number]

例如,要检查端口 5054 是否正在使用,请键入:

sudo lsof -nP -i:5054

如果端口空闲,该命令不会显示任何输出。如果应用程序正在使用该端口,输出将显示其详细信息:

如何检查 Linux 中打开的端口

  • 通过将其添加到选项来指定您要扫描的协议-i

例如,要检查 UDP 端口 53 是否打开,请键入:

sudo lsof -nP -iUDP:53

输出显示应用程序是否已使用该端口。

如何检查 Linux 中打开的端口

通过netstat命令检查端口

netstat 命令提供网络活动概述和统计信息。使用以下命令显示系统上的侦听端口netstat

sudo netstat -tunpl

该命令使用五个命令参数:

  • -t– 查询 TCP 端口的命令。
  • -u– UDP 端口查询。
  • -n– 避免DNS查找并仅显示 IP 地址以加快进程。
  • -p– 显示进程 ID 和使用该端口的程序名称。
  • -l– 输出监听端口。

通过检查该列并查找标签来识别侦听端口/套接字。StateLISTENING

如何检查 Linux 中打开的端口

通过 ss 命令检查端口

ss 命令是已过时命令的更快且更易于使用的版本netstat。它使用与 相同的选项netstat,但在输出中提供更多统计信息。

以下命令扫描 TCP 和 UDP 端口以查找侦听套接字并将它们显示在列表中:

sudo ss -tunl

侦听端口/套接字LISTEN“状态”列中进行标记。

如何检查 Linux 中打开的端口

通过 nmap 命令检查端口

Nmap实用程序允许用户扫描本地和远程系统上的开放端口。执行以下命令扫描本地系统上所有开放的 TCP 和 UDP 端口:

sudo nmap -n -PN -sT -sU -p- localhost

以下是nmap示例中使用的选项。

  • -n– 跳过 DNS 解析。
  • -PN– 跳过发现阶段。
  • -sT-sU– 分别告诉扫描netstatTCP 和 UDP 端口。
  • -p-– 扫描所有端口。

输出列出了开放端口以及使用它们的服务。

如何检查 Linux 中打开的端口

注意:如果要扫描端口范围,请使用选项指定-p。例如,要仅扫描 1 到 1023 之间的 UDP 端口,请键入:

sudo nmap -p U:1-1023 本地主机

通过 nc 命令检查端口

Linux 中的nc 命令允许用户控制netcat实用程序。netcat可以扫描本地和远程系统上的端口,并提供有关端口是否打开、关闭或被防火墙过滤的信息。

注意:在 CentOS、RHEL 和 Debian 中,natcat 命令是 ncat

通过键入以下命令扫描本地系统上的所有端口:

nc -z -v localhost 1-65535

-z标志启用用于扫描的零 I/O 模式,而该-v选项指示netcat生成详细输出。

执行该命令时,netcat将尝试连接到所有端口并报告每个端口的成功情况。一次扫描多个端口会产生大量输出。

要仅显示连接成功的端口(即打开的端口),请使用表达式2>$1重定向输出。然后,将表达式通过管道传递给grep 命令并搜索单词succeeded

nc -z -v localhost 1-65535 2>&1 | grep succeeded

如何检查 Linux 中打开的端口

默认情况下,netcat 扫描 TCP 端口。要检查 UDP 端口,请添加-u选项:

nc -z -v -u localhost 1-65535 2>&1 | grep succeeded

如何检查 Linux 中打开的端口

结论

读完本文后,您应该知道如何使用五个流行的 Linux 实用程序来检查开放端口。了解系统上打开的端口可以帮助您检测入侵或解决网络相关问题。

本文由 @孔明 发布于弱电智能网 。

题图来自Unsplash,基于CC0协议

内容观点仅代表作者本人,弱电智能网平台仅提供信息存储空间服务。

如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章名称:《如何检查 Linux 中打开的端口》

文章链接:https://www.ruodian360.com/tech/sytemops/48192.html

添加微信ydian188免费入群,记得备注“弱电智能网”。

给TA打赏
共{{data.count}}人
人已打赏
系统运维

x64 与 x86架构的主要区别

2023-7-16 21:41:00

系统运维

海康威视HikOS操作系统root用户密码重置方法

2023-7-19 1:48:52

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索