NetStat使用

NetStat

NetStat的Man说“netstat- Print network connections,routing tables, interface statistics,masquerade connections,and multicast memberships Synopsis”,用Netstat可以打印 网络连接,路由表,网路接口统计信息,桥接信息以及多播对象概要。可见Netstat真如其Stat表述的一样,主要是用来查看本机的网络相关信息。

在本机运行不带参数的netstat可以得到结果:

Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State

Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path

该结果主要分成两个部分

  • Active Internet connections,称为有源网际连接
  • Active UNIX domain sockets,称为有源Unix域套接口

也就是上述结果中显示的两个部分,前者叫做有源网际连接,包括有TCP和UDP部分。后者则是Socket编程中见到的Unix域套接字。其中Proto字段表示网络连接的协议,Recv-Q和Send-Q分别表示接受和 发送队列(Queue),如果其值不为0,则表示有数据堆积,这时就要检查网络程序了,可能会是影响网络程序的因素。Local Address 和Foreign Address 分别表示本机和网络连接对端的IP地址。 stat则表示连接状态,这个和协议相关,如Tcp里会有SYN_SENT、 ESTABLISHED、LISTEN等状态。下面的RefCnt表示RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,Path表示连接到套接口的其它进程使用的路径名

常用参数

-a(all)显示所有选项,默认不显示LISTEN相关 -t(tcp)仅显示tcp相关选项 -u(udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字。 -l 仅列出有在Listen(监听) 的服務状态 -p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,例如uid等 -s 按各个协议进行统计 -c 每隔一个固定时间,执行该netstat命令。

常见用法

# 显示所有网络连接的信息,默认不显示LISTEN相关
netstat -a   #会列出所有监听的和未监听的网络连接
# 显示TCP连接信息
netstat -t    #只列出TCP连接的信息,可以和-a连用,表示所有监听和未监听的TCP连接
# 显示UDP连接信息
netstat -u    #只显示UDP连接信息,可以和-a连用,表示所有监听和未监听的UDP连接
# 显示UNIX域连接信息
netstat -x
# 显示监听的连接信息
netstat -l      #列出所有处于LISTEN状态的TCP连接以及状态为LISTENING的UNIX域连接还有服务器recvfrom的UDP连接等其他处于监听状态的连接
# 显示网络连接的统计信息
netstat -s      #会统计通过收到了多少个包,发出多少个包,打开了多少个连接等信息,根据结果提示信息可以很容易的看懂;可以和t/u/x组合只查看某种类型连接的统计信息
# 显示网络连接关联的进程信息
netstat -p      # 会在通常的结果中增加一个字段 PID/Program name 表示该连接所在的进程PID和程序名
# 不显示主机名、IP等信息
netstat -n      # 如果不关注IP和主机名,可以用-n去掉相关信息
# 一个特别好玩的命令,显示本机不支持的网络连接
netstat --verbose # 结果的最后会显示不支持的网络类型  
# 显示路由信息
netstat -r  #得到的信息分成Destination、Gateway、Genmask、Flags、MSS Window、irtt、Iface其中Destination表示目标网段,Gateway  到达目的需要使用的网关,Genmask可以认为是路由的掩码,在为具体的I P地址找出最恰当的路由时,
            #内核将查看路由表内的所有条目,在对找到的路由与目标路由比较之前,将对I P地址和genmask进行按位“与”计算。Flags 路由flag,其中可以有G 路由将采用网关。U 准备使用的接口处于“活动”状态。H 通过该路由,只能抵达一台主机。
            #D 如果路由表的条目是由ICMP重定向消息生成的,就会设置这个标记。 M 如果路由表条目已被ICMP重定向消息修改,就会设置这个标记。Iface为采用的网络接口如eth0
# 显示本机网络接口信息
netstat -i #可以得知本机有哪些网络接口,加上e可以如ifconfig一样显示详细信息,包括有错误包,丢包等信息

具体实例

网上有个“UNIX/Linux:10个Netstat命令实例”的文章,这里不再抄复,感兴趣的可以看下,如果笔者遇到什么有用的实例还会继续增加

posted @ 2012-07-31 09:29  G背包  阅读(462)  评论(0编辑  收藏  举报