netstat是Linux系统中非常有用的网络工具,被称为是网络监控中的军工刀,足见其地位。
传统上,它用于问题确定而不是性能测量,但是也可用于查看网络上的流量,以确定性能问题是否由于网络阻塞引起。
netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
语法格式
bash
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
命令参数
-
-a或--all 显示所有连线中的Socket。
-
-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
-
-c或--continuous 持续列出网络状态。
-
-C或--cache 显示路由器配置的快取信息,即显示路由缓存而不是FIB。
-
-e或--extend 显示网络其他相关信息。
-
-F或--fib 显示FIB,即转发表,RIB则是路由表,Forwarding Information Base 转发表 (FIB) 用于判断基于 IP 包的网络前缀,如何进行转发。对于每一条可达的目标网络前缀,FIB 包含接口标识符和下一跳信息。 FIB 概念上类似于路由表。它维护一份 RIB 表中的转发信息镜像。
-
-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 显示网络工作信息统计表。按照每个协议来分类进行统计。默认的显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6 的统计信息。
-
-t或--tcp 显示TCP传输协议的连线状况。
-
-u或--udp 显示UDP传输协议的连线状况。
-
-v:--verbose,命令显示每个运行中的基于公共数据链路接口的设备驱动程序的统计信息
-
-V或--version 显示版本信息。
-
-w或--raw 显示RAW传输协议的连线状况。
-
-x或--unix 此参数的效果和指定"-A unix"参数相同。即所有的 unix 协议的端口
-
--ip或--inet 此参数的效果和指定"-A inet"参数相同。
例子
netstat -anp:显示系统端口使用情况 netstat -nupl:UDP类型的端口 netstat -ntpl:TCP类型的端口 netstat -na|grep ESTABLISHED|wc -l:统计已连接上的,状态为"established" netstat -l:只显示所有监听端口 netstat -lt:只显示所有监听tcp端口
netstat -a: 显示详细网络状况
netstat -i: 显示所有网卡列表
netstat -g: 显示组播组的关系
netstat -s: 显示网络统计信息
netstat -l: 显示监听的套接字