netstat 命令

netstat 命令用来打印 Linux 中网络系统的状态信息,可让你得知整个 Linux 系统的网络情况。

它可以 1. 显示路由表,实际的网络连接以及每一个网络接口设备的状态信息 2. 显示与 IP, TCP, UDP 和 ICMP 协议相关的统计数据,一般用于查询本机各端口的网络连接情况

命令用法

$ NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p] [-r] [-s] [-x] [-t] [interval][--ip]

常用可选参数

参数

说明

-a, -all

显示所有连接和侦听端口(默认显示已连接的端口信息

-e

显示以太网的统计信息。可与 -s 结合使用

-n

直接使用 ip 地址,而不通过域名服务器

-r

显示路由表信息

-s

显示网络工作信息统计表。默认情况下,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息

-p

显示与每个连接相关的所属进程的 PID/ 进程名

-l

显示正在监听的端口信息

结果参数解析

gackle@machine:~$ netstat -p
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
...

其中分为两部分: 1. Active Internet connections,称为有源TCP连接,其中 Recv-QSend-Q 指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。其他如 Local Address 以及 Foreign Address 分别代表本地地址信息和外部地址信息,State 代表连接的状态。

  1. Active UNIX domain sockets,称为有源 Unix 域套接字(和网络套接字一样,但只用于本机通信,性能提高一倍)。其中 RefCnt 代表连接到本套接字上的进程号,Type 表示套接字的类型,State 显示套接字连接状态,Path 表示连接到套接字的其它进程使用的路径名

其中关于连接状态 State 的值有:

含义

LISTEN

监听来自远方的TCP端口的连接请求

SYN-SENT

在发送连接请求后等待匹配的连接请求

SYN-RECEIVED

在收到和发送一个连接请求后等待对方对连接请求的确认

ESTABLISHED

代表一个打开的连接

TIME-WAIT

等待足够的时间以确保远程TCP接收到连接中断请求的确认

CLOSED

没有任何连接状态

CLOSED-WAIT

等待从本地用户发来的连接中断请求

使用实例

  1. 查看端口占用

     #查看8090 端口占用情况
     $ netstat -nlp | grep 8090
  2. 实现网络设备列表

     $ netstat -i
     Kernel Interface table
     Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
     eth0      1500        0      0      0 0             0      0      0      0 BMRU
     eth1      1500        0      0      0 0             0      0      0      0 BMRU
     eth2      1500        0      0      0 0             0      0      0      0 BMRU
     lo        1500        0      0      0 0             0      0      0      0 LRU
     wifi0     1500        0      0      0 0             0      0      0      0 BMRU
  3. 查找程序运行的端口

     $ netstat -anp | grep './server'
  4. 显示路由表信息

     Kernel IP routing table
     Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
     link-local      0.0.0.0         255.255.0.0     U         0 0          0 eth0
     169.254.134.81  0.0.0.0         255.255.255.255 U         0 0          0 eth0
     169.254.255.255 0.0.0.0         255.255.255.255 U         0 0          0 eth0
     224.0.0.0       0.0.0.0         240.0.0.0       U         0 0          0 eth0
     255.255.255.255 0.0.0.0         255.255.255.255 U         0 0          0 eth0
     192.168.56.0    0.0.0.0         255.255.255.0   U         0 0          0 eth1
     ...
     255.255.255.255 0.0.0.0         255.255.255.255 U         0 0          0 wifi0

Last updated