如何在 Ubuntu Linux 上显示/检查开放端口

您所在的位置:网站首页 怎么看开放的端口是哪个 如何在 Ubuntu Linux 上显示/检查开放端口

如何在 Ubuntu Linux 上显示/检查开放端口

2024-07-02 17:16| 来源: 网络整理| 查看: 265

如何在 Ubuntu Linux 上显示/检查开放端口

检查 Ubuntu Linux 上的开放端口是安全管理的重要组成部分。某些 Linux 软件通过监听传入连接来工作。一个简单的例子是网络服务器,每当有人导航到网站时,它就会处理用户请求。作为 Linux 管理员或用户,始终了解系统的哪些端口对互联网开放非常重要。否则,您可能不会意识到与您的计算机建立的外部连接,这会消耗带宽和资源,同时也是潜在的安全漏洞。

在本教程中,我们将了解如何检查 Ubuntu Linux 上的开放端口。这可以通过几种不同的命令行实用程序来完成,我们将详细介绍这些实用程序。我们还将了解如何使用 Ubuntu 的 ufw 防火墙来确保端口安全。那么,您知道您的系统开放了哪些端口吗?让我们来看看吧。

在本教程中您将学习:

如何使用 ss 命令检查开放端口

如何使用 Nmap 实用程序检查开放端口

如何在ufw防火墙中检查并添加允许的端口

使用 ss 命令检查开放端口

ss 命令可用于显示哪些端口正在侦听连接。它还显示它正在接受来自哪些网络的连接。

你知道吗? ss 命令取代了 Linux 上较旧的 netstat 命令。您仍然可以安装并使用 netstat 命令来检查开放端口。

我们建议在命令中使用 -ltn 选项来查看简洁且相关的输出。让我们看一下我们测试系统上的一个例子。

$ sudo ss -ltn State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* LISTEN 0 5 127.0.0.1:631 0.0.0.0:* LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* LISTEN 0 151 127.0.0.1:3306 0.0.0.0:* LISTEN 0 5 [::1]:631 [::]:* LISTEN 0 511 *:80 *:*

我们可以看到我们的服务器正在侦听端口 80、3306 和 33060 上的连接。这些是与 HTTP 和 MySQL 相关的众所周知的端口。

您还会看到 ss 输出显示端口 53 和 631 处于监听状态。它们分别用于 DNS 和 Internet 打印协议。这些默认情况下处于启用状态,因此您可能会看到它们在您自己的系统上监听。 DNS 端口实际上并未开放,但它为我们系统上安装的应用程序提供名称解析。

要查看这些侦听端口属于哪些进程,请在命令中包含 -p 选项。

$ sudo ss -ltnp State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=530,fd=13)) LISTEN 0 5 127.0.0.1:631 0.0.0.0:* users:(("cupsd",pid=572,fd=7)) LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* users:(("mysqld",pid=2320,fd=32)) LISTEN 0 151 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=2320,fd=34)) LISTEN 0 5 [::1]:631 [::]:* users:(("cupsd",pid=572,fd=6)) LISTEN 0 511 *:80 *:* users:(("apache2",pid=2728,fd=4),("apache2",pid=2727,fd=4),("apache2",pid=2725,fd=4))

现在我们可以看到 systemd-resolve、cupsd、mysqld 和 apache2 是利用端口侦听传入连接的服务。

使用 nmap 检查开放端口

Nmap 是一个网络侦察工具,可用于检查远程主机上的开放端口。但是,我们也可以使用它来检查我们自己的系统,以获得开放端口的快速列表。

通常,我们会指定一个远程IP地址供Nmap扫描。相反,我们可以通过在命令中指定 localhost 来扫描我们自己的系统。

$ sudo nmap localhost Starting Nmap 7.80 ( https://nmap.org ) at 2021-03-12 20:43 EST Nmap scan report for localhost (127.0.0.1) Host is up (0.000012s latency). Not shown: 997 closed ports PORT STATE SERVICE 80/tcp open http 631/tcp open ipp 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds 检查ufw防火墙打开了哪些端口

您应该记住一个重要的警告。在本地系统上使用 ss 或 nmap localhost 命令时,我们会绕过防火墙。事实上,这些命令显示处于侦听状态的端口,但这并不一定意味着这些端口对互联网开放,因为我们的防火墙可能会拒绝连接。

使用以下命令检查 ufw 防火墙的状态。

$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip

从输出中,我们可以看到 ufw 正在拒绝传入连接。由于端口 80 和 3306 尚未添加为例外,因此 HTTP 和 MySQL 无法接收传入连接,尽管 ss 和 nmap 报告它们处于侦听状态。 让我们使用以下命令为这些端口添加例外。

$ sudo ufw allow 80/tcp Rule added Rule added (v6) $ sudo ufw allow 3306/tcp Rule added Rule added (v6)

我们可以再次检查 ufw 的状态,看看端口现在是否已打开。

$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 80/tcp ALLOW IN Anywhere 3306/tcp ALLOW IN Anywhere 80/tcp (v6) ALLOW IN Anywhere (v6) 3306/tcp (v6) ALLOW IN Anywhere (v6)

现在我们的两个端口在防火墙中打开并处于侦听状态。要了解有关 ufw 防火墙的更多信息(包括命令示例),请查看有关在 Linux 上安装和使用 ufw 防火墙的指南。

结束语

在本指南中,我们了解了如何使用 ss 命令以及 nmap 实用程序来检查 Ubuntu Linux 上的侦听端口。我们还学习了如何检查 ufw 防火墙以查看哪些端口打开,并在必要时添加例外。

如果端口处于侦听状态并且允许通过防火墙,则它应该对传入连接开放。但这也取决于您的计算机和互联网之间的路由器或其他网络设备,因为它们可能有自己的规则来阻止传入连接。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3