老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

Linux里面netstat-an命令作用是什么?Linux运维培训班

老男孩IT教育

常见问题

2021年9月30日 16:27

netstat命令是Linux中非常重要的命令,主要用于查看网络状态,那么Linux里面netstat-an命令作用是什么?以下便是详细的内容介绍。

  netstat命令是Linux中非常重要的命令,主要用于查看网络状态,那么Linux里面netstat-an命令作用是什么?以下便是详细的内容介绍。

Linux培训机构

  netstat:查看网络状态

  命令详解

  【命令星级】 ★★★★★

  【功能说明】netstat命令用来显示本机网络连接状态、运行端口和路由表等信息。

  【语法格式】netstat [选项]

  【选项说明】

  -r显示路由表信息,功能类似前面学过的route和ip route

  -g显示多播功能群组成员,功能类似前面学过的ip maddr

  -i显示网络接口信息,功能类似前面学过的ip -s link

  -s显示各类协议的统计信息

  -n显示数字形式地址而不是去解析主机、端口或用户名。默认情况下netstat命令会尝试解析并显示主机的主机名,这个过程通常比较长也是非必需的※

  -a显示处于监听状态和非监听状态的socket信息※

  使用范例

  1. 基础范例

  范例10-25:常用选项组合(一)。

  [root@oldboy ~]# netstat -an #<==常用组合-a和-n,显示所有连接信息。

  Active Internet connections (servers and established) #<==活动的TCP/IP网络连接。

  Proto Recv-Q Send-Q Local Address Foreign Address State

  tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

  tcp 0 0 10.0.0.12:22 10.0.0.1:57106 ESTABLISHED

  tcp 0 64 10.0.0.12:22 10.0.0.1:58180 ESTABLISHED

  tcp 0 0 :::22 :::* LISTEN

  Active UNIX domain sockets (servers and established) #<==活动的unix socket连接。

  Proto RefCnt Flags Type State I-Node Path

  范例10-26:常用选项组合(二)。

  [root@oldboy ~]# netstat -lntup

  Active Internet connections (only servers)

  Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

  tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1314/sshd

  tcp 0 0 :::22 :::* LISTEN 1314/sshd

  以上命令语句的作用为显示所有TCP和UDP正在监听的连接信息。

  q -l:显示所有LISTEN状态的网络连接。

  q -n:显示IP地址,不进行DNS解析成主机名、域名。

  q -t:显示所有TCP连接。

  q -u:显示所有UDP连接。

  q -p:显示进程号和进程名。

  范例10-27:显示当前系统的路由表。

  [root@oldboy ~]# netstat -rn #<==使用-r选项显示路由表信息,-n选项不进行DNS解析,加快命令执行速度。

  Kernel IP routing table

  Destination Gateway Genmask Flags MSS Window irtt Iface

  10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

  169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0

  0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0

  #提示:该命令相当于route -n。

  范例10-28:选项-i显示网络接口状况。

  [root@oldboy ~]# netstat -i

  Kernel Interface table

  Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

  eth0 1500 0 44735 0 0 0 45203 0 0 0 BMRU

  lo 65536 0 4081 0 0 0 4081 0 0 0 LRU

  以下是命令结果解释。

  q Iface表示网络设备的接口名称。

  q MTU表示最大传输单元,单位字节。

  q RX-OK/TX-OK表示已经准确无误地接收/发送了多少数据包。

  q RX-ERR/TX-ERR表示接收/发送数据包时产生了多少错误。

  q RX-DRP/TX-DRP表示接收/发送数据包时丢弃了多少数据包。

  q RX-OVR/TX-OVR表示由于误差而遗失了多少数据包。

  q Flg 表示接口标记,其中:

  l L:表示该接口是个回环设备。

  l B:表示设置了广播地址。

  l M:表示接收所有数据包。

  l R:表示接口正在运行。

  l U:表示接口处于活动状态。

  l O:表示在该接口上禁用 arp。

  l P:表示一个点到点的连接。

  正常情况下,RX-ERR/TX-ERR、RX-DRP/TX-DRP和RX-OVR/TX-OVR的值都应该为0,如果这几个选项的值不为0,并且很大,那么网络质量肯定有问题,网络传输性能也一定会下降。

  2. 生产案例

  范例10-29:统计各个状态的网络连接个数。

  [root@Backend-184 ~]# netstat -n |awk '/^tcp/ {++oldboy[$NF]} END {for(a in oldboy) print a, oldboy[a]}' #<==这个题目利用了awk数组的功能,awk的使用请参考本书第四章。

  TIME_WAIT 6163

  FIN_WAIT1 42

  FIN_WAIT2 1056

  ESTABLISHED 4542

  SYN_RECV 53

  LAST_ACK 30

  老男孩教育Linux课程汇集了虚拟化、云计算、安全攻防、Python开发、SRE等技术,课堂效率高、课程内容丰富全面,课程内容由浅入深,循序渐进,帮助学员稳扎稳打,夯实基础,在有限的时间内帮助学员高效提升,成为符合企业需求的技术型人才。

  推荐阅读:

  Linux云计算应用场景有哪些?老男孩Linux云计算培训

  Linux下监控流量用什么工具好?Linux运维培训

  Linux文本处理三剑客之sed命令是什么?有哪些使用方法?

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。