原文网址:Linux命令--netstat(统计网络)--使用/教程/实例_IT利刃出鞘的博客-CSDN博客
简介
本文用示例介绍Linux的网络统计命令:netstat。
netstat(network statistics)可以查看网络连接状态及其相关信息。它可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。
选项
选项 | 描述 |
-a或--all | 显示所有连线中的Socket;默认不显示LISTEN相关。 |
-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 | 显示RoutingTable; |
-s或--statistice | 显示网络工作信息统计表; |
-t或--tcp | 显示TCP传输协议的连线状况; |
-u或--udp | 显示UDP传输协议的连线状况; |
-v或--verbose | 显示指令执行过程; |
-V或--version | 显示版本信息; |
-w或--raw | 显示RAW传输协议的连线状况; |
-x或--unix | 此参数的效果和指定"-Aunix"参数相同; |
--ip或--inet | 此参数的效果和指定"-Ainet"参数相同。 |
示例
- 根据端口查找进程(假设端口号为8080)
- netstat -nlp | grep :8080
- 列出所有端口信息(包括监听和未监听的)
- netstat -ano
- 列出所有的tcp协议的端口
- netstat -at
- 显示每个协议的统计信息
- netstat -s
- 显示核心路由信息
- netstat -r
- 持续输出 netstat 信息。netstat -c将每隔一秒输出网络信息
- netstat -c
- 找出程序运行的端口。并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息
- netstat -anp
- 显示多播组信息
- netstat -g
- 显示接口信息
- netstat -i
- 禁止域名解析
- netstat -nlp
结果含义
以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
1、Active Internet connections 有源TCP连接,其中"Recv-Q"和"Send-Q"指接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
2、Active UNIX domain sockets 有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
列名解释:
- Proto:显示连接使用的协议。
- RefCnt:表示连接到本套接口上的进程号。
- Types:显示套接口的类型。
- State:显示套接口当前的状态。
- Path:表示连接到套接口的其它进程使用的路径名。
State表示连接的状态,主要有:
ESTABLISHED:已建立连接的状态
LISTEN :侦听来自远方的TCP端口的连接请求
SYN_SENT:发出主动连接(SYN)的数据包
SYN_RECV :接收到一个要求连接的主动连接数据包
FIN_WAIT1 :该套接字服务已中断,该连接正在断线中
FIN_WAIT2:该连接已挂断,正在等待对方主机响应断线确认的数据包
TIME_WAIT :连接已挂断,但socket还在网络上等待结束
CLOSE_WAIT:等待从本地用户发来的连接中断请求
三次握手:
四次挥手: