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

您的位置: 首页 > 文章列表 > 系统应用 > 如何检查 Linux 中特定网络套接字是否开放

如何检查 Linux 中特定网络套接字是否开放

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

扫一扫,手机访问

介绍

在这个实验中,你将学习如何在 Linux 系统中检查特定的网络套接字(socket)是否处于开放状态。掌握识别和检查活动网络套接字的方法,是进行网络故障排查和监控的一项基本技能。

通过实际操作练习,你将使用像 CODE0CODE1 这样强大的命令行工具来列出并过滤网络连接。你还将探索 CODE_2 文件系统,以更深入地了解套接字的详细信息,从而全面验证系统上网络套接字的状态。

使用 ss -tuln 检查套接字

在这一步中,你将学习如何使用 CODE_0 命令来检查 Linux 系统上的网络套接字(socket)。套接字是网络中数据收发的端点。了解如何查看活动的套接字对于网络故障排查和监控至关重要。

CODE_0 命令是一个用于检查套接字的强大工具。我们将使用以下选项:

  • CODE_0:显示 TCP 套接字。
  • CODE_0:显示 UDP 套接字。
  • CODE_0:显示监听套接字(等待连接的套接字)。
  • CODE_0:不解析服务名称(显示端口号而非服务名)。

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

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

ss -tuln

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

Netid State      Recv-Q Send-Q Local Address:Port               Peer Address:Port
tcp   LISTEN     0      128    0.0.0.0:22                       0.0.0.0:*
tcp   LISTEN     0      128    127.0.0.1:631                    0.0.0.0:*
tcp   LISTEN     0      128    0.0.0.0:5900                     0.0.0.0:*
tcp   LISTEN     0      128    127.0.0.1:25                     0.0.0.0:*
tcp   LISTEN     0      128    [::]:22                          [::]:*
tcp   LISTEN     0      128    [::1]:631                        [::]:*
tcp   LISTEN     0      128    [::]:5900                        [::]:*
tcp   LISTEN     0      128    [::1]:25                         [::]:*
udp   UNCONN     0      0      127.0.0.1:323                    0.0.0.0:*
udp   UNCONN     0      0      0.0.0.0:631                      0.0.0.0:*
udp   UNCONN     0      0      [::1]:323                        [::]:*
udp   UNCONN     0      0      [::]:631                         [::]:*

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

  • CODE0:套接字的类型(例如,CODE1CODE_2)。
  • CODE0:套接字的状态(例如,CODE1 表示它正在等待连接)。
  • CODE_0:接收队列中的字节数。
  • CODE_0:发送队列中的字节数。
  • CODE0:套接字绑定的本地 IP 地址和端口号。CODE1CODE_2 分别表示套接字正在所有可用的网络接口(IPv4 和 IPv6)上监听。
  • CODE0:套接字连接的远程 IP 地址和端口号。CODE1 表示套接字正在监听来自任何远程地址的连接。

此输出显示了系统上正在运行并监听连接的服务。例如,你可以看到 SSH(CODE0)、CUPS(CODE1)、VNC(CODE2)和邮件服务器CODE3)正在监听。

理解此输出是诊断网络连接问题或识别系统上可能存在的不必要服务的第一步。

点击 继续 进入下一步。

使用 netstat -tuln 验证套接字

在这一步中,你将使用另一个命令 CODE0 来验证网络套接字(socket)。与 CODE1 相比,CODE_2 是一个较旧的命令,但它仍然被广泛使用,并且能提供有关网络连接、路由表和接口统计信息等类似内容。

我们将使用与 CODE0 相同的选项来运行 CODE1,以查看监听的 TCP 和 UDP 套接字,且不解析服务名称:

  • CODE_0:显示 TCP 套接字。
  • CODE_0:显示 UDP 套接字。
  • CODE_0:显示监听套接字。
  • CODE_0:不解析服务名称。

在终端中输入以下命令并按回车键:

netstat -tuln

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

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:631                 :::*                    LISTEN
tcp6       0      0 :::5900                 :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN
udp        0      0 127.0.0.1:323           0.0.0.0:*
udp        0      0 0.0.0.0:631             0.0.0.0:*
udp6       0      0 ::1:323                 :::*
udp6       0      0 :::631                  :::*

注意,CODE0 的输出与 CODE1 的输出非常相似。这两个命令都提供了有关协议(CODE2)、本地地址和端口(CODE3)、外部地址和端口(CODE4)以及连接状态(CODE5)的信息。

虽然在复杂场景下,CODE0 通常被认为速度更快且信息更丰富,但 CODE1 仍然是你 Linux 命令工具库中的一个有价值的工具。熟悉这两个命令是很好的做法。

你现在已经成功使用 CODE0CODE1 查看了监听套接字。这是了解系统网络活动的一项基本技能。

点击 继续 进入下一步。

检查 /proc/net 中的套接字详细信息

在这一步中,你将探索 CODE0 目录,该目录提供了有关 Linux 内核中网络栈和网络协议的详细信息。CODE1CODE_2 等命令的数据就来源于此。

CODE_0 文件系统是一个虚拟文件系统,它提供了有关进程和其他系统信息。这是检查内核内部状态的一种强大方式。

CODE0 目录中,你会找到包含网络连接原始数据的文件。例如,CODE1CODE2CODE3CODE_4 文件分别包含了活动的 TCP 和 UDP 套接字(分别对应 IPv4 和 IPv6)的信息。

让我们查看 CODE_0 文件的内容。在终端中输入以下命令并按回车键:

cat /proc/net/tcp

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

sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops
   0: 0100007F:0019 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 12345 1 0000000000000000 0
   1: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 67890 1 0000000000000000 0
   ... (more lines)

这个输出不如 CODE0CODE1 的输出直观,因为它是内核的原始数据。每一行代表一个 TCP 套接字,包含多个字段,其中包括:

  • CODE_0:套接字列表索引。
  • CODE0:以十六进制格式表示的本地 IP 地址和端口。CODE1CODE2(回环地址)的十六进制表示,CODE3 是端口 25 的十六进制表示。
  • CODE_0:以十六进制格式表示的远程 IP 地址和端口。
  • CODE0:套接字的状态(例如,CODE1 表示 CODE_2)。
  • CODE_0:发送队列大小。
  • CODE_0:接收队列大小。
  • CODE_0:拥有该套接字的用户 ID。
  • CODE_0:套接字的 inode 编号。

你还可以通过查看 CODE_0 文件来查看 UDP 套接字:

cat /proc/net/udp

对于 IPv6 套接字,你可以检查 CODE0CODE1 文件。

虽然在日常使用中你通常不会直接解析这些文件,但了解网络信息的来源可以让你更深入地了解 Linux 是如何管理网络连接的。像 CODE0CODE1 这样的命令本质上是读取并格式化这些文件中的数据,以便于理解。

你现在已经探索了 CODE_0 文件系统中可用的原始套接字信息。

点击 继续 完成实验。

总结

本次实验中,你学会了运用各种命令行工具,去检测Linux系统里特定网络套接字是否处于开放状态。首先,你使用了带有CODE0选项的CODE1命令,它能展示正在监听的TCP和UDP套接字,同时你还了解了输出列,像CODE2CODE3CODE4以及CODE5等。

一般来说,在使用了CODE0之后,你会接着使用CODE_1命令来验证套接字信息,这个命令能提供类似的网络统计数据。最后,你还探索了如何直接从CODE_2文件系统中检查详细的套接字信息,这能让你从更底层的角度来了解网络栈。通过这些步骤,你就能全面地识别和检查Linux系统上开放的网络套接字了。

本文转载于:https://labex.io/zh/tutorials/linux-how-to-check-if-a-specific-network-socket-is-open-in-linux-558761 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。
  • 如何在 Linux 中检查字符串是否为空 正版软件
    如何在 Linux 中检查字符串是否为空
    介绍 在本实验里,你会学到Linux中处理字符串的基础技术。你会知晓如何利用CODE0命令来高效检查字符串是否为空,这可是shell脚本条件逻辑里的一项关键技能。另外,你还会练习运用功能丰富的CODE1命令来展示字符串内容,并且探索如何使用CODE_2命令来度量字符串的长度。这些实际操作练习会让你在
    33分钟前 0
  • 如何在 Linux 中检查符号链接是否存在 正版软件
    如何在 Linux 中检查符号链接是否存在
    介绍 在这个实验中,你将学习如何判断 Linux 中的文件是否为符号链接(symbolic link)。你将探索三种不同的方法来实现这一目标。 首先,你将使用带有 CODE0 选项的 CODE1 命令以编程方式检查文件类型。然后,你将通过查看 CODE2 命令的输出来验证链接信息。最后,你将学习如何
    34分钟前 0
  • 如何检查 Linux 中是否设置了 sysctl 参数 正版软件
    如何检查 Linux 中是否设置了 sysctl 参数
    介绍 在此次实验中,你会学到怎样去检查Linux系统里有没有设置特定的CODE0参数。我们将研究三种达成此目标的方式:利用CODE1列出全部内核参数、查看系统CODE2中的CODE3配置文件,以及直接在CODE_4文件系统里验证参数的值。完成这个实验后,你就能掌握有效检查和理解Linux系统内核参数
    35分钟前 0
  • 如何在 Linux 中检查 systemd 单元是否已启用 正版软件
    如何在 Linux 中检查 systemd 单元是否已启用
    介绍 在此实验里,你将学会如何检查Linux中systemd单元的状态。要确定一个单元是否被配置为在启动时自动启动,你得使用CODE0命令;而要列出活动单元,则需使用CODE1命令。最后,你还要探索systemd单元文件在CODE_2目录中的位置。这个实验能为你提供管理服务以及理解systemd初始
    35分钟前 0
  • 如何在 Linux 中检查用户是否属于某个组 正版软件
    如何在 Linux 中检查用户是否属于某个组
    介绍 在这个实验中,你将学习如何在 Linux 系统中检查用户是否属于特定组。了解用户的组隶属关系对于管理 Linux 系统上的权限和访问控制至关重要。 你将探索三种不同的方法来验证用户的组隶属关系:使用 CODE0 命令列出用户所属的组,查看包含组信息的 CODE1 文件,以及使用 CODE_2
    36分钟前 0