如何在 Ubuntu 上查找开放端口?如何在 Ubuntu 上查找开放端口?如何在 Ubuntu 上查找开放端口?如何在 Ubuntu 上查找开放端口?
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Ubuntu 上查找开放端口?

发表 admin at 2025年2月28日
类别
  • 未分类
标签

为了排除网络故障并维护服务器的安全,网络管理员或安全专业人员必须了解用于查找服务器上开放端口的工具。 Linux 提供了不同的实用程序和命令行选项来列出服务器上的开放端口。在本教程中,我们将了解如何在 Ubuntu 终端中使用不同的命令列出所有打开的端口。

开放端口是什么意思?

在深入检查开放端口之前,我们首先了解开放端口的含义。开放端口或侦听端口是某些应用程序正在其中运行的端口。正在运行的应用程序侦听某个端口,我们可以通过该侦听端口与该应用程序进行通信。如果一个应用程序正在某个端口上运行,而我们尝试在同一端口上运行另一个应用程序,内核将抛出错误。这是我们在运行应用程序之前检查开放端口的众多原因之一。

使用 nmap 列出开放端口

Network Mapper,称为nmap,是一个开源免费工具,用于扫描系统上的端口。它用于查找漏洞、发现网络和查找开放端口。在本节中,我们将使用 nmap 获取系统上开放端口的列表。首先,在安装 nmap 之前更新 Ubuntu 上的缓存:

ubuntu@ubuntu:~$ sudo apt-get update -y

可以在终端中使用以下命令安装 Nmap:

ubuntu@ubuntu:~$ sudo apt-get install nmap -y

安装 nmap 后,通过检查 nmap 的版本来验证安装:

ubuntu@ubuntu:~$ nmap --version

如果给出nmap的版本,则说明安装完美,否则,请再次尝试上述命令以正确安装nmap。 Nmap 用于执行多项与网络相关的任务,端口扫描就是其中之一。 nmap 工具与许多选项一起使用。我们可以使用以下命令获取所有可用选项的列表:

ubuntu@ubuntu:~$ man nmap

因此,要扫描您的本地主机,请使用下面的命令:

ubuntu@ubuntu:~$ sudo nmap localhost

它将列出本地主机上所有打开的端口,如上图所示。我们还可以使用nmap来扫描远程主机:

ubuntu@ubuntu:~$ sudo nmap 93.184.216.34

此外,我们可以使用远程服务器的主机名而不是 IP 地址:

ubuntu@ubuntu:~$ sudo nmap www.example.com

nmap 命令还可用于扫描 IP 地址范围。在命令中指定IP地址范围,如下命令:

ubuntu@ubuntu:~$ sudo nmap 192.168.1.1-10

上述命令将扫描从192.168.1.1到192.168.1.10的所有IP地址,并将结果显示在终端中。要扫描子网上的端口,我们可以使用 nmap,如下所示:

ubuntu@ubuntu:~$ sudo nmap 192.168.1.1/24

上述命令将扫描该命令定义的子网中具有 IP 地址的所有主机。

有时你必须扫描随机主机上的端口,这些主机位于不同的子网中并且不按顺序排列,那么最好的解决方案是编写一个主机文件,其中写入所有主机名,并用一个或多个空格、制表符或新字符分隔线。该文件可以与 nmap 一起使用,如下所示:

ubuntu@ubuntu:~$ sudo nmap -iL hosts.txt

我们可以使用 nmap 来扫描系统上的单个端口,方法是使用“-p”标志和 nmap 指定端口,如以下命令所示:

ubuntu@ubuntu:~$ sudo nmap -p 80 localhost

还可以通过以下方式使用 nmap 在系统上扫描端口范围:

ubuntu@ubuntu:~$ sudo nmap -p 80-85 localhost

我们可以使用 nmap 扫描系统的所有端口:

ubuntu@ubuntu:~$ sudo nmap -p- localhost

要获取系统上最常打开的端口的列表,您可以使用带“-F”标志的 nmap 命令:

ubuntu@ubuntu:~$ sudo nmap -F localhost

只需添加“-T”标志以及 nmap 命令,即可使用 nmap 在系统上扫描 TCP 端口:

ubuntu@ubuntu:~$ sudo nmap -sT localhost

同样,对于 UDP 端口,您可以在 nmap 命令中使用“-U”标志:

ubuntu@ubuntu:~$ sudo nmap -sU localhost

使用 lsof 列出开放端口

lsof 命令也称为“列出打开文件”,用于获取有关 UNIX 和 LINUX 等操作系统中不同进程使用的打开文件的信息。对于大多数 Linux 发行版来说,该工具都是预安装的。我们可以通过检查 lsof 的版本来验证其安装:

ubuntu@ubuntu:~$ lsof -v

如果没有显示版本,则默认情况下未安装 lsof。我们仍然可以在终端中使用以下命令来安装它:

ubuntu@ubuntu:~$ sudo apt-get update -y
ubuntu@ubuntu:~$ sudo apt-get install lsof

我们可以使用 lsof 命令以及不同的选项。可以在终端中使用以下命令显示所有可用选项的列表:

ubuntu@ubuntu:~$ man lsof

现在,在本节中,我们将使用 lsof 以不同的方式显示系统的端口:

ubuntu@ubuntu:~$ sudo lsof -i

上面的命令显示了所有开放的端口。我们还可以使用 lsof 命令来显示所有打开的套接字:

ubuntu@ubuntu:~$ sudo lsof -n -P | grep LISTEN

我们可以使用 lsof 列出基于协议的过滤端口。运行下面给出的命令列出所有 TCP 连接类型:

ubuntu@ubuntu:~$ sudo lsof -i tcp

同样,我们可以使用 lsof 列出所有 UDP 连接类型,如下所示:

ubuntu@ubuntu:~$ sudo lsof -i udp

使用 netstat 列出开放端口

netstat,也称为网络统计信息,是一个命令行程序,用于显示有关网络的详细信息。它显示传入和传出的 TCP 连接、路由表、网络接口等。在本节中,我们将使用 netstat 列出系统上的开放端口。可以通过运行以下命令来安装 netstat 工具:

ubuntu@ubuntu:~$ sudo apt-get update -y
ubuntu@ubuntu:~$ sudo apt-get install net-tools -y

运行上述命令后,您可以通过检查netstat版本来验证安装:

ubuntu@ubuntu:~$ netstat --version

如果显示net-tools的版本,则说明安装成功,否则,请重新运行安装命令。要获取可与 netstat 命令一起使用的所有可用选项的概述,请运行以下命令:

ubuntu@ubuntu:~$ man netstat

我们可以通过运行以下命令在 Ubuntu 中使用 netstat 命令获取所有侦听端口的列表:

ubuntu@ubuntu:~$ sudo netstat -l

netstat 命令还可以用于过滤侦听 TCP 和 UDP 端口,只需在命令中添加一个标志即可。用于监听 TCP 端口:

ubuntu@ubuntu:~$ sudo netstat -lt

要监听 UDP 端口,请使用以下命令:

ubuntu@ubuntu:~$ sudo netstat -lu

要获取所有侦听 UNIX 端口的列表,可以在终端中运行以下命令:

ubuntu@ubuntu:~$ sudo netstat -lx

使用 ss 列出开放端口

ss命令用于显示Linux系统中有关套接字的信息。它比 netstat 命令显示更多有关套接字的详细信息。大多数 Linux 发行版都预安装了 ss 命令,因此您无需在使用前安装它。您可以通过使用 ss 运行“man”命令来获取可与 ss 命令一起使用的所有选项的列表:

ubuntu@ubuntu:~$ man ss

要获取所有连接的列表(无论其状态如何),请使用不带任何标志的 ss 命令:

ubuntu@ubuntu:~$ sudo ss

要获取所有侦听端口的列表,请使用带“-l”标志的 ss 命令。 “-l”标志用于仅显示侦听端口:

ubuntu@ubuntu:~$ sudo ss -l

要获取所有侦听 TCP 端口,我们可以将“-t”和“-l”标志与 ss 命令一起使用:

ubuntu@ubuntu:~$ sudo ss -lt

同样,我们可以使用 ss 命令以及“-u”和“-l”标志来获取所有侦听 UDP 端口的列表:

ubuntu@ubuntu:~$ sudo ss -lu

ss 命令还可用于获取与源端口或目标端口的所有连接的列表。在以下示例中,我们将获取与目标或源端口 22 的所有连接的列表:

ubuntu@ubuntu:~$ sudo ss -at ‘( dport = :22 or sport = :22 )’

如果您使用 ssh 连接到远程系统,您将获得所有入站和出站连接的列表。

结论

对于系统管理员、安全专业人员和其他 IT 相关人员来说,了解服务器上的开放端口非常重要。 Linux 拥有丰富的用于诊断网络的工具,并提供了许多有助于各种网络活动的工具。在本教程中,我们使用了 netstat、ss、lsof 和 nmap 等工具来检查 Ubuntu 上的开放端口。读完本文后,您将能够通过多种方式轻松列出 Linux 服务器上的所有侦听端口。

©2015-2025 Norria support@norria.com