Systemverwaltungshandbuch: IP Services

Überwachen des Netzwerkstatus mit dem Befehl netstat

Der Befehl netstat erzeugt eine Anzeige, in der Netzwerkstatus und Protokollstatistiken aufgeführt werden. Sie können den Status von TCP-, SCTP- und UDP-Endpunkten in einem Tabellenformat anzeigen. Darüber hinaus können Sie Routing-Tabelleninformationen sowie Schnittstelleninformationen anzeigen.

Der Befehl netstat zeigt, abhängig von der gewählten Befehlszeilenoption, verschiedene Arten von Netzwerkdaten an. Diese Anzeigen eignen sich besonders für die Systemverwaltung. Die allgemeine Syntax für den Befehl netstat lautet:

netstat [-m] [-n] [-s] [-i | -r] [-f Adressfamilie]

In diesem Abschnitt werden die am häufigsten verwendeten Optionen des Befehls netstat beschrieben. Eine ausführliche Beschreibung aller netstat-Optionen finden Sie in der Manpage netstat(1M).

ProcedureSo zeigen Sie Statistiken nach dem Protokoll an

Mit der Option netstat -s zeigen Sie Protokollstatistiken für die Protokolle UDP, TCP, SCTP, ICMP und IP an.


Hinweis –

Zum Anzeigen der Ausgabe des netstat-Befehls können Sie Ihr Oracle Solaris-Benutzerkonto verwenden.


  1. Zeigen Sie den Protokollstatus an.


    $ netstat -s
    

Beispiel 8–5 Netzwerkprotokollstatistiken

Das folgende Beispiel zeigt die Ausgabe des Befehls netstat - s an. Die Ausgabe wurde teilweise verkürzt. Die Ausgabe kann Bereiche enthalten, in denen ein Problem bei einem Protokoll auftritt. Beispielsweise können statistische Informationen von ICMPv4 und ICMPv6 darauf hindeuten, wo das ICMP-Protokoll Fehler gefunden hat.


RAWIP
        rawipInDatagrams    =  4701     rawipInErrors       =     0
        rawipInCksumErrs    =     0     rawipOutDatagrams   =     4
        rawipOutErrors      =     0

UDP
        udpInDatagrams      = 10091     udpInErrors         =     0
        udpOutDatagrams     = 15772     udpOutErrors        =     0

TCP     tcpRtoAlgorithm     =     4     tcpRtoMin           =   400
        tcpRtoMax           = 60000     tcpMaxConn          =    -1
        .
        .
        tcpListenDrop       =     0     tcpListenDropQ0     =     0
        tcpHalfOpenDrop     =     0     tcpOutSackRetrans   =     0

IPv4    ipForwarding        =     2     ipDefaultTTL        =   255
        ipInReceives        =300182     ipInHdrErrors       =     0
        ipInAddrErrors      =     0     ipInCksumErrs       =     0
        .
        .
        ipsecInFailed       =     0     ipInIPv6            =     0
        ipOutIPv6           =     3     ipOutSwitchIPv6     =     0

IPv6    ipv6Forwarding      =     2     ipv6DefaultHopLimit =   255
        ipv6InReceives      = 13986     ipv6InHdrErrors     =     0
        ipv6InTooBigErrors  =     0     ipv6InNoRoutes      =     0
        .
        .
        rawipInOverflows    =     0     ipv6InIPv4          =     0
 
       ipv6OutIPv4         =     0     ipv6OutSwitchIPv4   =     0

ICMPv4  icmpInMsgs          = 43593     icmpInErrors        =     0
        icmpInCksumErrs     =     0     icmpInUnknowns      =     0
        .
        .
        icmpInOverflows     =     0

ICMPv6  icmp6InMsgs         = 13612     icmp6InErrors       =     0
        icmp6InDestUnreachs =     0     icmp6InAdminProhibs =     0
        .
        .
        icmp6OutGroupQueries=     0     icmp6OutGroupResps  =     2
        icmp6OutGroupReds   =     0

IGMP:
      12287 messages received
          0 messages received with too few bytes
          0 messages received with bad checksum
      12287 membership queries received
SCTP  sctpRtoAlgorithm     =  vanj    
      sctpRtoMin           =  1000 
      sctpRtoMax           = 60000
      sctpRtoInitial       =  3000
      sctpTimHearBeatProbe =     2
      sctpTimHearBeatDrop  =     0
      sctpListenDrop       =     0
      sctpInClosed         =     0 

ProcedureSo zeigen Sie den Status von Transportprotokollen an

Mit dem Befehl netstat können Sie den Status der Transportprotokolle anzeigen. Ausführliche Informationen finden Sie in der Manpage netstat(1M).

  1. Zeigen Sie den Status der Transportprotokolle TCP und SCTP auf einem System an.


    $ netstat
    
  2. Zeigen Sie den Status eines bestimmten Transportprotokolls auf einem System an.


    $ netstat -P transport-protocol
    

    Werte für die Variable Transportprotokoll sind z. B. tcp, sctp oder udp.


Beispiel 8–6 Anzeigen des Status der Transportprotokolle TCP und SCTP

Das folgende Beispiel zeigt die Ausgabe des allgemeinen Befehls netstat. Beachten Sie, dass nur IPv4-Informationen angezeigt werden.


$ netstat

TCP: IPv4
   Local Address     Remote Address    Swind Send-Q  Rwind Recv-Q      State
----------------- -------------------- ----- ------  ----- ------     -------
lhost-1.login      abc.def.local.Sun.COM.980 49640      0     49640    0 ESTABLISHED
lhost-1.login      ghi.jkl.local.Sun.COM.1020 49640     1     49640    0 ESTABLISHED
remhost-1.1014     mno.pqr.remote.Sun.COM.nfsd 49640    0     49640    0 TIME_WAIT
SCTP:                  
Local Address    Remote Address  Swind  Send-Q  Rwind  Recv-Q StrsI/O  State 
---------------- --------------  -----  ------ ------ ------  ------   -------
 *.echo            0.0.0.0            0       0 102400      0   128/1   LISTEN
 *.discard         0.0.0.0            0       0 102400      0   128/1   LISTEN
 *.9001            0.0.0.0            0       0 102400      0   128/1   LISTEN


Beispiel 8–7 Anzeigen des Status eines bestimmten Transportprotokolls

Das folgende Beispiel zeigt die Ausgabe, wenn Sie die Option -P mit dem Befehl netstat angeben.


$ netstat -P tcp
   
TCP: IPv4
   Local Address     Remote Address    Swind Send-Q  Rwind Recv-Q      State
----------------- -------------------- ----- ------  ----- ------     -------
lhost-1.login      abc.def.local.Sun.COM.980 49640      0     49640    0 ESTABLISHED
lhost.login        ghi.jkl.local.Sun.COM.1020 49640     1     49640    0 ESTABLISHED
remhost.1014       mno.pqr.remote.Sun.COM.nfsd 49640    0     49640    0 TIME_WAIT

TCP: IPv6
 Local Address    Remote Address        Swind Send-Q Rwind Recv-Q   State If 
---------------- ---------------------- ------ ----- ------ ----------- -----
localhost.38983   localhost.32777       49152      0 49152      0 ESTABLISHED      
localhost.32777   localhost.38983       49152      0 49152      0 ESTABLISHED      
localhost.38986   localhost.38980       49152      0 49152      0 ESTABLISHED      

ProcedureSo zeigen Sie den Netzwerkschnittstellenstatus an

Mit der Option i des Befehls netstat zeigen Sie den Status der Netzwerkschnittstellen an, die im lokalen System konfiguriert wurden. So können Sie die Anzahl der Pakete ermitteln, die ein System in jedem Netzwerk empfängt und sendet.

  1. Zeigen Sie den Status der Netzwerkschnittstelle an.


    $ netstat -i
    

Beispiel 8–8 Anzeige des Netzwerkschnittstellenstatus

Das nächste Beispiel zeigt den Status des IPv4- und IPv6-Paketflusses durch die Schnittstellen des Hosts.

Beispielsweise kann der Zähler für eingehende Pakete (Ipkts) eines Servers jedes Mal um eins erhöht werden, wenn ein Client zu booten versucht, während der Zähler für abgehende Pakete (Opkts) konstant bleibt. Dieses Ergebnis deutet darauf hin, dass der Server die Boot-Anforderungspakete der Client empfängt. Jedoch weiß der Server nicht, wie er auf diese Pakete antworten soll. Dieses Fehlverhalten könnte durch eine falsche Adresse in einer der Datenbanken hosts, ipnodes oder ethers verursacht werden.

Bleibt der Zähler für eingehende Pakete jedoch konstant, sieht der Computer überhaupt keine Pakete. Dieses Ergebnis deutet auf einen anderen Fehler hin, möglicherweise ein Hardwareproblem.


Name  Mtu  Net/Dest      Address        Ipkts  Ierrs Opkts  Oerrs Collis Queue 
lo0   8232 loopback      localhost      142    0     142    0     0      0     
hme0  1500 host58        host58        1106302 0     52419  0     0      0     

Name  Mtu  Net/Dest      Address                    Ipkts  Ierrs Opkts  Oerrs Collis
lo0   8252 localhost     localhost                   142    0     142    0     0     
hme0  1500 fe80::a00:20ff:feb9:4c54/10 fe80::a00:20ff:feb9:4c54 1106305 0 52422 0  0

ProcedureSo zeigen Sie den Status der Sockets an

Mit der Option -a des Befehls netstat können Sie den Status der Sockets auf dem lokalen Host anzeigen.

  1. Geben Sie den folgenden Befehl ein, um den Status der Sockets und die Routing-Tabelleneinträge anzuzeigen:

    Zum Ausführen dieser Option von netstat können Sie Ihr Benutzerkonto verwenden.


    % netstat -a  
    

Beispiel 8–9 Anzeigen aller Socket und Routing-Tabelleneinträge

Die Ausgabe des Befehls netstat -a zeigt umfangreiche Statistiken an. Das folgende Beispiel zeigt Teile einer typischen Ausgabe des Befehls netstat -a.


UDP: IPv4
   Local Address         Remote Address     State
-------------------- -------------------- -------
      *.bootpc                              Idle
host85.bootpc                               Idle
      *.*                                   Unbound
      *.*                                   Unbound
      *.sunrpc                              Idle
      *.*                                   Unbound
      *.32771                               Idle
      *.sunrpc                              Idle
      *.*                                   Unbound
      *.32775                               Idle
      *.time                                Idle
       .
       .
      *.daytime                             Idle
      *.echo                                Idle
      *.discard                             Idle
      
UDP: IPv6
   Local Address                     Remote Address                   State      If  
--------------------------------- --------------------------------- ---------- -----
      *.*                                                           Unbound   
      *.*                                                           Unbound   
      *.sunrpc                                                      Idle      
      *.*                                                           Unbound   
      *.32771                                                       Idle      
      *.32778                                                       Idle      
      *.syslog                                                      Idle      
      .
      .
TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q  State
-------------------- -------------------- ----- ------ ----- ------ -------
      *.*                  *.*                0      0 49152      0 IDLE
localhost.4999             *.*                0      0 49152      0 LISTEN
      *.sunrpc             *.*                0      0 49152      0 LISTEN
      *.*                  *.*                0      0 49152      0 IDLE
      *.sunrpc             *.*                0      0 49152      0 LISTEN
      .
      .
      *.printer            *.*                0      0 49152      0 LISTEN
      *.time               *.*                0      0 49152      0 LISTEN
      *.daytime            *.*                0      0 49152      0 LISTEN
      *.echo               *.*                0      0 49152      0 LISTEN
      *.discard            *.*                0      0 49152      0 LISTEN
      *.chargen            *.*                0      0 49152      0 LISTEN
      *.shell              *.*                0      0 49152      0 LISTEN
      *.shell              *.*                0      0 49152      0 LISTEN
      *.kshell             *.*                0      0 49152      0 LISTEN
      *.login  
       .
       .
            *.*                0      0 49152      0 LISTEN
   *TCP: IPv6
 Local Address            Remote Address        Swind Send-Q Rwind Recv-Q   State If
----------------------- ----------------------- ----- ------ ----- ------    ----
   *.*                         *.*                0      0 49152      0      IDLE
   *.sunrpc                    *.*                0      0 49152      0      LISTEN
   *.*                         *.*                0      0 49152      0      IDLE
   *.32774                     *.*                0      0 49152

ProcedureSo zeigen Sie den Status von Paketübertragungen eines bestimmten Adresstyps an

Mit der Option -f des Befehls netstat können Sie Statistiken zu den Paketübertragungen einer bestimmten Adressfamilie anzeigen.

  1. Zeigen Sie die Statistiken entweder von IPv4- oder von IPv6-Paketübertragungen an.


    $ netstat -f inet  |  inet6
    

    Zum Anzeigen von Informationen zu IPv4-Übertragungen geben Sie inet als Argument für netstat -f ein. Zum Anzeigen von Informationen zu IPv6-Übertragungen geben Sie inet6 als Argument für netstat -f ein.


Beispiel 8–10 Status von IPv4-Paketübertragungen

Das folgende Beispiel zeigt die Ausgabe des Befehls netstat -f inet.


TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q  State
-------------------- -------------------- ----- ------ ----- ------ -------
host58.734         host19.nfsd       49640      0 49640      0 ESTABLISHED
host58.38063       host19.32782      49640      0 49640      0 CLOSE_WAIT
host58.38146       host41.43601      49640      0 49640      0 ESTABLISHED
host58.996         remote-host.login 49640      0 49206      0 ESTABLISHED


Beispiel 8–11 Status von IPv6-Paketübertragungen

Das folgende Beispiel zeigt die Ausgabe des Befehls netstat -f inet6.


TCP: IPv6
 Local Address          Remote Address        Swind Send-Q Rwind Recv-Q   State    If
------------------ ------------------------- ----- ------ ----- ------ --------- -----
localhost.38065         localhost.32792       49152   0 49152      0    ESTABLISHED  
localhost.32792         localhost.38065       49152   0 49152      0    ESTABLISHED 
localhost.38089         localhost.38057       49152   0 49152      0    ESTABLISHED 

ProcedureSo zeigen Sie den Status bekannter Routen an

Mit der Option -r des Befehls netstat zeigen Sie die Routing-Tabelle des lokalen Hosts an. Diese Tabelle zeigt den Status aller dem Host bekannten Routen. Sie können diese Option des Befehls netstat von Ihrem Benutzerkonto aus ausführen.

  1. Zeigen Sie die IP-Routing Tabelle an.


    $ netstat -r
    

Beispiel 8–12 Ausgabe der Routing-Tabelle des Befehls netstat

Das folgende Beispiel zeigt die Ausgabe des Befehls netstat -r.


Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
host15               myhost               U         1  31059  hme0
10.0.0.14            myhost               U         1      0  hme0
default              distantrouter        UG        1      2  hme0
localhost            localhost            UH        42019361  lo0

Routing Table: IPv6
  Destination/Mask            Gateway                   Flags Ref   Use   If  
--------------------------- --------------------------- ----- --- ------ -----
2002:0a00:3010:2::/64    2002:0a00:3010:2:1b2b:3c4c:5e6e:abcd U  1      0 hme0:1
fe80::/10                fe80::1a2b:3c4d:5e6f:12a2    U       1     23 hme0 
ff00::/8                 fe80::1a2b:3c4d:5e6f:12a2    U       1      0 hme0 
default                  fe80::1a2b:3c4d:5e6f:12a2    UG      1      0 hme0 
localhost                localhost                   UH      9  21832 lo0 

In der folgenden Tabelle wird die Bedeutung der verschiedenen Parameter der Bildschirmausgabe des Befehls netstat —r beschrieben.

Parameter 

Beschreibung 

Destination

Destination/Mask

Gibt den Host an, der als Ziel-Endpunkt der Route fungiert. Beachten Sie, dass die IPv6-Routing-Tabelle das Präfix für einen 6to4-Tunnelendpunkt (2002:0a00:3010:2::/64) als Ziel-Endpunkt der Route anzeigt.

Gateway

Gibt das zum Weiterleiten von Paketen zu verwendende Gateway an. 

Flags

Zeigt den aktuellen Status der Route an. Das Flag U gibt an, dass die Route hochgefahren ist. Das Flag G gibt an, dass die Route zu einem Gateway führt.

Use

Zeigt die Anzahl der gesendeten Pakete an. 

Interface

Zeigt die Schnittstelle auf dem lokalen Host an, die als Ursprungs-Endpunkt der Übertragung dient.