netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
netstat: 打印网络连接,路由表,接口统计信息,多播成员
选项与参数:
netstat [address_family_options] [--tcp|-t] [--udp|-u] [--raw|-w]
[--listening|-l] [--all|-a] [--numeric|-n] [--numeric-hosts]
[--numeric-ports] [--numeric-users] [--symbolic|-N]
[--extend|-e[--extend|-e]] [--timers|-o] [--program|-p] [--ver‐
bose|-v] [--continuous|-c]
netstat {--route|-r} [address_family_options]
[--extend|-e[--extend|-e]] [--verbose|-v] [--numeric|-n]
[--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c]
netstat {--interfaces|-i} [--all|-a] [--extend|-e[--extend|-e]]
[--verbose|-v] [--program|-p] [--numeric|-n] [--numeric-hosts]
[--numeric-ports] [--numeric-users] [--continuous|-c]
netstat {--groups|-g} [--numeric|-n] [--numeric-hosts]
[--numeric-ports] [--numeric-users] [--continuous|-c]
netstat {--masquerade|-M} [--extend|-e] [--numeric|-n]
[--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c]
netstat {--statistics|-s} [--tcp|-t] [--udp|-u] [--raw|-w]
netstat {--version|-V}
netstat {--help|-h}
address_family_options:
[-4] [-6] [--protocol={inet,unix,ipx,ax25,netrom,ddp}[,...]]
[--unix|-x] [--inet|--ip] [--ax25] [--ipx] [--netrom] [--ddp]
与路由 (route) 有关的参数说明:
-r : 列出路由表(route table),功能如同 route 这个指令[route -e];
-n : 不使用主机名与服务名称,使用 IP 与 port number ,如同 route -n
与网络接口有关的参数:
-a : 列出所有的联机状态,包括 tcp/udp/unix socket 等;
-t : 仅列出 TCP 协议的连接情况;
-u : 仅列出 UDP 协议的情况;
-l : 仅列出有在 Listen (监听) 的服务之网络状态;
-p : 列出建立相关连接的 PID 与 Program 名;
-c : 可以设定几秒钟后自动更新一次,例如 -c 5 每五秒更新一次网络状态的显示;
-i : 显示所有网络接口的信息,格式“netstat -i”。
其他选项:
-v : 显示正在进行的工作。
-b : 显示在创建每个连接或侦听端口时涉及的可执行程序。
-e : 显示以太网统计。此选项可以与 -s 选项结合使用。
-f : 显示外部地址的完全限定域名(FQDN)。
-o : 显示与每个连接相关的所属进程ID。
-s : 显示每个协议的统计。
-x : 显示 NetworkDirect 连接、侦听器和共享端点。
-y : 显示所有连接的 TCP 连接模板。无法与其他选项结合使用。
输出:
Proto : 协议
Recv-Q : 非由用户程序连接所复制而来的总 bytes 数[不大理解]
Send-Q : 来自远程主机不包含ack标志的总bytes数.[意指主动联机 SYN 或其他标志的封包所占的 bytes 数]
Local Address : 本地端的地址,可以是 IP (-n 参数存在时), 也可以是完整的主机名。
使用的格是就是『 IP:port 』只是 IP 的格式有 IPv4 及 IPv6 的差异。
Foreign Address : 远程的主机 IP 与 port number
State : 状态.
ESTABLISHED : 已建立连接.
SYN_SENT : 发送一个建立连接请求.
SYN_RECV : 从网络中接收到一个连接请求
FIN_WAIT1 : socket已经关闭(closed),连接正在关闭(shutting down).
FIN_WAIT2: 连接已经关闭(closed),socket 等待来自远程的关闭[确认包](shutdonw)
TIME_WAIT: 连接已经断开.但socket还在网络上等待结束.[主动关闭连接的一方,会在发送最后一个ack后进入TIME_WAIT状态(在四次握手中)]
CLOSE : socket已经不在使用了.
CLOSE_WAIT : 被动关闭时,远端已经关闭连接(发送来了FIN),本端socket还未关闭(还没有发送FIN出去);
[如果出现大量close_wait的现象,主要原因是某种情况下对方关闭了socket链接,但是我方忙与读或者写,
没有关闭连接。代码需要判断socket,一旦读到0,如果不是AGAIN,就断开连接。]
LAST_ACK : 远端已经关闭(本端接收到远端的FIN),本端也关闭(发送了FIN),正在等待远端发来ACK.
LISTEN : 正在监听新来的连接(incoming connections).通常用在服务的监听 port !可使用『 -l 』参数查阅
CLOSING : 两端socket都关闭了,但是数据还没有全部发送完.
UNKNOWN : socket的状态是未知的(unknown)
ip路由表相关输出:
Destination : 目的ip地址
Gateway : 网关
Genmask : 子网掩码
Flags : 标志.
■ G 路由将采用网关。
■ U 准备使用的接口处于“活动”状态。
■ H 通过该路由,只能抵达一台主机。
■ D 如果路由表的条目是由ICMP重定向消息生成的,就会设置这个标记。
■ M 如果路由表条目已被ICMP重定向消息修改,就会设置这个标记。
MSS : Maximum Segment Size, 最大报文长度
Window : ?
irtt : ?
Iface : 接口名称
一些netstat命令的使用
鸟哥私房菜中的相关内容
http://vbird.dic.ksu.edu.tw/linux_server/0140networkcommand_2.php#netstat