Linux如何查看开放端口

2025-04发布6次浏览

在Linux系统中,查看开放端口是一项常见的任务,无论是为了系统安全检查、网络故障排除还是配置服务。本文将详细介绍如何在Linux系统中查看开放端口,并提供一些常用的命令和技巧。

使用netstat命令

netstat 是一个网络统计工具,可以显示网络连接、路由表、接口统计、伪装连接和多播成员。

步骤:

  1. 打开终端。
  2. 输入以下命令来查看所有开放的端口及与之相关的进程:
sudo netstat -tuln
  • -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 :::80                   :::*                    LISTEN     
udp        0      0 0.0.0.0:68              0.0.0.0:*                          

从上面的输出可以看到,22端口(SSH)和80端口(HTTP)是开放的。

使用ss命令

ssnetstat 的替代工具,功能更强大且速度更快。

步骤:

  1. 在终端输入以下命令查看开放端口:
sudo ss -tuln

选项与 netstat 类似:

  • -t:显示TCP端口。
  • -u:显示UDP端口。
  • -l:仅显示监听中的套接字。
  • -n:以数字形式显示地址和端口号。

使用lsof命令

lsof 命令可以列出当前系统打开的文件,包括网络连接。

步骤:

  1. 输入以下命令查看开放端口及其相关进程:
sudo lsof -i -P -n | grep LISTEN
  • -i:显示网络文件。
  • -P:显示端口号而不是服务名称。
  • -n:显示IP地址而不是主机名。

使用nmap扫描

nmap 是一个网络扫描工具,可以用来探测开放端口。

步骤:

  1. 安装 nmap(如果尚未安装):
sudo apt-get install nmap
  1. 使用以下命令扫描本机开放端口:
sudo nmap localhost

这将返回类似以下的结果:

Starting Nmap 7.60 ( https://nmap.org ) at 2023-04-01 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000050s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql

总结

通过上述方法,你可以轻松地在Linux系统中查看哪些端口是开放的,并了解每个端口上运行的服务。这对于确保系统的安全性以及诊断网络问题非常有用。