您的位置:

Ubuntu查看端口占用

一、使用netstat命令

netstat(network statistic)是一个命令行工具,可以用来查看网络相关的运行状态,包括网络连接,路由表,接口状态等等。在Ubuntu中,可以使用以下命令查看端口占用情况:

$ netstat -tuln

该命令的参数解释如下:

  • -t:表示只显示TCP协议的连接
  • -u:表示只显示UDP协议的连接
  • -l:表示只显示正在监听的连接
  • -n:表示不显示域名,而是直接显示IP地址

命令执行后,会输出类似下面的结果:

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     
udp        0      0 127.0.0.53:53           0.0.0.0:*                          
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
udp        0      0 0.0.0.0:5353            0.0.0.0:*                          
udp6       0      0 :::5353                 :::*

其中,Local Address 列的地址是本地的IP地址和端口号。Foreign Address 列的地址为远程的IP地址和端口号。如果显示为“127.0.0.1”或“::1”,则表示该端口只能在本地访问。

二、使用lsof命令

lsof(list open files)是一个命令行工具,可以列出当前系统打开的文件列表。在Ubuntu中,可以使用以下命令查看端口占用情况:

$ sudo lsof -i :端口号

例如,查看占用80端口的进程:

$ sudo lsof -i :80

命令执行后,会输出含有占用该端口的进程信息:

COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
nginx   12345   root   10u  IPv4 54321      0t0  TCP *:http (LISTEN)
nginx   12345   root   11u  IPv6 54322      0t0  TCP *:http (LISTEN)

其中,COMMAND 表示进程名,PID 表示进程号,USER 表示进程的运行用户,TYPE 表示连接类型,FD 表示连接的文件描述符,SIZE/OFF 表示占用的资源大小等。

三、使用ss命令

ss 命令是 netstat 命令的替代品,可以列出更详细的网络连接状态信息。在Ubuntu中,可以使用以下命令查看端口占用情况:

$ ss -tulwn

该命令的参数解释如下:

  • -t:表示只显示TCP协议的连接
  • -u:表示只显示UDP协议的连接
  • -l:表示只显示正在监听的连接
  • -n:表示不显示域名,而是直接显示IP地址
  • -w:表示显示完整的socket信息

命令执行后,会输出类似下面的结果:

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:*       
tcp    LISTEN     0      128        :::22                   :::*
udp    UNCONN     0      0          127.0.0.53%lo:53         0.0.0.0:*       
udp    UNCONN     0      0          0.0.0.0:68              0.0.0.0:*       
udp    UNCONN     0      0          0.0.0.0:5353            0.0.0.0:*       
udp    UNCONN     0      0          :::5353                 :::*

其中,Local Address 列的地址是本地的IP地址和端口号。Peer Address 列的地址为远程的IP地址和端口号。如果显示为“127.0.0.1”或“::1”,则表示该端口只能在本地访问。