飞道的博客

每天学一个 Linux 命令(65):netstat

498人阅读  评论(0)

点击下方“民工哥技术之路”,选择“设为星标”

回复“1024”获取独家整理的学习资料!

推荐阅读:每天学一个 Linux 命令(64):ifconfig

命令简介

netstat(network statistics) 是一个命令行工具,它用来显示网络连接(传入和传出),路由表和许多网络接口(网络接口控制器或软件定义的网络接口)和网络协议统计信息。也可用于查找网络中的问题,打印 Linux 中网络系统的状态信息,查看整个 Linux 系统的网络情况。

netstat 的使用平很广,包括 OS X、Linux、Solaris 和 BSD,以及基于 Windows NT 的操作系统,包括 Windows XP、Windows Vista、Windows 7/8/10。

语法格式

netstat { xxx } [ OPTIONS ]

选项说明


   
  1. -a或--all    #显示所有的网络连接信息
  2. -A<网络类型>  #显示该网络类型连线中的相关地址
  3. -c或--continuous  #持续列出网络状态信息
  4. -C或--cache  #显示路由器配置的快取信息
  5. -e或--extend  #显示网络其他相关信息
  6. -g或--groups  #显示多播功能群组信息
  7. -h或--help    #打印在线帮助信息
  8. -i或--interfaces  #显示网络界面信息表单
  9. -l或--listening   #显示监控中的服务器的Socket
  10. -M或--masquerade  #显示伪装的网络连线
  11. -n或--numeric     #直接使用ip地址
  12. -N或--netlink    #显示网络硬件外围设备的符号连接名称
  13. -o或--timers     #显示计时器
  14. -r或--route      #显示Routing Table
  15. -s或--statistice   #显示所有端口的状态统计信息
  16. -t或--tcp   #显示TCP传输协议的连接状态
  17. -u或--udp   #显示UDP传输协议的连接状态
  18. -v或--verbose  #显示指令执行过程信息
  19. -V或--version  #显示版本信息
  20. -w或--raw      #显示RAW传输协议的连线状况
  21. -x或--unix    #此参数与 "-A unix"参数结果相同
  22. --ip或--inet  #此参数与 "-A inet"参数结果 相同

应用举例

列出端口


   
  1. ##列出所有端口
  2. [root@CentOS7 -1 ~]# netstat -a
  3. Active Internet connections (servers and established)
  4. Proto Recv-Q Send-Q Local Address           Foreign Address         State      
  5. tcp         0       0  0.0 .0 .0:ssh              0.0 .0 .0:*               LISTEN     
  6. tcp         0       0 localhost:smtp           0.0 .0 .0:*               LISTEN     
  7. tcp         0       0 localhost: 8125           0.0 .0 .0:*               LISTEN     
  8. tcp         0       0  0.0 .0 .0:dnp-sec          0.0 .0 .0:*               LISTEN     
  9. tcp         0      52 CentOS7 -1:ssh            192.168 .1 .93: 58049      ESTABLISHED
  10. tcp6        0       0 [::]:ssh                [::]:*                  LISTEN     
  11. tcp6        0       0 localhost:smtp          [::]:*                  LISTEN     
  12. tcp6        0       0 localhost: 8125          [::]:*                  LISTEN     
  13. tcp6        0       0 [::]:dnp-sec            [::]:*                  LISTEN     
  14. udp         0       0 localhost: 8125           0.0 .0 .0:*                          
  15. udp         0       0 localhost: 323            0.0 .0 .0:*                          
  16. udp6        0       0 localhost: 8125          [::]:*                             
  17. udp6        0       0 localhost: 323           [::]:*                             
  18. raw6        0       0 [::]:ipv6-icmp          [::]:*                   7          
  19. #列出所有tcp端口
  20. [root@CentOS7 -1 ~]# netstat -at
  21. Active Internet connections (servers and established)
  22. Proto Recv-Q Send-Q Local Address           Foreign Address         State      
  23. tcp         0       0  0.0 .0 .0:ssh              0.0 .0 .0:*               LISTEN     
  24. tcp         0       0 localhost:smtp           0.0 .0 .0:*               LISTEN     
  25. tcp         0       0 localhost: 8125           0.0 .0 .0:*               LISTEN     
  26. tcp         0       0  0.0 .0 .0:dnp-sec          0.0 .0 .0:*               LISTEN     
  27. tcp         0      52 CentOS7 -1:ssh            192.168 .1 .93: 58049      ESTABLISHED
  28. tcp6        0       0 [::]:ssh                [::]:*                  LISTEN     
  29. tcp6        0       0 localhost:smtp          [::]:*                  LISTEN     
  30. tcp6        0       0 localhost: 8125          [::]:*                  LISTEN     
  31. tcp6        0       0 [::]:dnp-sec            [::]:*                  LISTEN     
  32. #列出所有UDP端口
  33. [root@CentOS7 -1 ~]# netstat -au
  34. Active Internet connections (servers and established)
  35. Proto Recv-Q Send-Q Local Address           Foreign Address         State      
  36. udp         0       0 localhost: 8125           0.0 .0 .0:*                          
  37. udp         0       0 localhost: 323            0.0 .0 .0:*                          
  38. udp6        0       0 localhost: 8125          [::]:*                             
  39. udp6        0       0 localhost: 323           [::]:*                  
  40. #列出所有处于监听状态的 Sockets
  41. netstat -l        #只显示监听端口
  42. netstat -lt       #只列出所有监听 tcp 端口
  43. netstat -lu       #只列出所有监听 udp 端口
  44. netstat -lx       #只列出所有监听 UNIX 端口
  45.  
  46. #显示每个协议的统计信息
  47. netstat -s    #显示所有端口的统计信息
  48. netstat -st   #显示TCP端口的统计信息
  49. netstat -su   #显示UDP端口的统计信息

显示路由表信息


   
  1. [root@CentOS7 -1 ~]# netstat -r
  2. Kernel IP routing table
  3. Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
  4. default         gateway          0.0 .0 .0         UG         0  0           0 ens33
  5. 192.168 .1 .0      0.0 .0 .0          255.255 .255 .0   U          0  0           0 ens33
  6. [root@CentOS7 -1 ~]# netstat -rn
  7. Kernel IP routing table
  8. Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
  9. 0.0 .0 .0          192.168 .1 .1      0.0 .0 .0         UG         0  0           0 ens33
  10. 192.168 .1 .0      0.0 .0 .0          255.255 .255 .0   U          0  0           0 ens33

显示接口列表


   
  1. [root@CentOS7 -1 ~]# netstat -i
  2. Kernel Interface table
  3. Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
  4. ens33             1500     48619       0       5  0           7246       0       0       0 BMRU
  5. lo               65536      1730       0       0  0           1730       0       0       0 LRU

分组查看各种连接状态


   
  1. [root@CentOS7 -1 ~]# netstat -n | awk  '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
  2. LAST_ACK  5 (正在等待处理的请求数) 
  3. SYN_RECV  3  
  4. ESTABLISHED  10 (正常数据传输状态) 
  5. FIN_WAIT2  5
  6. TIME_WAIT  313 (处理完毕,等待超时结束的请求数)

显示连接数


   
  1. [root@CentOS7 -1 ~]# netstat -an |grep : 22
  2. tcp         0       0  0.0 .0 .0: 22               0.0 .0 .0:*               LISTEN     
  3. tcp         0      52  192.168 .1 .100: 22         192.168 .1 .93: 58049      ESTABLISHED
  4. tcp6        0       0 ::: 22 
  5. [root@CentOS7 -1 ~]# netstat -an |grep : 22 |wc -l
  6. 3

通过端口找进程ID


   
  1. [root@CentOS7 -1 ~]# netstat -anp | grep  58049
  2. tcp         0      52  192.168 .1 .100: 22         192.168 .1 .93: 58049      ESTABLISHED  1350/sshd: root@pts 
  3. [root@CentOS7 -1 ~]# netstat -anp | grep  58049 |grep ESTABLISHED
  4. tcp         0      52  192.168 .1 .100: 22         192.168 .1 .93: 58049      ESTABLISHED  1350/sshd: root@pts 
  5. [root@CentOS7 -1 ~]# netstat -anp | grep  58049 |grep ESTABLISHED |awk  '{print $7}'
  6. 1350/sshd:
  7. [root@CentOS7 -1 ~]# netstat -anp | grep  58049 |grep ESTABLISHED |awk  '{print $7}' |cut -d/ -f1
  8. 1350

查看连接某个端口最多的IP地址


   
  1. [root@CentOS7 -1 ~]# netstat -ntu | grep : 58049 | awk  '{print $5}' | cut -d: -f1 | awk  '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
  2. 1    192.168 .1 .93
  3. [root@CentOS7 -1 ~]# netstat -ntu | grep : 22 | awk  '{print $5}' | cut -d: -f1 | awk  '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
  4. 1    192.168 .1 .93

显示所有端口的状态统计信息


   
  1. [root@CentOS7 -1 ~]# netstat -s
  2. Ip:
  3.      15146 total packets received
  4.      0 forwarded
  5.      0 incoming packets discarded
  6.      15146 incoming packets delivered
  7.      3885 requests sent out
  8.      8 dropped because of missing route
  9. Icmp:
  10.      4 ICMP messages received
  11.      0 input ICMP message failed.
  12.     ICMP input histogram:
  13.         destination unreachable:  4
  14.      44 ICMP messages sent
  15.      0 ICMP messages failed
  16.     ICMP output histogram:
  17.         destination unreachable:  44
  18. IcmpMsg:
  19.         InType3:  4
  20.         OutType3:  44
  21. Tcp:
  22.      863 active connections openings
  23.      1 passive connection openings
  24.      858 failed connection attempts
  25.      0 connection resets received
  26.      1 connections established
  27.      5021 segments received
  28.      3772 segments send out
  29.      0 segments retransmited
  30.      0 bad segments received.
  31.      858 resets sent
  32. Udp:
  33.      200 packets received
  34.      44 packets to unknown port received.
  35.      0 packet receive errors
  36.      246 packets sent
  37.      0 receive buffer errors
  38.      0 send buffer errors
  39. UdpLite:
  40. TcpExt:
  41.      1 TCP sockets finished time wait in fast timer
  42.      35 delayed acks sent
  43.      1 packets directly queued to recvmsg prequeue.
  44.      1362 packet headers predicted
  45.      438 acknowledgments not containing data payload received
  46.      1160 predicted acknowledgments
  47.     TCPRcvCoalesce:  9
  48.     TCPOrigDataSent:  1719
  49. IpExt:
  50.     InBcastPkts:  10042
  51.     InOctets:  4159848
  52.     OutOctets:  329931
  53.     InBcastOctets:  3778680
  54.     InNoECTPkts:  15150

显示多播组信息


   
  1. [root@CentOS7 -1 ~]# netstat -g
  2. IPv6/IPv4 Group Memberships
  3. Interface       RefCnt Group
  4. --------------- ------ ---------------------
  5. lo               1      all-systems.mcast.net
  6. ens33            1      all-systems.mcast.net
  7. lo               1      ff02:: 1
  8. lo               1      ff01:: 1
  9. ens33            1      ff02:: 1:ff4e: 26b0
  10. ens33            1      ff02:: 1:ff01:b5bb
  11. ens33            1      ff02:: 1
  12. ens33            1      ff01:: 1

每天学一个 Linux 命令(62):ping

每天学一个 Linux 命令(63):route

推荐阅读 点击标题可跳转

关于 Kubernetes 的这些原理,你一定要了解

蚂蚁金服 CEO 突然辞职!去向很意外。。。

再见 FTP/SFTP!下一代文件传输利器 Croc 来了!

比 ELK 更高效的企业级日志平台后起之秀 Graylog!

请务必收藏!Nginx 五大常见应用场景

搞懂日志采集利器 Filebeat 并不难!

这 5 种常用运维监控工具都不会?你算啥运维人

Docker 数据管理介绍

k8s 日志收集的那些套路


转载:https://blog.csdn.net/mingongge/article/details/114908836
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场