数据与人文
聚焦技术和人文,分享干货,共同成长。
Linux中如何查看开放的端口?
在 Linux 系统中,有多种方法可以查看开放的端口,下面将详细介绍一些常用的命令及其使用方法。
1. 使用 netstat 命令
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 服务)。
2. 使用 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 类似,同样能清晰看到监听的端口和协议。
3. 使用 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 列显示监听的地址和端口。
4. 使用 nmap 命令
nmap(Network Mapper)是一个强大的网络扫描工具,可用于扫描目标主机开放的端口。
扫描本地主机开放的端口
nmap 127.0.0.1
这里 127.0.0.1 是本地回环地址,用于扫描本地主机。
示例输出及解释
Starting Nmap 7.80 ( https://nmap.org ) at 2024-10-01 12:00 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
输出会显示扫描到的开放端口及其对应的服务名。
posted on
2025-02-13 21:33
数据与人文
阅读(2169)
评论(0)
收藏
举报
刷新页面返回顶部