如何使用netstat命令查看网络状态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用netstat命令查看网络状态相关的知识,希望对你有一定的参考价值。

netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。

该命令的一般格式为:

netstat [选项]

命令中各选项的含义如下:

-a 显示所有socket,包括正在监听的。

-c 每隔1秒就重新显示一遍,直到用户中断它。

-i 显示所有网络接口的信息,格式同“ifconfig -e”。

-n 以网络IP地址代替名称,显示出网络连接情形。

-r 显示核心路由表,格式同“route -e”。

-t 显示TCP协议的连接情况。

-u 显示UDP协议的连接情况。

-v 显示正在进行的工作。

[例]在本地机上使用netstat命令。

$ netstat

Active Internet connections (w/o servers)

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

Active UNIX domain sockets (w/o servers)

Proto RefCnt Flags Type State I-Node Path

unix 1 [ ] STREAM CONNECTED 270 @00000008

unix 1 [ ] STREAM CONNECTED 150 @00000002

unix 1 [ ] STREAM CONNECTED 104 @00000001

unix 1 [ ] STREAM CONNECTED 222 @00000004

unix 1 [ ] STREAM CONNECTED 171 @00000003

unix 1 [ ] STREAM CONNECTED 271 /dev/log

unix 1 [ ] STREAM CONNECTED 225 /dev/log

unix 1 [ ] STREAM CONNECTED 223 /dev/log

unix 1 [ ] STREAM CONNECTED 203 /dev/log

unix 1 [ ] STREAM CONNECTED 105 /dev/log

希望对你有帮助。望采纳 谢谢!
参考技术A netstat -e
——本选项用于显示关于以太网的统计数据,它列出的项目包括传送数据报的总字节数、错误数、删除数,包括发送和接收量(如发送和接收的字节数、数据包数),或有广播的数量。可以用来统计一些基本的网络流量。

Linux使用netstat查看网络状态

查看本机的网络状态。使用netstat查看网络状态。显示系统端口使用情况。UDP类型的端口。TCP类型的端口。只显示所有监听端口。只显示所有监听tcp端口。

命令使用举例

命令 说明
netstat -anp 显示系统端口使用情况
netstat -nupl UDP类型的端口
netstat -ntpl TCP类型的端口
netstat -l 只显示所有监听端口
netstat -lt 只显示所有监听tcp端口
输入命令后,输出里包含着协议、本地地址、外部地址及状态信息

Proto Local Address Foreign Address State
协议 本地地址 外部地址 状态
各属性将在后文介绍。

组合命令

netstat -na | grep ESTABLISHED | wc -l 统计已连接上的,状态为"established"

显示系统端口使用情况 netstat -anp
截取部分结果

$ netstat -anp
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:3478            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:3478            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      -               
tcp        0      0 172.16.16.13:37432      169.254.0.55:5574       ESTABLISHED -               
tcp        0    600 172.16.16.13:22         222.216.195.223:17351   ESTABLISHED -               
tcp6       0      0 :::9010                 :::*                    LISTEN      8708/main.js    
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ]         DGRAM                    19037    1744/systemd        /run/user/500/systemd/notify
unix  2      [ ACC ]     STREAM     LISTENING     13532    -                   /var/lib/lxd/unix.socket
unix  2      [ ACC ]     STREAM     LISTENING     19038    1744/systemd        /run/user/500/systemd/private
unix  2      [ ACC ]     SEQPACKET  LISTENING     9722     -                   /run/udev/control
unix  2      [ ]         DGRAM                    71848026 -                   /usr/local/qcloud/YunJing/conf/ydrpc_3
unix  3      [ ]         DGRAM                    9712     -                   /run/systemd/notify

查看UDP类型的端口 netstat -nupl
$ netstat -nupl
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:3478 0.0.0.0:* -
udp 0 0 0.0.0.0:3478 0.0.0.0:* -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
udp 0 0 172.16.16.13:123 0.0.0.0:* -
udp 0 0 127.0.0.1:123 0.0.0.0:* -
udp 0 0 0.0.0.0:123 0.0.0.0:* -
udp6 0 0 :::123 ::😗 -
查看TCP类型的端口 netstat -nupl
截取部分结果

$ netstat -ntpl
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
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:80              0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::9010                 :::*                    LISTEN      8708/main.js    
tcp6       0      0 :::22                   :::*                    LISTEN      -               

只显示所有监听端口 netstat -l
部分结果

$ netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:http                  *:*                     LISTEN     
tcp        0      0 *:3478                  *:*                     LISTEN     
tcp        0      0 *:3478                  *:*                     LISTEN     
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 *:https                 *:*                     LISTEN     
tcp6       0      0 [::]:9010               [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
udp        0      0 *:3478                  *:*                                
udp        0      0 *:3478                  *:*                                
udp        0      0 *:bootpc                *:*                                
udp        0      0 172.16.16.13:ntp        *:*                                
udp        0      0 localhost.localdoma:ntp *:*                                
udp        0      0 *:ntp                   *:*                                
udp6       0      0 [::]:ntp                [::]:*                             
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     13532    /var/lib/lxd/unix.socket
unix  2      [ ACC ]     STREAM     LISTENING     19038    /run/user/500/systemd/private

只显示所有监听tcp端口 netstat -lt
部分结果

$ netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:http                  *:*                     LISTEN     
tcp        0      0 *:3478                  *:*                     LISTEN     
tcp        0      0 *:3478                  *:*                     LISTEN     
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 *:https                 *:*                     LISTEN     
tcp6       0      0 [::]:9010               [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     

各属性介绍
各个属性(标题)含义是什么?

Proto 协议名
比如tcp,udp

Recv-Q 本地缓冲队列
表示本地缓冲中的数据,这些数据还没有被进程取走。

一般来说这里的值是0

Send-Q 发送缓存队列
对方还没收到数据,或者还没ack的数据,还在本地缓冲区中。
如果这里不能很快清零,可能是我方发送过快,或者对方接收太慢。

一般来说这里的值是0

Local Address 本地地址
0.0.0.0:80 表示监听本地服务器上所有ip的80端口(0.0.0.0表示所有ip)

:::9010 表示监听本地服务器上所有ip的9010端口。这里是IPv6地址。

::: 有3个冒号。前2个是0:0:0:0:0:0:0:0的缩写。表示本地所有IPv6地址。
第三个冒号是IP和端口的分隔符号。

127.0.0.1:123 表示监听本机的loopback(回环地址)地址的123端口。

形如::1:9011,表示监听IPv6的回环地址的9011端口。

Foreign Address 外部地址
与本地服务器通信的另外的地址,显示规则和上面本地地址的相同。

State 状态
网络链路的状态。常见 LISTEN,ESTABLISHED 等等

LISTEN 打开监听后状态为LISTEN,等待其他机器前来连接
ESTABLISHED 链接已建立,双方可以进行或正在数据交互
PID(Program)
进程id,表示使用这个连接的进程

以上是关于如何使用netstat命令查看网络状态的主要内容,如果未能解决你的问题,请参考以下文章

Linux使用netstat查看网络状态

Netstat查看端口状态,netstat命令详解

netstat查看网络状态

如何查看linux服务器运行状态?

如何查看Memcached运行状态

Linux命令之显示网络状态netstat