Linux 如何查看本机端口开放情况
引言
在 Linux 系统中,端口是用于网络通信的重要概念。了解本机端口的开放情况对于网络安全、网络配置和故障排除等方面都非常有用。本文将详细介绍如何在 Linux 系统中查看本机端口的开放情况。
什么是端口
在计算机网络中,端口是用于标识进程或服务的终端。每个端口都与一个数字相关联,该数字称为端口号。常见的端口号范围是从0到65535,被分为三类:
- 众所周知的端口:被称为”well-known”端口,范围在0-1023之间,用于标识常用的网络服务,如HTTP(端口80)、SSH(端口22)、FTP(端口21)等。
- 注册端口:范围在1024-49151之间,用于标识注册的网络服务和应用程序。
- 动态/私有端口:范围在49152-65535之间,用于临时分配给客户端应用程序。
查看本机已开放端口
在 Linux 系统中,我们可以使用多种方法来查看本机已开放的端口。下面介绍了一些常用的命令和工具。
1. 使用 netstat 命令
netstat
命令是用于打印网络连接、路由表和网络接口信息的工具。可以使用以下命令来列出所有已开放的端口:
该命令显示了所有已建立的网络连接和监听的端口信息。其中:
-t
参数表示只显示 TCP 连接;-u
参数表示只显示 UDP 连接;-l
参数表示只显示监听中的连接;-n
参数表示以数字形式显示端口号。
下面是该命令的示例输出:
从输出中可以看到,本机开放了TCP端口22和80(用于SSH和HTTP服务),以及UDP端口5353(用于mDNS服务)。
2. 使用 ss 命令
ss
命令是用于获取套接字统计信息的工具。与 netstat
不同,ss
命令在新的 Linux 发行版上被推荐使用。可以使用以下命令来列出所有已开放的端口:
ss
命令的参数与 netstat
命令类似。下面是该命令的示例输出:
从输出中可以看到,本机开放了TCP端口22。
3. 使用 lsof 命令
lsof
命令用于显示已打开文件的相关信息。在 Linux 中,端口也被视为打开的文件。可以使用以下命令来列出所有已开放的端口:
该命令会输出所有正在监听的端口信息。其中:
-i
参数表示只显示网络相关的信息;-P
参数表示以原始端口号显示,而不是将端口号解析为服务名;-n
参数表示不解析主机名。
以下是该命令的示例输出:
从输出中可以看到,本机开放了TCP端口22。
额外工具:Nmap
Nmap 是一个强大的网络探测和安全扫描工具,可以用于查看远程主机的开放端口。它提供了更多的功能和选项,适用于更复杂的端口扫描需求。以下是使用 nmap
命令扫描本地主机的示例:
该命令将扫描 127.0.0.1
主机上的所有端口。以下是示例输出的一部分:
从输出中可以看到,本机开放了TCP端口22和80。
结论
本文介绍了在 Linux 系统中查看本机端口开放情况的多种方法。通过使用 netstat
、ss
、lsof
命令可以快速获取本机已开放端口的信息。另外,Nmap 可以帮助我们扫描远程主机的开放端口。掌握这些工具和技巧对于网络安全和故障排除非常重要。