Linux 如何查看本机端口开放情况

Linux 如何查看本机端口开放情况

Linux 如何查看本机端口开放情况

引言

在 Linux 系统中,端口是用于网络通信的重要概念。了解本机端口的开放情况对于网络安全、网络配置和故障排除等方面都非常有用。本文将详细介绍如何在 Linux 系统中查看本机端口的开放情况。

什么是端口

在计算机网络中,端口是用于标识进程或服务的终端。每个端口都与一个数字相关联,该数字称为端口号。常见的端口号范围是从0到65535,被分为三类:

  • 众所周知的端口:被称为”well-known”端口,范围在0-1023之间,用于标识常用的网络服务,如HTTP(端口80)、SSH(端口22)、FTP(端口21)等。
  • 注册端口:范围在1024-49151之间,用于标识注册的网络服务和应用程序。
  • 动态/私有端口:范围在49152-65535之间,用于临时分配给客户端应用程序。

查看本机已开放端口

在 Linux 系统中,我们可以使用多种方法来查看本机已开放的端口。下面介绍了一些常用的命令和工具。

1. 使用 netstat 命令

netstat命令是用于打印网络连接、路由表和网络接口信息的工具。可以使用以下命令来列出所有已开放的端口:

$ netstat -tuln
Bash

该命令显示了所有已建立的网络连接和监听的端口信息。其中:

  • -t参数表示只显示 TCP 连接;
  • -u参数表示只显示 UDP 连接;
  • -l参数表示只显示监听中的连接;
  • -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
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
udp        0      0 0.0.0.0:5353            0.0.0.0:*
Bash

从输出中可以看到,本机开放了TCP端口22和80(用于SSH和HTTP服务),以及UDP端口5353(用于mDNS服务)。

2. 使用 ss 命令

ss命令是用于获取套接字统计信息的工具。与 netstat 不同,ss 命令在新的 Linux 发行版上被推荐使用。可以使用以下命令来列出所有已开放的端口:

$ ss -tuln
Bash

ss 命令的参数与 netstat 命令类似。下面是该命令的示例输出:

State      Recv-Q Send-Q                      Local Address:Port                       Peer Address:Port               
LISTEN     0      128                            0.0.0.0:22                               0.0.0.0:*                  
LISTEN     0      128                               [::]:22                                  [::]:*                  
Bash

从输出中可以看到,本机开放了TCP端口22。

3. 使用 lsof 命令

lsof 命令用于显示已打开文件的相关信息。在 Linux 中,端口也被视为打开的文件。可以使用以下命令来列出所有已开放的端口:

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

该命令会输出所有正在监听的端口信息。其中:

  • -i参数表示只显示网络相关的信息;
  • -P参数表示以原始端口号显示,而不是将端口号解析为服务名;
  • -n参数表示不解析主机名。

以下是该命令的示例输出:

sshd      1116     root    3u  IPv4   10235      0t0  TCP *:22 (LISTEN)
sshd      1116     root    4u  IPv6   10237      0t0  TCP *:22 (LISTEN)
Bash

从输出中可以看到,本机开放了TCP端口22。

额外工具:Nmap

Nmap 是一个强大的网络探测和安全扫描工具,可以用于查看远程主机的开放端口。它提供了更多的功能和选项,适用于更复杂的端口扫描需求。以下是使用 nmap 命令扫描本地主机的示例:

$ sudo nmap -p- 127.0.0.1
Bash

该命令将扫描 127.0.0.1 主机上的所有端口。以下是示例输出的一部分:

PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
Bash

从输出中可以看到,本机开放了TCP端口22和80。

结论

本文介绍了在 Linux 系统中查看本机端口开放情况的多种方法。通过使用 netstatsslsof 命令可以快速获取本机已开放端口的信息。另外,Nmap 可以帮助我们扫描远程主机的开放端口。掌握这些工具和技巧对于网络安全和故障排除非常重要。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册