您当前的位置:首页 > 计算机 > 系统应用 > Linux

易记笔记-Ubuntu 下【netstat】指令全解

时间:04-07来源:作者:点击数:

‘netstat’ 是一个用于查看网络相关信息的命令行工具。

‘netstat’指令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

这个工具通常都会预装在Ubuntu操作系统中。

- 显示所有网络连接

netstat -a

该输出显示了当前活动的Internet连接,包括处于监听状态和已建立的连接。

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 pcq-mirror-02v:53416    151.101.128.223:https   ESTABLISHED
tcp       25      0 pcq-mirror-02v:44984    151.101.64.223:https    CLOSE_WAIT 

每一行代表一个连接,包含以下信息:

Proto:协议类型,这里为tcp。
Recv-Q和Send-Q:接收队列和发送队列中的字节数。
Local Address:本地地址和端口。
Foreign Address:远程地址和端口。
State:连接状态。

这会显示所有当前活动的网络连接,包括监听和已建立的连接。

- 只显示监听的网络连接

netstat -l

netstat -l 命令用于显示所有处于监听状态的 TCP 和 UDP 端口。

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp6       0      0 [::]:http               [::]:*                  LISTEN     
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
udp        0      0 localhost:domain        0.0.0.0:*                          
udp        0      0 0.0.0.0:sunrpc          0.0.0.0:*                          
udp6       0      0 [::]:sunrpc             [::]:*                             
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7          
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7        

监听状态的端口是指已经准备好接受连接的端口。这些端口通常是在服务器上使用的,用于等待客户端的连接请求。使用 -l 选项,netstat 命令将只显示处于监听状态的端口,而不显示已建立的连接。

输出将包括本地地址、外部地址和端口号,以及连接的状态。

- 只显示TCP连接

netstat -t 命令用于显示所有活动的 TCP 连接。

netstat -t

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的协议,它提供了一种可靠的数据传输服务。使用 -t 选项,netstat 命令将只显示当前处于活动状态的 TCP 连接。

输出将包括本地地址、远程地址和端口号,以及连接的状态。

这会显示所有TCP连接的详细信息。

- 只显示UDP连接

netstat -u

netstat -u 命令用于显示所有UDP(User Datagram Protocol)连接和相关的网络统计信息。UDP是一种无连接的传输协议,通常用于快速传输数据,但不提供可靠性或流控制。

Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0      0 0.0.0.0:68              0.0.0.0:*
udp        0      0 0.0.0.0:5353            0.0.0.0:*
udp        0      0 0.0.0.0:5353            0.0.0.0:*
udp        0      0 0.0.0.0:5353            0.0.0.0:*

这个输出显示了四个UDP连接的信息,包括本地地址、本地端口、远程地址、远程端口以及连接状态。通常情况下,UDP连接的状态较简单,可能是"ESTABLISHED"(已建立)或其他一些特定状态。

- 显示PID(进程ID)和程序名称

netstat -tuln -p

运行这个命令将列出所有正在监听的TCP和UDP连接,并显示与每个连接关联的进程名称和PID。

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::80                   :::*                    LISTEN      -                   
tcp6       0      0 :::111                  :::*                    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:111             0.0.0.0:*                           -                   
udp6       0      0 :::111                  :::*                                -          

这个命令对于排查网络连接问题、识别哪些进程在使用网络以及监视网络活动非常有用。

- 显示数字格式的IP地址和端口号

运行 netstat -n 将列出当前系统上的网络连接信息,包括本地地址、本地端口、远程地址、远程端口等,但不会显示主机名或服务名。

netstat -n
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 192.168.1.2:54234       203.0.113.10:80         ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN
udp        0      0 0.0.0.0:53              0.0.0.0:*

以上输出可以看到网络连接的协议(例如TCP、UDP、TCP6),本地地址和端口,远程地址和端口,以及连接状态,但没有进行主机名或服务名的解析。

使用 netstat -n 可以加快查看网络连接的速度,并在需要时更容易分析和理解连接的情况。

  • 显示详细的网络统计信息:
netstat -s

输出显示各种网络统计信息,包括接收和发送的数据包数量、错误等。

在这里插入图片描述

这些统计数据提供了有关网络协议的使用情况的信息,包括收到的数据包数量、发送的数据包数量、错误、连接状态等。

- 显示路由表

netstat -r

运行 netstat -r 命令将列出系统的路由表,包括目标网络地址、网关、接口、标志等信息。

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
192.168.1.0     *               255.255.255.0   U         0 0          0 eth0

- 仅显示IPv4或IPv6连接

netstat -4   # 仅显示IPv4连接
netstat -6   # 仅显示IPv6连接

执行该命令:netstat -4后,将输出与 IPv4 网络连接相关的信息。输出通常包括本地地址和端口、远程地址和端口、协议类型、状态等。

如果执行netstat -6,则输出与IPv6网络连接相关的信息。

- 显示多重广播功能群组组员名单

netstat -g

执行该命令后,将输出与系统的组网统计信息相关的输出。这些信息包括组播统计、接口统计和 IP 统计等。

IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      all-systems.mcast.net
ens160          1      all-systems.mcast.net
ens192          1      all-systems.mcast.net
lo              1      ip6-allnodes
lo              1      ff01::1
ens160          1      ff02::1:ffbe:94d8
ens160          2      ip6-allnodes
ens160          1      ff01::1
ens192          1      ff02::1:ffbe:1ea3
ens192          2      ip6-allnodes
ens192          1      ff01::1

- netstat在线帮助

netstat --help

netstat --help在有的版本里面,用man ss 取代。

在这里插入图片描述

- netstat的替代工具‘ss’

ss 命令是 netstat 命令的替代工具,用于查看套接字(socket)统计信息。与 netstat 不同,ss 更快速、更有效,并且支持更多的选项。

在Ubuntu系统中执行‘man ss’

man ss
在这里插入图片描述
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门