商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 如何在 Linux 中检查端口是否开放

如何在 Linux 中检查端口是否开放

  发布于2026-08-19 阅读(0)

扫一扫,手机访问

介绍

在这个实验中,你将学习在 Linux 系统上检查网络端口状态的基本技术。了解哪些端口处于开放状态对于网络管理、故障排除和安全分析至关重要。

首先,你需运用带有特定选项的CODE0命令,列出所有处于监听状态的开放TCP和UDP端口。接着,再用更为现代的CODE1命令确认端口状态,该命令能提供类似的网络统计信息。最后,使用CODE_2(netcat)命令主动测试与特定端口的连接性,从客户端角度验证该端口是否可访问且开放。完成这些步骤后,你就能在Linux环境中,掌握识别和验证开放端口的实用技能。

使用 netstat -tuln 列出开放端口

在这一步中,你将学习如何使用 CODE_0 命令列出 Linux 系统上的开放端口。了解哪些端口处于开放状态对于网络故障排除和安全至关重要。

CODE_0 命令(网络统计)是一个命令行工具,用于显示网络连接、路由表、接口统计信息、伪装连接和多播成员关系。

我们将使用 CODE_0 的以下选项:

  • CODE_0:显示 TCP 连接。
  • CODE_0:显示 UDP 连接。
  • CODE_0:显示监听套接字(开放端口)。
  • CODE_0:显示数字地址,而不解析主机名和服务名。

如果终端尚未打开,请打开它。你可以在桌面左侧找到 Xfce Terminal 图标。

现在,输入以下命令并按回车键:

netstat -tuln

你将看到类似以下的输出:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
udp        0      0 127.0.0.53:53           0.0.0.0:*
udp        0      0 0.0.0.0:68              0.0.0.0:*

让我们来分析一下输出内容:

  • CODE0:套接字的协议(例如,CODE1CODE_2)。
  • CODE0:本地 IP 地址和端口号。格式为 CODE1CODE2 表示服务正在所有可用的 IPv4 接口上监听,CODE3 表示服务正在所有可用的 IPv6 接口上监听。
  • CODE0:远程 IP 地址和端口号。CODE1CODE_2 表示套接字未连接到特定的远程地址(它正在监听)。
  • CODE0:套接字的状态。CODE1 表示端口已开放并正在等待传入连接。

在示例输出中,你可以看到端口 CODE0(DNS)和端口 CODE1(SSH)在 IPv4 和 IPv6 上都处于 CODE_2 状态。

此命令对于快速检查系统上正在运行和可访问的服务非常有用。

点击 继续 进入下一步。

使用 ss -tuln 确认端口状态

在上一步中,你使用 CODE0 列出了开放端口。现在,让我们使用一个更现代且通常速度更快的工具 CODE1(套接字统计)来实现相同的目的。CODE2 旨在取代 CODE3,并提供有关套接字的更详细信息。

我们将对 CODE0 使用与 CODE1 类似的选项:

  • CODE_0:显示 TCP 套接字。
  • CODE_0:显示 UDP 套接字。
  • CODE_0:显示监听套接字(开放端口)。
  • CODE_0:显示数字地址,而不解析主机名和服务名。

如果终端尚未打开,请打开它。

输入以下命令并按回车键:

ss -tuln

你将看到类似以下的输出:

Netid  State      Recv-Q Send-Q Local Address:Port               Peer Address:Port
udp    UNCONN     0      0      127.0.0.53%lo:53                 0.0.0.0:*
udp    UNCONN     0      0      0.0.0.0:68                       0.0.0.0:*
tcp    LISTEN     0      128    127.0.0.53%lo:53                 0.0.0.0:*
tcp    LISTEN     0      128    0.0.0.0:22                       0.0.0.0:*
tcp    LISTEN     0      128    [::]:22                          [::]:*

该输出与 CODE0 的输出类似,显示了协议(CODE1)、状态(CODE2)、本地地址和端口(CODE3)以及对端地址和端口(CODE_4)。

你可以看到相同的端口(53 和 22)被列为 CODE0 状态,这证实了 CODE1 的结果。

虽然输出格式略有不同,但 CODE_0 提供了有关监听端口的类似信息,并且由于其性能和额外功能(在这个入门实验中我们不会涉及),在现代 Linux 系统中通常更受青睐。

同时使用 CODE0CODE1 有助于交叉参考信息,并让你熟悉 Linux 中可用的不同工具。

点击 继续 进入下一步。

使用 nc -zv 测试端口连通性

在前面的步骤中,你学习了如何使用 CODE0CODE1 列出开放端口。现在,让我们使用 CODE2 命令(netcat)来测试你是否真的可以连接到特定端口。CODE3 是一个多功能的网络工具,它可以使用 TCP 或 UDP 读写网络连接。

我们将使用 CODE_0 的以下选项:

  • CODE0:指定 CODE1 仅扫描监听的守护进程,而不向它们发送任何数据。这对于检查端口是否开放很有用。
  • CODE_0:启用详细输出,显示有关连接尝试的更多详细信息。

我们将测试到端口 22(SSH)的连通性,在前面的步骤中我们看到该端口正在监听。我们将测试连接到本地机器,本地机器可以通过 IP 地址 CODE0 或主机名 CODE1 来引用。

如果终端尚未打开,请打开它。

输入以下命令并按回车键:

nc -zv 127.0.0.1 22

你应该会看到类似以下的输出:

Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!

此输出确认 CODE_0 能够成功连接到本地机器上的端口 22。

现在,让我们尝试测试一个可能未开放的端口,例如端口 80(HTTP),因为在此环境中默认没有运行 Web 服务器

输入以下命令并按回车键:

nc -zv 127.0.0.1 80

你可能会看到表明连接被拒绝或超时的输出,类似于以下内容:

nc: connect to 127.0.0.1 port 80 (tcp) failed: Connection refused

此输出表明 CODE_0 无法连接到端口 80,这是预期的,因为该端口上没有服务在监听。

使用 CODE_0 是一种快速简便的方法,用于验证从你当前位置是否可以访问并打开特定端口。

点击 继续 完成此实验。

总结

在这个实验中,你学习了如何使用命令行工具检查 Linux 中的端口是否开放。你首先使用 CODE_0 命令列出所有处于监听状态的开放 TCP 和 UDP 端口,并了解了包括协议、本地地址、外部地址和状态在内的输出格式。

接着,你用CODE0命令来确认端口状态。这个命令所提供的信息和CODE1类似,不过它通常被视为更现代、速度更快的替代方案。最后,你还学习了如何运用CODE_2命令去测试与特定端口的连通性。该命令会尝试建立连接,然后报告端口是否开放且可访问。这些步骤为Linux系统的网络故障排除和安全分析提供了必备的技能。

本文转载于:https://labex.io/zh/tutorials/linux-how-to-check-if-a-port-is-open-in-linux-558746 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注