您的位置:

Linux 查询端口号

一、Netstat命令

Netstat(网络统计)是Linux下常用的网络工具,可以用来显示断开网络连线,以及查询网络接口和路由表等信息。

查询端口号也是常见的用途之一,下面是Netstat命令的一些常用选项:

netstat -a    //显示所有socket
netstat -t    //显示所有TCP传输socket
netstat -u    //显示所有UDP传输socket
netstat -n    //使用数字地址不进行反向域名解析

例如,下面的命令可以查询TCP传输socket的端口号:

netstat -tn

输出结果类似于:

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:53969         0.0.0.0:*               LISTEN     
tcp        0      0 192.168.1.100:39218     151.101.193.69:443      ESTABLISHED
...

可以看到,这个命令可以列出当前系统的所有TCP连接,包括本地地址外部地址和连接状态,进而查询端口号。

二、Lsof命令

Lsof(List Open Files)是一个列出当前系统打开的文件的工具,可以用来识别和分析进程所打开的所有文件和网络连接。

下面是Lsof命令的一些常见选项:

lsof -i  //只显示网络连接
lsof -i :端口号  //显示使用特定端口号的网络连接
lsof -i TCP  //只显示TCP连接
lsof -i UDP  //只显示UDP连接

例如,下面的命令可以查询占用端口号为80的进程:

lsof -i :80

输出结果类似于:

COMMAND  PID         USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
httpd   1223         root    4u  IPv6 11116457      0t0  TCP *:http (LISTEN)
httpd   1788       apache    4u  IPv6 11116457      0t0  TCP *:http (LISTEN)
httpd   1789       apache    4u  IPv6 11116457      0t0  TCP *:http (LISTEN)
httpd   1790       apache    4u  IPv6 11116457      0t0  TCP *:http (LISTEN)
httpd   1791       apache    4u  IPv6 11116457      0t0  TCP *:http (LISTEN)
httpd   1792       apache    4u  IPv6 11116457      0t0  TCP *:http (LISTEN)

可以看到,这个命令可以列出所有使用端口号80的进程。

三、ss命令

ss(Socket Statistics)是Linux下的另一个网络工具,用于显示网络套接字的状态信息。

下面是ss命令的一些常用选项:

ss -a  //显示所有socket
ss -t  //显示所有TCP传输socket
ss -u  //显示所有UDP传输socket
ss -n  //使用数字地址不进行反向域名解析

例如,下面的命令可以查询TCP传输socket的端口号:

ss -tn

输出结果类似于:

State      Recv-Q Send-Q Local Address:Port          Peer Address:Port
LISTEN     0      128           *:22                       *:*
ESTAB      0      0        192.168.1.100:22           192.168.1.101:39910

可以看到,这个命令可以列出当前系统所有的TCP连接状态,包括本地地址远端地址和连接状态,进而查询端口号。

四、pidof命令

pidof命令可以根据程序的名称查询其进程ID(PID)。

例如,下面的命令可以查询nginx进程的PID:

pidof nginx

输出结果类似于:

2500 2497 2495

可以看到,这个命令同时列出了nginx启动的多个进程的PID。

五、总结

通过以上几种方式,我们可以查询当前系统的端口号信息,这对于网络调试、安全检查和运维管理都非常有帮助。

例如,可以使用Netstat命令列出整个系统所有的TCP/UDP连接状态,如果需要查询特定端口号或进程的信息,则可以使用Lsof或pidof命令来进行查询。