netstat命令

netstat(network statistics)命令用于列出系统网络套接字连接情况,包括TCP,UDP以及Unix套接字.

相似命令ss,ss命令速度上更快. 部分Linux版本默认已经不再内置netstate而是内置了ss 命令。

语法

netstat [-vWeenNcCF] [<Af>] -r  
或
netstat [-vWnNcaeol] [<Socket> ...]
或
netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]


<Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-w|--raw} {-x|--unix}
           --ax25 --ipx --netrom

<AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inet
 

选项

  • -a 或--all 列出所有网络连接
  • -t 或--tcp 列出TCP协议的连接。
  • -u 或--udp 列出UDP协议的连接。
  • -x 或--unix 此参数的效果和指定"-A unix"参数相同。
  • -l 或--listening 只列出监听状态的连接,同时使用-a时将无效。
  • -A<网络类型>或--<网络类型> 列出该网络类型连接中的相关地址。
  • -p 或--programs 列出连接对应的进程名和PID。
  • -c 或--continuous 持续列出网络状态。
  • -C 或--cache 显示路由器配置的快取信息。
  • -e 或--extend 显示网络其他相关信息(如与-u -t结合会显示进程用户名,与-i结合显示同ifconfig命令)。
  • -F 或--fib 显示路由缓存。
  • -g 或--groups 显示多重广播功能群组组员名单。
  • -i 或--interfaces 显示网络接口信息,结合上 -e 选项等于ifconfig命令的输出。
  • -M 或--masquerade 显示伪装的网络连接。
  • -n 或--numeric 禁用域名解析功能,直接使用IP地址. netstat默认会通过反向域名解析技术查找IP地址对应的主机名,这会降低查找速度。
  • -N 或--netlink 或--symbolic 显示网络硬件外围设备的符号连接名称。
  • -o 或--timers 显示计时器。
  • -r 或--route 显示路由信息。
  • -s 或--statistics 显示不同网络协议的统计信息。
  • -v 或--verbose 显示指令执行过程。
  • -V 或--version 显示版本信息。
  • -w 或--raw 显示 RAW 传输协议的连接状况。
  • --ip 或--inet 此参数的效果和指定"-A inet"参数相同。
  • -h 或--help 在线帮助。

netstat命令实例

显示所有的网络连接状况,包括各种不同状态,不同协议的连接

# netstat -a

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:cddbp-alt       0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:epmd            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:63796           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN       
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN     
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp        0      0 localhost:32001         0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN     
tcp        0      0 test95:58704            test95:22122            TIME_WAIT  
tcp        0      0 test95:45906            test95:22122            ESTABLISHED
tcp        0      0 localhost:32001         localhost:31001         ESTABLISHED
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN
tcp6       1      0 test95:51896            test95:cslistener       CLOSE_WAIT

......

以面命令结果可以看出两个地址列(Local Address,Foreign Address)显示出了主机名

显示tcp协议连接,并禁止反解析主机名,现时列出进程ID和进程名

# netstat -tnp

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 10.18.200.95:59538      10.18.200.95:22122      TIME_WAIT   -                   
tcp        0      0 10.18.200.95:45906      10.18.200.95:22122      ESTABLISHED 6070/fdfs_storaged  
tcp        0      0 10.18.200.95:59606      10.18.200.95:22122      TIME_WAIT   -                   
tcp        0      0 127.0.0.1:32001         127.0.0.1:31001         ESTABLISHED 6074/wrapper-linux- 
tcp        0      0 127.0.0.1:58627         127.0.0.1:4369          ESTABLISHED 1080/beam.smp                      
tcp        0      0 10.18.200.95:22122      10.18.200.95:45906      ESTABLISHED 5703/fdfs_trackerd                   
tcp        0      0 10.18.200.95:23000      10.18.200.96:36808      ESTABLISHED 6070/fdfs_storaged  
tcp        0      0 10.18.200.95:59574      10.18.200.95:22122      TIME_WAIT   -                   
tcp        0      0 10.18.200.95:22122      10.18.200.96:55756      ESTABLISHED 5703/fdfs_trackerd  
tcp        0      0 10.18.200.95:4369       10.18.200.95:33954      TIME_WAIT   -                   
tcp        0     36 10.18.200.95:22         10.16.7.179:54742       ESTABLISHED 7772/sshd: oper [pr 
tcp        0      0 127.0.0.1:4369          127.0.0.1:58627         ESTABLISHED 1349/epmd           
tcp        0      0 10.18.200.95:59584      10.18.200.95:22122      TIME_WAIT   -                   
tcp6       0      0 127.0.0.1:3306          127.0.0.1:54354         ESTABLISHED 3404/mysqld

......

显示网卡列表

# netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0   1500 3599824807      0      0 0      3597030121      0      0      0 BMRU
ens33     1500 4666755599      0 4083268 0      6140501682      0      0      0 BMRU
lo       65536 712476722      0      0 0      712476722      0      0      0 LRU
vethe278  1500 3599824807      0      0 0      3597030129      0      0      0 BMRU

与grep配合使用过滤结果

显示正在监听状态的8080端口的tcp连接

# netstat -tnlp|grep 8080

tcp6       0      0 :::8080                 :::*                    LISTEN      6500/java

显示java程序正在监听状态的tcp连接

netstat -tnlp|grep java
tcp        0      0 127.0.0.1:32001         0.0.0.0:*               LISTEN      6076/java           
tcp6       0      0 :::9998                 :::*                    LISTEN      20165/java          
tcp6       0      0 :::8080                 :::*                    LISTEN      6500/java           
tcp6       0      0 :::20880                :::*                    LISTEN      6076/java           
tcp6       0      0 :::8081                 :::*                    LISTEN      26042/java          
tcp6       0      0 127.0.0.1:5010          :::*                    LISTEN      2610/java

......

只显示活跃状态的连接

# netstat -anp|grep ESTABLISHED
tcp        0      0 10.18.200.95:45906      10.18.200.95:22122      ESTABLISHED 6070/fdfs_storaged  
tcp        0 305528 10.18.200.95:8880       10.18.200.30:46051      ESTABLISHED 6090/nginx: worker  
tcp        0      0 127.0.0.1:32001         127.0.0.1:31001         ESTABLISHED 6074/wrapper-linux- 
tcp        0 411232 10.18.200.95:8880       10.18.200.30:46045      ESTABLISHED 6090/nginx: worker  
tcp        0      0 127.0.0.1:58627         127.0.0.1:4369          ESTABLISHED 1080/beam.smp       
tcp        0      0 10.18.200.95:22122      10.18.200.95:45906      ESTABLISHED 5703/fdfs_trackerd  
tcp        0      0 10.18.200.95:23000      10.18.200.96:36808      ESTABLISHED 6070/fdfs_storaged  
tcp        0      0 10.18.200.95:22122      10.18.200.96:55756      ESTABLISHED 5703/fdfs_trackerd
......