关闭

巧用Netstat排除网络故障

标签: 网络服务器故障linuxnetstat
2661人阅读 评论(4) 收藏 举报
分类:

巧用Netstat排除网络故障

作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs

当在Linux服务器上遇到网络故障时,ping和traceroute是常用的两个命令,但是很多时候你需要了解更多的网络细节才有助于解决问题。要实现这一点,可以使用netstat命令,它可以提供网络套接字的详细信息以及其它有用的信息。与ping和traceroute命令一样,可以简单地在命令行使用netstat并立即获取结果。

一、什么是Netstat

netstat命令是处理网络问题的一个非常有用的工具。netstat是“Network Statistics”即网络统计的缩写,它可以显示传入和传出的网络连接,还可以用于获取网络统计信息、协议统计信息、路由表信息等。

我们可以使用netstat来查找网络问题并测量网络流量,因此可以用它收集网络的中断、降速或网络瓶颈。

二、基本的Netstat

要获取当前所有连接的一个列表,只需使用-a选项。

# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:1922                  *:*                     LISTEN     
tcp        0    216 chdc154:1922            223.99.111.233:11303    ESTABLISHED
tcp6       0      0 [::]:9000               [::]:*                  LISTEN     
tcp6       0      0 [::]:8009               [::]:*                  LISTEN     
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN     
tcp6       0      0 [::]:1922               [::]:*                  LISTEN     
tcp6       0      0 [::]:9090               [::]:*                  LISTEN     
tcp6       0      0 localhost:8005          [::]:*                  LISTEN     
......

它提供了一些对于不同类型的协议(比如TCP和UDP)等的连接的基本信息,以及活跃的Unix域套接字信息。但是,natstat还允许用户获取更具体的信息,以便对调试更有帮助。

三、按连接类型过滤

基于连接类型对结果进行过滤有助于找到所需的信息。比如,你想查看TCP连接,那么可以在上面的-a选项后紧跟一个t选项,具体如下:

# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:1922                  *:*                     LISTEN     
tcp        0    216 chdc154:1922            223.99.111.233:11303    ESTABLISHED
tcp6       0      0 [::]:9000               [::]:*                  LISTEN     
tcp6       0      0 [::]:8009               [::]:*                  LISTEN   
......

相似的,如果在-a选项后紧跟u选项,则值列出UDP连接。

四、按监听连接进行过滤

如果想要查看正在监听的连接,那么可以使用-l选项(移除-a选项),比如:

# netstat -l
Active Internet connections (only servers)
......
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     47834116 /run/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     1661287  /run/user/0/systemd/private
unix  2      [ ACC ]     SEQPACKET  LISTENING     15450    /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     96528873 /run/snapd-snap.socket
unix  2      [ ACC ]     STREAM     LISTENING     10581    /var/lib/lxd/unix.socket
unix  2      [ ACC ]     STREAM     LISTENING     10578    /run/uuidd/request
unix  2      [ ACC ]     STREAM     LISTENING     10582    /run/acpid.socket
......

与-a选项相似,-l选项紧跟t选项,即-lt选项,表示查看正在监听的TCP连接;-lu表示查看正在监听的TCP连接。使用这种方式,可以轻松查看指定端口是否打开和监听,并确定网站应用或APP是否按预期方式运行。

五、查看网络统计信息

# netstat -s
Ip:
    1473970908 total packets received
    17795365 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    1453512118 incoming packets delivered
    2392531460 requests sent out
    40 outgoing packets dropped
    3 fragments dropped after timeout
    48 reassemblies required
    15 packets reassembled ok
    3 packet reassembles failed
Icmp:
    3589646 ICMP messages received
    37 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 178
        timeout in transit: 18
        echo requests: 3589445
        echo replies: 5
......

如你所见,-s选项提供了一些在调试时可能有用的统计信息,例如总数,传入和传出数据包以及收到,发送和失败的ICMP消息。

1
0
查看评论

netstat 查看TCP网络连接情况

查看TCP网络连接情况   命令:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'    www.2cto.com   返回结果示例: Cmd代码...
  • qq_14821541
  • qq_14821541
  • 2016-07-26 18:03
  • 2569

Linux下用netstat查看网络状态、端口状态

Linux下用netstat查看网络状态、端口状态
  • guodongdongNumber1
  • guodongdongNumber1
  • 2013-09-08 15:50
  • 97263

性能测试如何定位瓶颈

服务器性能监控: Nmon介绍 Nmon 工具是 IBM 提供的免费的在AIX与各种Linux操作系统上广泛使用的监控与分析工具。该工具可将服务器的系统资源耗用情况收集起来并输出一个特定的文件,并可利用 excel 分析工具nmonanalyser进行数据的统计分析。并且,nmon运行不会占...
  • sd4015700
  • sd4015700
  • 2016-01-06 10:51
  • 3529

利用网络工具Netstat检测网络异常

网络检测   以TCP/IP通讯协定作为现时最主要的通讯方式,而且是互联网上必需的通讯协定,甚至现时企业内部的网络都向TCP/IP发展,一旦网络通讯发生问题,大部份技术人员,都检查IP 位址或以PING命令检查本机与目的地间的通讯有没有问题,但是当本机电脑受入侵影响而出现不正常现像时,例如有部份应...
  • u013438047
  • u013438047
  • 2014-02-18 14:42
  • 541

网络管理常用命令之三 - Netstat 命令详解(图文)

网络管理常用命令之三 - Netstat 命令详解(图文)
  • chenlycly
  • chenlycly
  • 2016-08-07 15:56
  • 6116

netstat 中state详解

TCP三次握手的过程如下:         主动连接端发送一个SYN包给被动连接端;         被动连接端收到SYN包后,发送一个带ACK和SYN标志的包给主动连接端;      ...
  • chlinwei
  • chlinwei
  • 2017-03-28 10:40
  • 1175

powershell 查看程序的tcp网络连接

在运维工作中,经常查看某个业务的网络连接状况,在这里借用netstat来实现查找连接,用hash特性避免重复。$add=@{} while(1){ ps|?{$_.path -match 'E:\\games\\梦幻XX}|%{ $id=$_.id netstat -ano | F...
  • shrekz
  • shrekz
  • 2014-08-15 15:10
  • 1308

使用netstat检测及监测网络连接

使用小小的一个netstat命令,就能让你检测出系统是否处于安全状态!!! 这篇文档,复杂°:简单;难易°:易。坚决让小白都看得懂,学得会,掌握牢,上手快!好,废话不多说,看招: 大家都知道,Linux上的web服务每天都要面临成千上万的连接,这些连接都是要遵循TCP协议的,...
  • u011792166
  • u011792166
  • 2015-10-01 15:24
  • 1016

netstat统计的tcp连接数与⁄proc⁄pid⁄fd下socket类型fd数量不一致的分析

新blog地址:http://hengyunabc.github.io/netstat-difference-proc-fd-socket-stat/最近,线上一个应用,发现socket数缓慢增长,并且不回收,超过警告线之后,被运维监控自动重启了。首先到zabbix上观察JVM历史记录,发现JVM-...
  • hengyunabc
  • hengyunabc
  • 2015-02-17 11:15
  • 11473

liunx 定位IO瓶颈方法

定位IO瓶颈的一些方法(iotop工具具体查看IO负载主要是落在哪个进程上) linux  IO瓶颈往往是我们可能会忽略的地方(我们常会看top、free、netstat等等,但经常会忽略IO的负载情况),今天给大家详细分享一下如何确认一台服务器的IO负...
  • hualusiyu
  • hualusiyu
  • 2017-08-03 15:12
  • 125
    个人资料
    • 访问:5974723次
    • 积分:52241
    • 等级:
    • 排名:第64名
    • 原创:797篇
    • 转载:23篇
    • 译文:24篇
    • 评论:1190条
    一名路过的黑客

    大家好,我是黑客,专门盗账号的。现在这个人的帐号被我盗了,但看这个人平时的博客空间,一直过着艰苦努力、持之以恒的技术研究生活,勤奋刻苦,积极分享,无私奉献,我被深深的感动了,这是一个纯粹的人,人品这样的高尚,希望大家看到我这条消息后,可以私聊他,多鼓励他,不缺钱的就多给他一些经济上的资助,让他再接再厉!就这样吧,我下线了,眼框湿湿的难受。

    文章存档