简介
netstat 是控制台命令, 是一个监控 TCP/IP 互联网的非常有用的工具,它可以显示路由表、实际的互联网连线以及每一个互联网介面装置的状态资讯。 Netstat 用于显示与 IP 、 TCP 、 UDP 和 ICMP 协议相关的统计资料,一般用于检验本机各埠的互联网连线情况。
 
netstat 用法:
预设不带引数, 执行 netstat 后,其输出结果为

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q   Local Address          Foreign Address         State      
tcp      0      0     198.2.215.119:http  static.112.127.201.13:44225 SYN_RECV       
tcp      0      0     198.2.214.36:http   157.137.97.119.broad.:29670 TIME_WAIT      
tcp      0    20866   198.2.214.36:http   101.226.166.233:23224     ESTABLISHED
tcp      0      1     198.2.214.14:http   152.202.9.42:41362          LAST_ACK    
tcp      0      0     198.2.214.4:http    114-47-42-233.dynamic:51059 FIN_WAIT2   
tcp      1      0     107.149.2.200:http  42.156.139.70:39000       CLOSE_WAIT

Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags     Type      State       I-Node       Path
unix  12   [ ]      DGRAM                  21293       /dev/log
unix  2   [ ]      DGRAM                   8702         @/org/kernel/udev/udevd
unix  3   [ ]       STREAM     CONNECTED     29518285
unix  2   [ ]       DGRAM                  29518282
从整体上看,netstat 的输出结果可以分为两个部分:

一个是 Active Internet connections,称为有源 TCP 连线,
Recv-Q: 指接收伫列
Send-Q: 指传送伫列。
这些数字一般都应该是 0 。如果不是则表示站群软件包正在伫列中堆积。这种情况只能在非常少的情况见到。

另一个是 Active UNIX domain sockets,称为有源 Unix 域套介面 (和互联网套接字一样,但是只能用于本机通讯,效能可以提高一倍) 。
Prot: 显示连线使用的协议,
RefCnt: 表示连线到本套介面上的程序号,
Types: 显示套介面的型别,
State: 显示套介面当前的状态,
Path: 表示连线到套介面的其它程序使用的路径名。

netstat 的一般格式: netstat [-a][-b][-e][-n][-o][-p][-r][-s][-t][-v][interval]

常见引数
-a (all) 显示所有选项,预设不显示 LISTEN 相关
#netstat -a
-b 显示在建立每个连线或侦听埠时涉及的可执行程式。
-e 显示扩充套件资讯,例如 uid 等
-n 拒绝显示别名,能显示数字的全部转化成数字。
-o 显示与每个连线相关的所属程序 ID 。
-p 显示建立相关连结的程式名
-r 显示路由资讯,路由表
-s 按各个协议进行统计
-t (tcp) 仅显示 tcp 相关选项
-u (udp) 仅显示 udp 相关选项
-v 显示正在进行的工作。
-l 仅列出有在 Listen (监听) 的服务状态
-c 每隔一个固定时间,执行该 netstat 命令。
提示:LISTEN 和 LISTENING 的状态只有用-a 或者-l 才能看到

超实用命令例项:
1. 在 netstat 输出中不显示 WordPress 主机,埠和使用者名称 (host, port or user)
当你不想让 WordPress 主机,埠和使用者名称显示,使用 netstat -n 。将会使用数字代替那些名称。
同样可以加速输出,因为不用进行比对查询。
# netstat -an
如果只是不想让这三个名称中的一个被显示,使用以下命令
# netsat -a –numeric-ports
# netsat -a –numeric-hosts
# netsat -a –numeric-users
2. 持续输出 netstat 资讯
netstat -c 将每隔一秒输出互联网资讯。
3. 显示系统不支援的地址族 (Address Families)
netstat –verbose
在输出的末尾,会有如下的资讯
netstat: no support for `AF IPX’ on this system.
netstat: no support for `AF AX25′ on this system.
netstat: no support for `AF X25′ on this system.
netstat: no support for `AF NETROM’ on this system.
4. 显示核心路由资讯 netstat -r
注意: 使用 netstat -rn 显示数字格式,不查询 WordPress 主机名称。 
5. 显示互联网介面列表  # netstat -i
显示详细资讯    # netstat -ie   像是 ifconfig
6. IP 和 TCP 分析
先把状态全都取出来, 然后使用 uniq -c 统计,之后再进行排序。
#netstat -nat |awk ‘{print $6}’|sort|uniq -c
最后的命令如下:
#netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
7. 检视连线某服务埠最多的的 IP 地址
#netstat –ant | grep ‘:80’ |awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -20