L

Linux系统查看本机所有开放端口

HB 网络杂类 2022-11-29

在 Linux 系统中,有多种方法可以查看开放的端口,下面介绍四种常用的命令及其使用方法。

netstat 命令
查看所有开放的 TCP 和 UDP 端口

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     
udp        0      0 0.0.0.0:68              0.0.0.0:*   

这里 Proto 列显示协议类型(TCP 或 UDP),Local Address 列显示本地监听的地址和端口号,例如 0.0.0.0:22 表示在所有网络接口上监听 TCP 端口 22(通常是 SSH 服务)。

ss 命令
ss 是 netstat 的替代品,它比 netstat 更快且功能更强大。

查看所有开放的 TCP 和 UDP 端口

ss -tuln

参数含义与 netstat 中的 -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:*                  
udp    UNCONN     0      0            0.0.0.0:68                     0.0.0.0:*

输出信息和 netstat 类似,同样能清晰看到监听的端口和协议。

lsof 命令
lsof(list open files)可以列出当前系统打开的所有文件,网络套接字也被视为文件,因此可以用它来查看开放的端口。

查看所有开放的 TCP 端口

lsof -iTCP -sTCP:LISTEN -P -n

参数:
-iTCP:只显示 TCP 相关的网络连接。
-sTCP:LISTEN:只显示处于监听状态的 TCP 连接。
-P:不将端口号转换为服务名,以数字形式显示。
-n:不进行域名解析,以 IP 地址形式显示。

示例输出及解释

COMMAND     PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd       1234    root    3u  IPv4  12345      0t0  TCP *:22 (LISTEN)

COMMAND 列显示使用该端口的进程名,PID 是进程 ID,NAME 列显示监听的地址和端口。

nmap 命令
nmap(Network Mapper)是一个强大的网络扫描工具,可用于扫描目标主机开放的端口。

扫描本地主机开放的端口

nmap 127.0.0.1

这里 127.0.0.1 是本地回环地址,用于扫描本地主机。

示例输出及解释:

Starting Nmap 7.80 ( https://nmap.org ) at 2022-11-29 12:19 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000050s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

输出会显示扫描到的开放端口及其对应的服务名。

PREV
Windows服务器修改网站上传文件的大小
NEXT
Alist挂载夸克网盘