本文仅仅是对netstat的初步了解。
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、网络接口以及端口的状态信息。
显示路由表
使用参数-r。其作用和使用命令route一样。
显示网络接口
使用参数-i。结果显示类似于
Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 541568 0 0 0 207425 0 0 0 BMRU lo 16436 0 12905 0 0 0 12905 0 0 0 LRU wlan0 1500 0 0 0 0 0 0 0 0 0 BMU
显示端口状态
1. 直接输入netstat命令。显示所有端口信息,除了处于监听状态的端口。
2. 参数-a。显示所有端口信息,包括处于监听状态的端口。
3. 参数-l。只显示处于监听状态的端口信息。
4. 参数-n。以点分四段式的形式输出IP地址,而不是象征性的主机名和网络名。
5. 参数-p。在结果中增加一列PID/Program name,显示进程信息。
6. 参数-t、 - u、- w和- x分别只显示TCP、UDP、RAW和UNIX套接字连接。
直接输入netstat命令时,会得到两块信息。
1. Active Internet connections (w/o servers)用于对外连接。
该块中包含下面6列信息
Proto :协议类型
Recv-Q : The count of bytes not copied by the user program connected to this socket.
Send-Q : The count of bytes not acknowledged by the remote host.
Local Address : Address and port number of the local end of the socket.
Foreign Address : Address and port number of the remote end of the socket.
State : 当前状态。
2. Active UNIX domain sockets (w/o servers)用于本机进程间通信Inter-process communication (IPC)。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。 这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。
该块中包含下面7列信息
Proto : 协议类型。
RefCnt : The reference count (i.e. attached processes via this socket).
Flags : The flags displayed is SO_ACCEPTON (displayed as ACC ), SO_WAITDATA (W ) or SO_NOSPACE (N ). SO_ACCECPTON is used on unconnected sockets if their corresponding processes are waiting for a connect request. The other flags are not of normal interest.
Type : Socket类型。
State : Socket当前状态:FREE、 LISTENING、 CONNECTING、 CONNECTED、 DISCONNECTING、 (empty)、 UNKNOWN。
I-Node :索引节点,一个节点存放一个目录或文件的基本信息。由于man中没有该属性的介绍,我将其认为是Path对应文件的inode。
Path : This is the path name as which the corresponding processes attached to the socket.