netstat命令用法

netstat命令参数

ios netstat命令行 netstat命令结果_IP


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

ios netstat命令行 netstat命令结果_ios netstat命令行_02


红框为IP所连接的主机

● Netstat -nlp(

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

ios netstat命令行 netstat命令结果_端口号_03

netstat -an

ios netstat命令行 netstat命令结果_linux_04

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

netstat -l

ios netstat命令行 netstat命令结果_ios netstat命令行_05


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

输出结果分析

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均为传输层协议
  • ios netstat命令行 netstat命令结果_ios netstat命令行_06

  • 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:是指当前进程的状态
  • ios netstat命令行 netstat命令结果_端口号_07

netstat -n

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

  • 使用-n参数
  • 未使用参数

    使用-n参数
    1.用端口号代替了协议名称(每个端口代表不同的协议)
    2.将域名(本机名)转换为ip地址
netstat -a

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

ios netstat命令行 netstat命令结果_TCP_08


通过这个命令可以看见服务器与ssh协议的连接(红框标注)一个建立好的网络连接,有四个参数 : 本地,ip + port(端口类型),远端 ip+ port ,

ios netstat命令行 netstat命令结果_端口号_09


ios netstat命令行 netstat命令结果_端口号_10


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

实验

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

ios netstat命令行 netstat命令结果_TCP_11


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

ios netstat命令行 netstat命令结果_ios netstat命令行_12


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

ios netstat命令行 netstat命令结果_linux_13


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