云服务器

首页 > Linux服务器管理 > 如何检查 Linux系统服务器中的开放端口

如何检查 Linux系统服务器中的开放端口

如果您的房子是服务器,那么 Linux 中的端口就像您房子的门牌号。每当有人想要连接到您的服务器时,它都需要指定要连接到哪个端口。根据端口号,服务器会将请求路由到特定应用程序,然后该应用程序将处理该请求。例如,Linux 上的大多数网站都使用 Apache Web 服务器应用程序,当服务器从浏览器收到显示页面的安全 SSL 请求时,它会路由到后端的端口号 443。非安全 HTTP 请求请改用端口号 80。如果您尝试使用安全 HTTP 请求连接到端口 80,服务器将生成错误。

检查 Linux 上开放端口的方法

在 Linux 上,您可以使用多个命令来检查开放端口。以下是所有命令的示例。

1.使用 Netstat

Netstat 是一个较旧的 Linux 命令,用于显示网络信息。尽管它现在被认为速度较慢且不如其他工具详细,但它非常适合显示 Linux 上的开放端口。您可以使用以下命令:

netstat -tuln

此命令使用以下选项:

  • t – 我们使用它来显示 TCP 连接。大多数互联网应用程序都使用它
  • u – 显示 UDP 连接。UDP 用于速度更快、可靠性不太重要的应用程序。
  • l – 此选项仅显示“正在监听”的套接字。这些套接字显示打开的端口。
  • n – 我们使用它来告诉 netstat 不要费心进行 DNS 查找 IP 地址和用户名。它只为我们提供数字信息,这正是我们正在寻找的。

上述命令生成以下输出:

在上面的截图中,打开的端口号位于冒号 (:) 后面的标记列中。因此,它告诉我们以下端口是打开的:

  1. 53
  2. 33060
  3. 3306
  4. 25
  5. 22

上述每个端口均由特定应用程序使用。您不应公开分享有关服务器上开放端口的上述信息。

2. 使用 ss

用于检查 Linux 上开放端口的第二个工具是 ss。与 netstat 相比,SS 是一种更详细的工具,而且速度也更快。但要检查 Linux 中的开放端口,这两个工具没有区别。SS 用于调查套接字 – 即端口和 IP 地址的组合。要使用 SS,请键入以下命令:

ss -tuln

如您所见,ss 使用的参数与 netstat 使用的参数相同,并且具有相同的解释。以下是 SS 检查打开套接字的输出屏幕截图:

与 netstat 类似,输出也非常相似。

使用 lsof

lsof 命令不仅对于检查打开的端口非常有用,而且对于检查与其关联的进程和文件也非常有用。“lsof”代表“列出打开的文件”。在 Linux 中,所有内容都被视为文件 – 甚至进程也是如此,因此此命令非常适合我们的目的。以下是用法:

sudo lsof -i -P -n | grep LISTEN

lsof 命令使用以下参数:

  • i – 此参数指示 Linux 将其输出限制为与网络活动相关的文件。由于我们对其他进程不感兴趣,这有助于缩小输出范围并使我们更容易阅读。
  • P – “P” 参数要求 lsof 保留实际端口号,而不是将其链接到服务文件。因此,我们看到“80”作为端口号,而不是“http”
  • n – 与 ss 和 netstat 一样,“n”确保 lsof 不会将 IP 地址转换为主机名。这使该工具更快,因为它不必查阅 DNS 数据库。
  • | grep LISTEN – 此命令获取 lsof 的输出,并且仅包含包含单词“LISTEN”的条目。这确保我们只获得正在监听端口的服务列表。Grep 是处理此类事情的有用工具。

运行上述命令将得到以下输出:

在这里,您不仅可以看到系统上打开的端口,还可以看到监听这些端口的进程。例如,我们看到 SSH 服务“sshd”使用默认端口号 22,MySQL 分别对常规和文档存储选项使用端口号 3306 和 33060。

我们需要开放哪些常用端口?

Linux 中有一些非常常见的端口,您需要确保它们保持打开状态才能正常运行。这些端口包括:

  1. SSH 端口 – 通常为 22
  2. HTTP – 80
  3. 安全 HTTP – 443
  4. SMTP – 25
  5. POP3 – 110
  6. IMAP – 143
  7. FTP – 21
  8. IMAP 安全 – 993
  9. POP3 安全 – 995
  10. MYSQL – 3306 和 33060

这些只是需要打开的部分端口。更改默认端口通常是个好主意,尤其是对于 SSH 等敏感协议,这样黑客就更难入侵。

有关开放端口的最佳实践

鉴于端口本质上是进入服务器的门户,在处理端口时遵循最佳实践非常重要。以下是一些最佳实践。

最小特权原则

最小权限原则规定,必须为用户和应用程序提供执行任务所需的最少权限。例如,当用户只需要读取文件时,不要授予其写入权限。在 Linux 中开放端口的上下文中,它指的是关闭系统上不需要打开的所有端口的概念。

许多系统都有默认端口,这些端口可能需要根据具体情况关闭。例如,我关闭了服务器上的邮件系统,因为我使用第三方服务来实现邮件功能,并且我不需要相关的邮件端口保持打开状态。

监控您的流量是否存在可疑活动

您可以设置防火墙来监控可疑流量。例如,我设置了一个速率限制过滤器,当同一 IP 地址的流量突然增加时,它会向我发出警报,并暂时禁止它们进入服务器。您可能不想禁止,而是想分析流量,看看它是否合法。使用数据日志来监控流量到达的端口,看看是否有任何端口不必要地打开。

检查 Linux 中哪些端口是开放的很容易。有几种工具可以完成这项工作。我喜欢使用 lsof,因为它还为我提供了与开放端口关联的服务的文件名,并且我可以确定是否要继续使用该服务。重要的是要进行端口清洁,并确保只保持运行服务器所需的最少数量的端口开放。

图片描述

发表回复