找出 Linux 中正在监听的端口的 4 种方法找出 Linux 中正在监听的端口的 4 种方法找出 Linux 中正在监听的端口的 4 种方法找出 Linux 中正在监听的端口的 4 种方法
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

找出 Linux 中正在监听的端口的 4 种方法

Linux 是一种流行的操作系统,被系统管理员、开发人员和其他技术爱好者广泛使用。管理 Linux 系统的重要任务之一是确定哪些端口正在使用以及哪些端口可用。在本文中,我们将讨论 4 种方法来找出 Linux 中正在侦听的端口。

使用netstat命令

netstat 命令是一个功能强大的工具,它提供有关网络连接、路由表和其他相关统计信息的详细信息。要检查哪些端口正在侦听,您可以使用以下命令 -

$ netstat -ltn

此命令将显示当前正在侦听系统的所有端口的列表。 “-l”选项告诉 netstat 仅显示侦听套接字,“-t”指定 TCP 连接,“-n”显示端口号而不是将其解析为名称。

这是一个示例输出 -

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     

输出显示 SSH 守护程序正在侦听端口 22,CUPS 打印服务正在侦听端口 631。

使用 lsof 命令

lsof 命令(“list open files”的缩写)是一个功能强大的工具,可用于列出 Linux 系统上所有打开的文件和网络连接。要找出哪些端口正在侦听,您可以使用以下命令 -

$ sudo lsof -i -P -n | grep LISTEN

此命令将显示系统上处于侦听状态的所有打开的网络连接的列表。 “-i”选项指定我们对网络连接感兴趣,“-P”告诉 lsof 使用端口号而不是服务名称,“-n”禁用主机名解析。

这是一个示例输出 -

sshd      2269     root    3u  IPv4  11758      0t0  TCP *:22 (LISTEN)
cupsd     2889     root    7u  IPv4  16314      0t0  TCP 127.0.0.1:631 (LISTEN)

输出显示 SSH 守护程序正在侦听端口 22,CUPS 打印服务正在侦听端口 631。

使用 ss 命令

ss 命令是 netstat 命令的现代替代品,并提供类似的功能。要检查哪些端口正在侦听,您可以使用以下命令 -

$ sudo ss -ltn

此命令将显示当前正在侦听系统的所有 TCP 端口的列表。 “-l”选项告诉 ss 仅显示侦听套接字,“-t”指定 TCP 连接,“-n”显示端口号而不是将其解析为名称。

这是一个示例输出 -

State      Recv-Q Send-Q          Local Address:Port            Peer Address:Port
LISTEN     0      128                       *:22                     *:*
LISTEN     0      5                     127.0.0.1:631                    *:*

输出显示 SSH 守护程序正在侦听端口 22,CUPS 打印服务正在侦听端口 631。

使用 nmap 命令

nmap命令是一个功能强大的工具,可用于网络探索、安全扫描和端口扫描。要检查哪些端口正在远程系统上侦听,您可以使用以下命令 -

$ sudo nmap -sS -p- <remote_ip>

此命令将对远程系统上的所有端口执行 TCP SYN 扫描,并报告哪些端口已打开并正在侦听。 “-sS”选项告诉nmap使用SYN扫描,这是一种隐秘的扫描技术,可以逃避一些网络入侵检测系统。 “-p-”选项告诉 nmap 扫描系统上的所有 65535 端口。

这是一个示例输出 -

Starting Nmap 7.60 ( https://nmap.org ) at 2023-03-23 10:00 PDT
Nmap scan report for <remote_ip>
Host is up (0.035s latency).
Not shown: 65534 filtered ports
PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   open   http
443/tcp  open   https

输出显示远程系统已打开并侦听端口 22、80 和 443。

使用 fusion 命令

fusion 命令是一个简单的实用程序,它使用特定文件、目录或套接字来识别进程。要使用 fusion 命令检查哪些端口正在侦听,请使用以下命令 -

$ sudo fuser -n tcp -v 1-65535

此命令将显示使用 TCP 端口 1 到 65535 的所有进程。让我们分解一下命令中使用的选项 -

-n tcp 告诉 fusionr 仅显示 TCP 连接

-v 告诉 fusionr 显示更详细的输出

fusion 命令的输出将显示使用 TCP 端口的进程列表及其各自的 PID。

使用 lshw 命令

lshw 命令是一个硬件信息实用程序,也可用于显示网络信息,包括打开的端口。要使用 lshw 命令检查哪些端口正在侦听,请使用以下命令 -

$ sudo lshw -class network -short

此命令将显示系统上的网络设备列表,以及它们各自的驱动程序和开放端口。

使用 iptables 命令

iptables 命令是一个功能强大的防火墙实用程序,可用于显示和操作防火墙规则,包括开放端口。要使用 iptables 命令检查哪些端口正在侦听,请使用以下命令 -

$ sudo iptables -L -n

此命令将显示系统上当前的防火墙规则,包括允许通过防火墙的任何开放端口。

结论

对于系统管理员、开发人员和安全专业人员来说,识别 Linux 系统上正在侦听的端口是一项重要任务。在本文中,我们讨论了在 Linux 中查找端口正在侦听的 4 种方法:使用 netstat 命令、使用 lsof 命令、使用 ss 命令和使用 nmap 命令。这些方法中的每一种都有其自身的优点和缺点,您应该选择最适合您的需求的一种。有了这些工具,您可以更好地管理您的 Linux 系统并保证其安全。

©2015-2025 艾丽卡 support@alaica.com