Linux下netstat命令详解

  • 格式:pdf
  • 大小:127.45 KB
  • 文档页数:5

Linux下netstat命令详解

⼀、netstat命令简述

netstat命令⽤来打印Linux系统的⽹络状态信息,包括⽹络连接(network connections)、路由表(routing tables)、⽹络接⼝设备统计信

息(interface statistics)、伪装连接(masquerade connections)和多播成员信息(multicast memberships)等,可显⽰与IP、TCP、

UDP和ICMP协议相关的统计数据,⼀般⽤于检验本机各端⼝的⽹络连接情况。。

⼆、输出解释

在linux下直接执⾏netstat会得到如下结果

从整体上看netstat的输出结果可以分为两个部分。⼀个是Active Internet connections,⼆是Active UNIX domain sockets。

(1)Active Internet connections Active Internet connections表⽰活跃的⽹络连接,包括UDP和TCP连接信息。其中"Recv-Q"和"Send-Q"指

接收队列和发送队列,这些数字⼀般都是0,如果不是则表⽰数据发送和接收队列存在堆积,这种情况较为少见。Local Address和Foreign

Address表⽰本地和远端的IP、端⼝,State表⽰连接的状态,主要有:

ESTABLISHED:已建⽴连接的状态

LISTEN :侦听来⾃远⽅的TCP端⼝的连接请求

SYN_SENT:发出主动连接(SYN)的数据包

SYN_RECV :接收到⼀个要求连接的主动连接数据包

FIN_WAIT1 :该套接字服务已中断,该连接正在断线中

FIN_WAIT2:该连接已挂断,正在等待对⽅主机响应断线确认的数据包

TIME_WAIT :连接已挂断,但socket还在⽹络上等待结束

CLOSE_WAIT:等待从本地⽤户发来的连接中断请求

为了⽅便理解上述状态具体内容,画出客户端向服务器请求TCP连接的三次握⼿和客户端主动断开连接的四次挥⼿过程⽰意图如下:

三次握⼿:

四次挥⼿:

(2)Active UNIX domain sockets Active UNIX domain sockets,称为活跃Unix域套接字。

Proto显⽰连接使⽤的协议; RefCnt表⽰使⽤数量,即通过此套接字连接的进程数;

Flags显⽰的标志为SO_ACCEPTON(显⽰为 ACC)、SO_WAITDATA(W)或SO_NOSPACE(N)。如果相应的进程等待⼀个连接请

求,那么SO_ACCECPTON⽤于未连接的套接字。其它标志通常并不重要。

Types显⽰套接⼝的类型,⼀般为DGRAM(数据报)、STREAM(数据流);

I-Node表⽰套接字的Inode节点号;

Path表⽰套接字所在路径。

State显⽰套接字当前的状态,此字段包含以下关键字之⼀:

FREE:套接字未分配。

LISTENING:套接字正在监听⼀个连接请求。除⾮设置 --listening (-l) 或者 --all (-a) 选项,否则不显⽰。

CONNECTING:套接字正要建⽴连接 CONNECTED:套接字已连接

DISCONNECTING:套接字已断开

(empty):套接字未连

三、常⽤netstat相关命令

命令格式:

netstat[]

语法选项:

-a或--all:显⽰所有连线中的Socket;

-A<⽹络类型>或--<⽹络类型>:列出该⽹络类型连线中的相关地址;

-c或--continuous:持续列出⽹络状态;

-C或--cache:显⽰路由器配置的快取信息;

-e或--extend:显⽰⽹络其他相关信息;

-F或--fib:显⽰FIB;

-g或--groups:显⽰多重⼴播功能群组组员名单;

-h或--help:在线帮助;

-i或--interfaces:显⽰⽹络界⾯信息表单;

-l或--listening:显⽰监控中的服务器的Socket;

-M或--masquerade:显⽰伪装的⽹络连线;

-n或--numeric:直接使⽤ip地址,⽽不通过域名服务器;

-N或--netlink或--symbolic:显⽰⽹络硬件外围设备的符号连接名称;

-o或--timers:显⽰计时器;

-p或--programs:显⽰正在使⽤Socket的程序识别码和程序名称;

-r或--route:显⽰Routing Table;

-s或--statistice:显⽰⽹络⼯作信息统计表;

-t或--tcp:显⽰TCP传输协议的连线状况;

-u或--udp:显⽰UDP传输协议的连线状况;

-v或--verbose:显⽰指令执⾏过程;

-V或--version:显⽰版本信息;

-w或--raw:显⽰RAW传输协议的连线状况;

-x或--unix:此参数的效果和指定"-A unix"参数相同;

--ip或--inet:此参数的效果和指定"-A inet"参数相同。

netstat -ntlp //查看当前所有tcp端⼝

netstat -ntulp |grep 80 //查看所有80端⼝使⽤情况

netstat -an | grep 3306 //查看所有3306端⼝使⽤情况

netstat -lanp //查看⼀台服务器上⾯哪些服务及端⼝

ps -ef |grep mysqld //查看⼀个服务有⼏个端⼝。⽐如要查看mysqld

netstat -pnt |grep :3306 |wc //查看某⼀端⼝的连接数量,⽐如3306端⼝

netstat -anp |grep 3306 //查看某⼀端⼝的连接客户端IP ⽐如3306端⼝

常⽤的命令如下图:

四、常⽤命令⽰例

1.列出所有端⼝信息(包括监听和未监听的)

netstat -a

显⽰信息:

hadoop@master:~$ netstat -a

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:ssh 0.0.0.0:* LISTEN

tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN

tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN

tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN

udp 0 0 localhost:domain 0.0.0.0:*

udp 0 0 0.0.0.0:45465 0.0.0.0:*

udp 0 0 0.0.0.0:ipp 0.0.0.0:*

udp 0 0 0.0.0.0:mdns 0.0.0.0:*

udp6 0 0 [::]:56383 [::]:*

udp6 0 0 [::]:mdns [::]:*

raw6 0 0 [::]:ipv6-icmp [::]:* 7

Active UNIX domain sockets (servers and established)

Proto RefCnt Flags Type State I-Node Path

unix 2 [ ACC ] STREAM LISTENING 40098 @/tmp/.ICE-unix/2304

unix 2 [ ] DGRAM 37416 /run/user/1001/systemd/notify

2.列出所有的tcp协议的端⼝

netstat -at

显⽰信息:

hadoop@master:~$ netstat -at

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:ssh 0.0.0.0:* LISTEN

tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN

tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN

tcp 0 1 master:55660 36.75.98.34.bc.go:https SYN_SENT

tcp 0 0 master:45170 server-13-32-52-1:https ESTABLISHED

tcp 0 1 master:55662 36.75.98.34.bc.go:https SYN_SENT

tcp 0 0 master:55696 ec2-52-24-186-236:https ESTABLISHED

tcp6 0 0 [::]:ssh [::]:* LISTEN

tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN

3.显⽰每个协议的统计信息

netstat -s

显⽰信息:

hadoop@master:~$ netstat -s

Ip:

Forwarding: 2

2700 total packets received

63 with invalid addresses

0 forwarded

0 incoming packets discarded

2635 incoming packets delivered

2445 requests sent out

20 outgoing packets dropped

Icmp:

43 ICMP messages received

0 input ICMP message failed

ICMP input histogram:

destination unreachable: 43

51 ICMP messages sent

0 ICMP messages failed

ICMP output histogram:

destination unreachable: 51

IcmpMsg:

InType3: 43

OutType3: 51

4.显⽰核⼼路由信息

netstat -r

显⽰信息:

hadoop@master:~$ netstat -r

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface

default _gateway 0.0.0.0 UG 0 0 0 ens33

192.168.81.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33