Linux里面netstat -an命令作用是什么?

 我来答
百度网友023b1c3
科技发烧友

2021-09-13 · 智能家居/数码/手机/智能家电产品都懂点
知道小有建树答主
回答量:1086
采纳率:84%
帮助的人:284万
展开全部

题主你好,

默认情况下,netstat只显示处于已连接状态的连接, 而加上-a参数后会显示所有状态的连接, 说白了就是加上-a参数显示的内容要大于等于不加-a参数时显示的内容, 你也可以简单的理解为加上-a参数后显示的条目更多了.

不加-a:

加-a:

而-n的意思是不将端口解析成服务,啥意思呢,也就是说每个连接所监听的端口都对应着一个运行在系统上的服务,如你本地的机器监听着80端口,则一般情况下说明你本地正在运行着http服务,此时如果你不加-n选项,默认你看到的是1.1.1.1:https,即将端口解析成了服务名, 而你加上-n后看到的是1.1.1.1:443,即直接显示的端口名.直接显示端口名的好处是命令回显的快, 因为少了服务解析的步骤,缺点也很明显,不是很直观(你想啊, 443和http这两个相比,还是http更直观一些):

不加-n:

加-n:


*.需要注意的是State列不只有ESTABLISHED和LISTEN这两种状态,还有其它状态, 这里就不展开了,通过上面的描述,题主先简单的理解一下,如果想要深入的理解netstat显示的所有内容题主还需要学习tcp,udp等协议的细节.

*.一般用的最多的就是" netstat -an | grep 端口号 " 来看看该端口号是否已经被占用了.

=====

希望可以帮到题主, 欢迎追问.

老男孩教育
2021-09-29 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
老男孩教育
专注于Linux高级运维、Python开发、大数据培训,为您分享行业前沿的技术,有效的学习方法和有价值的学习资料。
向TA提问
展开全部

摘自《跟老男孩学习Linux运维:核心命令实战》

10.7 netstat:查看网络状态

10.7.1 命令详解

【命令星级】                                                  ★★★★★

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

【语法格式】netstat  [选项]

【选项说明】

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

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

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

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

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

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

  10.7.2  使用范例

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pieryon
2021-09-13 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166868
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
作用是显示所有套接字接口的状态
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2023-09-27 · 超过88用户采纳过TA的回答
知道小有建树答主
回答量:1207
采纳率:100%
帮助的人:15.5万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式