Product SiteDocumentation Site

10.8. Werkzeuge für die Netzwerk-Diagnose

Wenn eine Netzwerkanwendung nicht erwartungsgemäß läuft, ist es wichtig, unter die Haube schauen zu können. Selbst wenn alles reibungslos zu laufen scheint, kann das Durchführen einer Netzwerk-Diagnose dabei helfen sicherzustellen, dass alles wie vorgesehen funktioniert. Zu diesem Zweck gibt es verschiedene Diagnoseprogramme, von denen jedes auf einer anderen Ebene operiert.

10.8.1. Lokale Diagnose: netstat

Als erstes sei der Befehl netstat genannt (im Paket net-tools); er zeigt eine sofortige Zusammenfassung der Netzaktivitäten eines Rechners. Wenn er ohne Argument aufgerufen wird, listet der Befehl alle offenen Verbindungen auf; diese Liste kann sehr umfangreich sein, da sie viele Unix-Domain-Sockets (üblicherweise von Daemons verwendet) enthält, die in keiner Weise das Netzwerk betreffen (zum Beispiel dbus-Kommunikation, X11-Datenverkehr und Kommunikationen zwischen virtuellen Dateisystemen und der Arbeitsoberfläche).
Normale Aufrufe verwenden daher Optionen, um das Verhalten von netstat zu ändern. Die am häufigsten verwendeten Optionen sind:
  • -t, dies filtert die Ergebnisse, so dass nur TCP-Verbindungen erfasst werden;
  • -u, dies wirkt ähnlich für UDP-Verbindungen; diese Optionen schließen sich nicht gegenseitig aus, und jede von ihnen reicht aus, das Anzeigen von Unix-Domain-Verbindungen zu unterdrücken;
  • -a, um auch die Sockets aufzulisten, die Verbindungen annehmen (auf ankommende Verbindungen warten);
  • -n, um die Ergebnisse numerisch anzuzeigen: IP-Adressen (keine DNS-Auflösung), Portnummern (keine in /etc/services festgelegten Aliasse) und Benutzer-IDs (keine Anmeldenamen);
  • -p, um die beteiligten Prozesse aufzulisten; diese Option ist nur sinnvoll, wenn netstat mit Administratorrechten ausgeführt wird, da normale Benutzer nur ihre eigenen Prozesse sehen würden;
  • -c, um fortlaufend die Liste der Verbindungen aufzufrischen.
Andere Optionen, auf der Handbuchseite netstat(8) dokumentiert, bieten eine noch feinere Kontrolle über die angezeigten Ergebnisse. In der Praxis, werden die fünf ersten Optionen so häufig zusammen benutzt, dass der Befehl netstat -tupan für System- und Netzwerk-Administratoren praktisch zu einem Reflex geworden ist. Typische Ergebnisse auf einem geringfügig ausgelasteten Rechner können wie folgt aussehen:
# netstat -tupan
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:22              0.0.0.0:*               LISTEN      2224/sshd       
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      994/exim4       
tcp        0      0 192.168.1.241:22        192.168.1.128:47372     ESTABLISHED 2944/sshd: roland [
tcp        0      0 192.168.1.241:22        192.168.1.128:32970     ESTABLISHED 2232/sshd: roland [
tcp6       0      0 :::22                   :::*                    LISTEN      2224/sshd       
tcp6       0      0 ::1:25                  :::*                    LISTEN      994/exim4       
udp        0      0 0.0.0.0:68              0.0.0.0:*                           633/dhclient    
udp        0      0 192.168.1.241:123       0.0.0.0:*                           764/ntpd        
udp        0      0 127.0.0.1:123           0.0.0.0:*                           764/ntpd        
udp        0      0 0.0.0.0:123             0.0.0.0:*                           764/ntpd        
udp6       0      0 fe80::a00:27ff:fe6c:123 :::*                                764/ntpd        
udp6       0      0 2002:52e0:87e4:0:a0:123 :::*                                764/ntpd        
udp6       0      0 ::1:123                 :::*                                764/ntpd        
udp6       0      0 :::123                  :::*                                764/ntpd        
Wie erwartet führt dies die bestehenden Verbindungen auf, in diesem Fall zwei SSH-Verbindungen, und auf ankommende Verbindungen wartende Anwendungen (als LISTEN aufgeführt), insbesondere den Exim4 E-Mailserver, der an Port 25 auf Anfragen wartet.