百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux 如何查看端口占用、开放情况

ahcoder 2025-03-23 16:58 9 浏览

哪个端口被哪个服务占用?有多少个开放端口?本文介绍如何扫描 Linux 系统或任何远程系统上开放的端口。

无论您是使用 Linux 作为服务器还是桌面环境,了解开放的端口或正在使用的端口在各种情况下都会有所帮助。

例如,如果您正在运行基于 Apache 或 Ngnix 的 Web 服务器,则使用的端口应该是 80 或 443。检查端口将确认这一点。同样,您可以检查 SMTP 或 SSH 或其他一些服务正在使用哪个端口。在将端口分配给新服务时,了解哪些端口正在使用是很有必要的。

您还可以检查是否有端口被用于安全入侵。

在 Linux 中有多种检查端口的方法。我将在本文中分享我最喜欢的两种方法。

方法一:使用 lsof 命令查看当前登录的 Linux 系统中打开的端口

如果您直接或通过 SSH 登录到系统,则可以使用 lsof 命令检查其端口。

sudo lsof -i -P -n

lsof 命令用于查找用户使用的文件和进程。这里用到的选项是:

  • -i:如果没有指定IP地址,这个选项选择列出所有网络文件
  • -P:禁止将端口号转换为端口名称, 如 3306 转为 MySQL
  • -n:禁止IP转换为hostname,缺省是不加上-n参数

然而,上面命令也向我们展示了许多计算机实际上并未监听的额外端口。

您可以将此命令的输出通过管道传输到 grep 命令并匹配模式“LISTEN”,如下所示:

sudo lsof -i -P -n | grep LISTEN

这样只会显示我们的计算机正在监听的端口以及哪个服务正在使用所述开放端口。

方法二:使用 netcat 命令检查任何服务器上的端口

nc (Netcat) 是一个命令行实用程序,它使用 TCP 和 UDP 协议通过网络在计算机之间读取和写入数据。

下面给出了 nc 命令的语法:

nc [options] host port

这个实用程序有一个 -z 标志。使用时,它将使 nc 扫描侦听守护程序而不实际向端口发送任何数据。

将此与 -v 标志结合使用,启用详细模式,您可以获得详细的输出。

以下是使用 nc 命令扫描系统开放端口的命令:

nc -z -v  1-65535 2>&1 | grep -v 'Connection refused'

将 IP-ADDRESS 替换为您正在检查端口的 Linux 系统的 IP 地址。可以是本机ip 127.0.0.1,也可以是远程机器的ip地址。

至于我为什么选择值 1 到 65535,那是因为端口范围从 1 开始,到 65535 结束。

最后,将输出通过管道传递给 grep 命令。使用 -v 选项,它会排除任何返回包括 “Connection refused” 的行。

这将显示计算机上打开的所有端口,这些端口可由网络上的另一台计算机访问(在防火墙允许的情况下)。

结论

在这两种方法中,我更喜欢 lsof 命令。它比 nc 命令更快。但是,您需要登录系统并拥有 sudo 访问权限。换句话说,如果您正在管理系统,则 lsof 是更合适的选择。

nc 命令具有无需登录即可扫描端口的灵活性,但当扫描远程主机时因为需要网络交互会很慢, 特别是面临超时请求时,可使用 -q secs 参数设置超时时间。

相关推荐

Java程序员必备的Linux命令速查表

Java程序员必备的Linux命令速查表在Java开发的世界里,Linux就像一位默默支持的幕后英雄。作为一名Java开发者,掌握一些基本的Linux命令,不仅能提高工作效率,还能让你在团队中显得格外...

Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!

在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...

linux磁盘管理相关命令(linux磁盘管理常用命令)

磁盘的使用情况会直接影响系统的性能,因此我们经常会用到以下命令,主要围绕:fdisk:磁盘分区df:文件系统的磁盘空间占用情况du:文件目录的磁盘空间占用情况查看磁盘关系lsblk查看磁盘分区情况fd...

第四章 Linux常用shell命令-4.5.磁盘管理

主要介绍一下跟磁盘管理相关命令,有比较多的内容摘抄自网络,如有侵权,请及时联系我删除:显示目前在Linux系统上的文件系统磁盘使用情况统计:df创建和维护分区表的程序:fdisk将磁盘分区或镜像挂...

Linux新手必备:20个高效命令轻松掌握!

Linux基本命令使用指南在现代计算机操作系统中,Linux因其开放性、灵活性和强大的功能,广泛应用于服务器和开发环境中。作为技术人员,掌握Linux的基本命令是非常重要的。在本文中,我们将重点介绍2...

每日必学Linux命令:ls命令(linux命令详解之ls命令)

ls命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。通过ls命令不仅可以查看linux文件...

Linux系统dev和proc目录详解(linux dev/sr0)

简介:Linux系统里的/dev和/proc目录那可是相当重要的系统文件。在Linux系统中,/dev目录专门用来存放设备文件。不光有设备文件,系统里还有好多特殊功能也是通过设备的形式...

Linux切换目录之cd命令(linux切换指定目录)

1.基本概念1.1命令作用当我们在Linux系统上工作时,做得相当多的一项任务就是在不同的目录之间进行切换,这时就需要用到cd命令了。cd是"changedirectory"的首...

Linux切换目录(cd命令)(linux如何切换到目录)

cd命令,是ChangeDirectory的缩写,用来切换工作目录。Linux命令按照来源方式,可分为两种,分别是Shell内置命令和外部命令。所谓Shell内置命令,就是Shel...

MongoDB数据库的快速部署和启动(mongodb的使用教程)

一、Mongodb介绍常见数据库介绍关系数据库RDBMS设计表结构,通过SQL语句进行操作。连表关系常见的关系型数据库:mysqloracle(商业)DB2(IBM)sqlserver(微软...

5分钟学会网络服务搭建,飞凌i.MX9352 + Linux 6.1实战示例

在“万物互联”的技术浪潮下,网络服务已成为连接物理世界与数字世界的核心纽带,它不仅赋予了终端设备“开口说话”的能力,更构建了智能设备的开发范式。本文就将以飞凌嵌入式OK-MX9352-C开发板(搭载了...

centos安装geoserver并配置开机启动

前提条件:服务器已经安装了java环境一、下载下载地址:http://geoserver.org/release/maintain/下载后文件名为:geoserver-2.19.3-bin.zip二、...

开机启动流程(开机流程图)

grubandbootCentos5,6的开机启动流程grubCentos7的开机启动流程Centos5,6的开机启动流程initrd/initramfs一般存储在/boot目录下,以.img...

Linux cron服务概述(crontab服务)

cron是Linux/Unix系统中一个非常重要的后台服务(守护进程),用于在预定的时间间隔自动执行命令或脚本。它使得自动化重复性任务成为可能,例如日志清理、数据备份、系统维护等。1.cron...

CentOS 8利用rc.local进行开机自启动的配置

CentOS8利用rc.local进行开机自启动的配置CentOS8linux系统是不建议使用rc.local进行开机自启动的,建议创建systemdservice。我们为了方便以后多一个配置...