Linux查询端口号
1. 引言
在网络通信中,端口号是用于区分不同进程或应用程序之间通信的标识符。在Linux操作系统中,我们可以使用一些命令或工具来查询端口号的使用情况,这对于网络管理员或开发人员来说是非常重要的。本文将介绍几种常用的方法来查询Linux系统中的端口号。
2. 使用netstat命令查询端口号
netstat是一个网络工具,在Linux系统中用于打印网络连接、路由表、网络接口等信息。我们可以使用netstat命令来查询当前系统中正在使用的端口号。
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 :::22 :::* LISTEN
tcp6 0 0 :::8080 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
上述输出中,可以看到系统中正在监听的端口号分别是22和8080,其中22是SSH服务的默认端口号。
3. 使用lsof命令查询端口号
lsof是一个用于列出已打开文件的工具,在Linux系统中也可以用来查询端口号的使用情况。我们可以使用lsof命令以及管道符号结合grep命令来查询指定端口号是否被占用。
lsof -i :<端口号>
将命令中的<端口号>
替换为具体的端口号,运行后将会显示使用该端口号的进程及其相关信息。例如:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root 5u IPv4 98765 0t0 TCP *:22 (LISTEN)
上述输出中,可以看到在端口号22上正在运行一个名为sshd的进程,该进程是SSH服务器进程。
4. 使用nmap命令扫描端口号
nmap是一个网络探测和安全审核的工具,在Linux系统中可以用来扫描指定IP地址或主机的端口号情况。我们可以使用nmap命令来快速扫描一个主机的所有端口号。
nmap <IP地址或主机名>
将命令中的<IP地址或主机名>
替换为具体的IP地址或主机名,运行后将会显示扫描结果,包括开放的端口号和对应的服务名称。例如:
Starting Nmap 7.70 ( https://nmap.org ) at 2021-01-01 10:00 UTC
Nmap scan report for example.com (192.168.1.1)
Host is up (0.001s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
上述输出中,可以看到在主机example.com上开放了22和80两个端口号,分别对应SSH和HTTP服务。
5. 使用ss命令查询端口号
ss是一个socket统计工具,可以用于查询Linux系统中的套接字信息,包括端口号的使用情况。我们可以使用ss命令来查询正在监听的端口号。
ss -tuln
上述命令的参数说明如下:
-t
:显示TCP端口号-u
:显示UDP端口号-l
:仅显示监听状态的端口号-n
:以数字形式显示端口号,不解析服务名称
运行以上命令后,将会列出当前系统中正在监听的端口号及其对应的协议和状态。例如:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 :::8080 :::*
UNCONN 0 0 0.0.0.0:68 0.0.0.0:*
上述输出中,可以看到系统中正在监听的端口号分别是22和8080。
6. 结论
查询Linux系统中的端口号是网络管理和开发中常用的操作。本文介绍了几种常用的方法,包括使用netstat命令、lsof命令、nmap命令和ss命令来查询端口号的使用情况。通过掌握这些方法,我们可以更好地了解系统中的网络连接情况,进行相关的网络管理和故障排查工作。