Linux中netstat有关命令参数用法及输出结果分析


netstat命令用法

netstat命令参数

● netstat -a 显示网络状态(-a表示全部)

红框为IP所连接的主机

● Netstat -nlp(

-n 以数字形式显示地址和端口号,能显示文字的全部转化成数字 ,禁用反向域名解析,加快查询速度-l 仅列出有在listen(监听)的服务状态-p 显示建立相关链接的程序名)

netstat -an

这个命令能看到所有和本地计算机建立连接的IP,它包含四个部分:proto(连接方式)、local address(本地连接地址)、foreign address(和本地建立连接的地址)、state(当前端口状态)。通过这个命令的详细信息可以完全监控自己的计算机上的连接。

netstat -l

该命令是显示所有监听端口

输出结果分析

netstat -nlp命令结果分析

从整体上看,netstat的输出结果可以分为两个部分:

1、一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q“和”Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

2、另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

recv-Q 表示网络接收队列

表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。

send-Q 表示网路发送队列

对方没有收到的数据或者说没有ACK的,还是本地缓冲区。如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。

Proto显示连接使用的网络传输协议,主要为tcp和udp

RefCnt表示连接到本套接口上的进程号

Types显示套接口的类型

State内部地址与外部地址的连接状态,主要有监听( LISTEN )和建立(ESTABLISED)

Path表示连接到套接口的其它进程使用的路径名

PID :服务的进程编号

Program name:服务名称

TCP与UDP均为传输层协议

0.0.0.0有两种解释:

1、0.0.0.0代表本机上可用的任意地址。 比如0.0.0.0:22表示本机上所有地址的22端口,这样多ip计算机就不用重复显示了。

2、0.0.0.0为默认路由,即要到达不在路由表里面的网段的包都走0.0.0.0这条规则。

其实,我们可以“通用”理解为代表“本机地址”,22在程序中体现为绑定的22端口号

1、UID是用户ID,用户身份证明

2、 PID是进程ID,操作系统里指进程识别号,也就是进程标识符

3、PPID是父进程ID,代表当前进程的父进程ID

foreign address:表示远程IP地址:监听端口

local address:表示本地IP地址,IP地址前面为计算机名称

state:是指当前进程的状态

netstat -n

-n 以数字形式显示地址和端口号,能显示文字的全部转化成数字 ,禁用反向域名解析,加快查询速度

使用-n参数

未使用参数

使用-n参数

1.用端口号代替了协议名称(每个端口代表不同的协议)

2.将域名(本机名)转换为ip地址

netstat -a

在-a参数面前加上tcp的首字母t可以显示TCP相关的信息

在-a参数面前加上udp的首字母u可以显示UDP相关的信息

通过这个命令可以看见服务器与ssh协议的连接(红框标注)

一个建立好的网络连接,有四个参数 : 本地,ip + port(端口类型),远端 ip+ port ,

IP地址:端口(如果是服务端,则称为监听端口;反之,如果是客户端则为连接端口)

实验

curl. www.baidu.com(访问baidu网页)

通过netstat找出这次连接,记住要同时开两个窗口

如果不确定百度IP就ping www.baidu.com

这样就可以确定连接是否正确了

《攻城掠地》封地攻略:如何有效利用资源实现一天十个封地
cesd10抑郁量表评分标准