如何在 Linux 中检查打开的端口

介绍

在使用 Linux 系统时,有时您会遇到网络问题或者您必须配置防火墙。 在这些情况下,也许您需要检查特定端口是否打开?

本文将详细解释几种方法来确定您的 Linux 系统上打开了哪些端口。

本教程中的所有示例均在 Ubuntu 20.04 上执行。

什么是开放端口?

开放端口是接受来自外部的传入数据包的 TCP 或 UDP 网络端口。

为了 example,如果您的 Linux 系统上安装了 SSH 服务器,它将侦听端口 22。如果此端口在防火墙上打开,远程系统的用户将能够与您的系统建立 SSH 连接。 我们说端口 22 是一个开放端口。

请记住,我们应该只公开必要的端口,以便应用程序可以正常运行。 其他不必要的端口应关闭以避免安全风险。

使用 nmap 检查开放端口

Nmap 代表网络映射器。 它是一个有用且功能强大的实用程序,用于扫描网络上的主机和服务。

除了主机端口扫描功能,nmap 还可以发现 MAC 地址、操作系统、内核版本等。

默认情况下,Ubuntu 20.04 上未预装 nmap。 您可以通过运行以下命令来安装它:

$ sudo apt update
$ sudo apt install nmap

验证 nmap 是否安装成功:

$ nmap -version

输出:

现在,是时候使用 nmap 检查系统上的开放端口了。 让我们运行命令:

$ sudo nmap -sT -p- 10.128.0.2

输出:

其中:

-sT -p- 表示 nmap 将扫描所有 TCP 端口。

10.128.0.2 是您主机的内部 IP 地址。

如果要扫描 UDP 端口,请使用 -sU 选项运行 nmap:

$ sudo nmap -sU -p- 10.128.0.2

输出:

使用 netcat 检查开放端口

Netcat 是一个强大的命令行工具,用于执行网络操作。 它使用 TCP 和 UDP 协议跨网络读取和写入数据。

Necat 也可用于扫描和重定向网络端口。

如果要检查 IP 为 10.128.0.2 的 Ubuntu 20.04 机器上 20-25 范围内的开放端口,请运行以下命令:

$ netcat -z -v 10.128.0.2 20-50

输出:

其中:

-z 表示 netcat 只扫描开放端口

-v 向终端发送详细信息

如果您只想显示打开的端口,可以运行:

$ netcat -z -v 10.128.0.2 20-80 2>&1 | grep succeeded

输出:

要扫描 UDP 中的端口,让我们使用 -u 选项,如下所示:

$ netcat -z -v -u 10.128.0.2 20-80 2>&1 | grep succeeded

输出:

结论

本教程向您展示了一些可用于检查 Linux 系统上开放端口的常用工具。

如果您有任何疑问,请在评论部分告诉我。