Linux命令--netstat

目录

一、简介

二、主要参数

         三、输出信息描述

四、使用实例


一、简介

netstat命令用于显示IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口网络连接情况。netstat是在内核中访问网络及相关信息的程序,他能提供TCP连接,TCP和UDP监听,进程管理的相关报告。

二、主要参数

-a		显示所有连接和监听端口
-t		显示tcp链接
-u		显示udp链接
-p		显示程序名字
-n		拒绝显示别名,能显示数字的全部转换位数字
-l		仅列出有在Listen(监听)的服务状态

-r		显示路由信息,路由表
-e		显示扩展信息,如Inode等
-s		按各个协议统计
-c		每隔一个固定时间,执行netstat命令
-i      显示网卡接口。即显示所有网络接口的信息。

提示LISTEN和ESTABLISHED的状态只有用-a或者-l才能看到

三、输出信息描述

[root@sy-suz-srv51 ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 k8sdev.sui:sun-sr-https k8sdev.suiyi.com.:34880 SYN_RECV
tcp        0      0 k8sdev.suiyi.com.c:2379 10.1.62.21:47910        ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  3      [ ]         DGRAM                    18442    /run/systemd/notify
unix  2      [ ]         DGRAM                    14151    /var/run/nscd/socket
unix  2      [ ]         DGRAM                    584      /run/systemd/shutdownd
unix  3      [ ]         STREAM     CONNECTED     124439388 /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     42312    /run/systemd/journal/stdout

netstat的输出结果可以分为两个部分

1、Active Internet connections 有源TCP连接,其中"Recv-Q"和"Send-Q"指接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

2、Active UNIX domain sockets 有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

列名解释:

Proto:显示连接使用的协议。

RefCnt:表示连接到本套接口上的进程号。

Types:显示套接口的类型。

State:显示套接口当前的状态。

LISTEN  :在监听状态中。   
ESTABLISHED:已建立联机的联机情况。 
TIME_WAIT:该联机在目前已经是等待的状态。 

Path:表示连接到套接口的其它进程使用的路径名。

四、使用实例

统计机器中网络连接各个状态个数。

netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

把状态全都取出来后使用 uniq -c 统计后再进行排序。

netstat -nat |awk '{print $6}'|sort|uniq -c

查看连接某服务端口最多的的IP地址。

netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort -nr|head -20

找出 ssh 程序运行的端口。

 netstat -ap | grep ssh

在 netstat 输出中显示 PID 和进程名称。

netstat -pt

找出运行在指定端口的进程。然后再通过 ps 命令就可以找到具体的应用程序了。

netstat -anpt | grep ':16064' 

  显示路由信息

[root@boke ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 eth0
link-local      0.0.0.0         255.255.0.0     U         0 0          0 eth0
172.17.96.0     0.0.0.0         255.255.240.0   U         0 0          0 eth0

猜你喜欢

转载自blog.csdn.net/xiao__jia__jia/article/details/114107956