None

10 Linux-Befehle, um Verbindungen zu testen

Lesen Sie, wie Sie unter Linux (unter anderem) überprüfen, ob jemand “zuhause” ist.Mike Korostelev | shutterstock.com



Linux stellt eine ganze Reihe von Tools, respektive Befehlen, zur Verfügung, um die Konnektivität und Verbindungsgeschwindigkeit per Kommandozeile zu testen. In diesem Artikel sehen wir uns einige davon an. Ganz konkret behandelt dieses Tutorial folgende Linux-Befehle (inklusive Beispielen beziehungsweise Befehlssyntax):




ping



traceroute



mtr



ncat



speedtest



fast



nethogs



ss



iftop



ethtool




ping



Das ping-Kommando ist für grundlegende Verbindungstests der einfachste und am häufigsten verwendete Linux-Befehl. Es sendet Pakete (sogenannte Echo Requests) an einen Host in einem IP-Netzwerk. Dabei misst der Befehl die Zeit, die zwischen dem Aussenden des Pakets und dem Empfang der Antwort vergeht. Außerdem gibt ping auch darüber Auskunft, wie viel Prozent der Anfragen beantwortet wurden.



Die Antwortzeiten hängen weitgehend davon ab, wie viele Netzknoten (Router oder Switches) die Anfragen durchlaufen müssen und ob das Netzwerk überlastet ist. Ein lokales System anzupingen, könnte folgendermaßen aussehen:



$ ping 192.168.0.11PING 192.168.0.11 (192.168.0.11) 56(84) bytes of data.64 bytes from 192.168.0.11: icmp_seq=1 ttl=64 time=4.36 ms64 bytes from 192.168.0.11: icmp_seq=2 ttl=64 time=5.86 ms64 bytes from 192.168.0.11: icmp_seq=3 ttl=64 time=2.87 ms^C--- 192.168.0.11 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2003msrtt min/avg/max/mdev = 2.867/4.361/5.859/1.221 ms



Auf Linux-Systemen werden die Pings so lange gesendet, bis Sie sie mit ^c stoppen. Einige andere Systeme erfordern das nicht, beispielsweise Windows: Hier werden vier Echo Requests gesendet, dann ist automatisch Schluss. Geht es nicht um lokale, sondern Remote-Systeme, fallen die Antwortzeiten deutlich länger aus als in unserem obigen Beispiel. Ein Paketverlust von 0 Prozent sollte hier allerdings ebenfalls vorliegen, ansonsten besteht wahrscheinlich ein Problem.



Mit dem ping-Befehl können Sie auch einfach die Netzwerkkonnektivität eines Heimnetzwerks überprüfen. Probleme manifestieren sich auch in diesem Fall in einer erhöhten Packet-Loss-Rate.



$ ping 180.65.0.22PING 180.65.0.22 (180.65.0.22) 56(84) bytes of data.64 bytes from 180.65.0.22: icmp_seq=1 ttl=46 time=362 ms64 bytes from 180.65.0.22: icmp_seq=2 ttl=46 time=305 ms64 bytes from 180.65.0.22: icmp_seq=3 ttl=46 time=276 ms64 bytes from 180.65.0.22: icmp_seq=4 ttl=46 time=257 ms^C--- 180.65.0.22 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3002msrtt min/avg/max/mdev = 257.172/300.119/362.431/39.775 ms









traceroute



Ein wesentlich komplexerer Befehl ist hingegen traceroute. Er stößt eine Reihe von Prüfungen an, um festzustellen, wie viele Hops (Zwischenstationen) auf dem Weg vom Ausgangsrechner zum Ziel-Host liegen. Um dabei auch jeden Hop zeitlich zu erfassen, nutzt traceroute das Time-to-live (TTL) -Konzept. Das gewährleistet, dass jede Zwischenstation irgendwann eine Fehlermeldung zurücksendet und ermöglicht, die zeitlichen Abstände zwischen den einzelnen Hops zu erfassen. Wenn diese Gesamtprüfung zu lange dauert, kann das ein Zeichen dafür sein, dass es an einzelnen Knoten zu Überlastungen kommt.



Nachfolgend ein Beispiel für die Verwendung von traceroute, um ein lokales System zu erreichen (ein einzelner Hop und eine schnelle Antwort):



$ traceroute 192.168.0.11traceroute to 192.168.0.11 (192.168.0.11), 30 hops max, 60 byte packets 1 192.168.0.11 (192.168.0.11) 9.228 ms 12.797 ms 12.782 ms



Im nächsten Beispiel versuchen wir mit dem Linux-Befehl ein Remote-System zu erreichen. Die Ergebnisse, die hierbei als eine Folge von Sternchen dargestellt sind, deuten im Regelfall darauf hin, dass das entsprechende System aufgrund einer Überlastung eine hohe Latenz aufweist.



$ traceroute www.amazon.comtraceroute to www.amazon.com (99.84.218.165), 30 hops max, 60 byte packets 1 router (192.168.0.1) 1.586 ms 3.842 ms 4.074 ms 2 10.226.32.1 (10.226.32.1) 27.342 ms 28.485 ms 29.529 ms 3 10.17.1.25 (10.17.1.25) 30.769 ms 31.584 ms 32.379 ms 4 10.17.0.221 (10.17.0.221) 33.126 ms 34.390 ms 35.284 ms 5 10.17.0.226 (10.17.0.226) 37.000 ms 38.837 ms 40.808 ms 6 204.111.0.145 (204.111.0.145) 44.083 ms 42.671 ms 42.582 ms 7 99.82.178.164 (99.82.178.164) 44.254 ms 30.422 ms 31.666 ms 8 * * * 9 * * *10 * * *11 52.93.40.225 (52.93.40.225) 41.548 ms 52.93.40.223 (52.93.40.223) 41.808 ms 52.93.40.225 (52.93.40.225) 43.326 ms12 * * *13 * * *14 * * *15 * * *16 * * *17 server-99-84-218-165.iad79.r.cloudfront.net (99.84.218.165) 44.862 ms 44.746 ms 44.713 ms



Standardmäßig beträgt die maximale Anzahl von Hops für traceroute 30 (siehe Zeile 1 des obenstehenden Outputs). Diese Begrenzung können Sie mit dem Argument -m verändern.



mtr



Der mtr-Befehl (steht für my traceroute) kombiniert die Funktionalitäten von ping und traceroute. Im folgenden Beispiel werten wir mit dem Kommando die Konnektivität zwischen lokalem System und Standard-Router aus. Auch hier wird der Paketverlust in einem Prozentwert und die Anzahl der gesendeten Pakete ausgegeben.



fedora (192.168.0.19) -> 192.168.0.1 (192.168.0.1) 2025-02-21T14:16:27-0500Keys: Help Display mode Restart statistics Order of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. _gateway 0.0% 13 3.3 3.5 3.0 7.1 1.1



Die von mtr zurückgemeldeten Felder und ihre Bedeutung im Überblick:




Loss %: der Prozentsatz der verlorenen Pakete



Snt: Anzahl der gesendeten Pakete



Last: Latenz des zuletzt gesendeten Pakets



Avg: durchschnittliche Latenz der gesendeten Pakete



Best: schnellste Antwort



Wrst: langsamste Antwort



StDev: Standardabweichung




Zu beachten ist dabei, dass die Netzwerklatenz von mehreren Faktoren beeinflusst wird, etwa Entfernung, Bandbreite und Netzwerkauslastung.



ncat



Das ncat-Kommando – früher als netcat bekannt – ist ein Netzwerkdienstprogramm mit diversen Funktionen, das ursprünglich für nmap konzipiert wurde. In der untenstehenden Form können Sie mit diesem Tool jedoch auch einfach feststellen, ob eine Verbindung zu einem bestimmten Service möglich ist. Indem Sie Nullbytes (die -z-Einstellung) an einen bestimmten Port eines Hosts senden, können Sie überprüfen, ob der zugehörige Dienst verfügbar ist, ohne die Verbindung tatsächlich nutzen zu müssen.



$ nc -z -v 192.168.0.11 22Ncat: Version 7.80 ( https://nmap.org/ncat )Ncat: Connected to 192.168.0.11:22.Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.



Der resultierende Output sagt uns, dass ssh auf dem angegebenen System zwar reagiert, aber nicht versucht, sich anzumelden oder einen Remote-Befehl auszuführen. Überprüfen wir dasselbe System auf eine Webseite, wird kein laufender Webserver für Port 80 gefunden.



$ nc -z -v 192.168.0.11 80
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Connection refused.



Wenn wir dasselbe noch einmal mit einer populären Webseite wiederholen, sieht das Ergebnis erwartungsgemäß anders aus:



$ ncat -z -v 205.251.242.103 80Ncat: Version 7.93 ( https://nmap.org/ncat )Ncat: Connected to 205.251.242.103:80.Ncat: 0 bytes sent, 0 bytes received in 0.10 seconds.



speedtest



Das speedtest-Tool testet die Geschwindigkeit Ihrer Internetverbindung.  



$ speedtest Speedtest by Ookla Server: Winchester Wireless - Winchester, VA (id = 21859) ISP: Shentel Communications Latency: 25.86 ms (0.96 ms jitter) Download: 10.34 Mbps (data used: 10.7 MB) Upload: 1.00 Mbps (data used: 1.1 MB)Packet Loss: 0.0% Result URL: https://www.speedtest.net/result/c/bb2e002a-d686-4f9c-8f36-f93fbcc9b752



Darüber hinaus können Sie diesen Linux-Befehl auch über einen Browser verwenden – Visualisierung inklusive.



fast



Mit dem fast-Tool ist es zudem möglich, die Download-Geschwindigkeit mehrmals zu überprüfen und daraus einen Durchschnittswert zu ermitteln. Dazu kommt der Speed-Testing-Service von Netflix (fast.com) zum Einsatz.



$ fast
$   10.08 Mbps



Das fast-Tool müssen Sie installieren, bevor Sie es nutzen können. Das funktioniert folgendermaßen:



$ wget https://github.com/ddo/fast/releases/download/v0.0.4/fast_linux_amd64
$ sudo install fast_linux_amd64 /usr/local/bin/fast
$ which fast
/usr/local/bin/fast



nethogs



Das nethogs-Kommandoverfolgt einen grundlegend anderen Ansatz als die bisher erläuterten Linux-Befehle: Es gruppiert die Bandbreitennutzung nach Prozessen. Das kann Sie dabei unterstützen, „Slowdowns“ in Ihrem Netzwerkverkehr auf die Schliche zu kommen.



NetHogs version 0.8.6 PID USER PROGRAM DEV SENT RECEIVED 127832 nemo /usr/lib/firefox/firefox enp0s2 11.120 432.207 KB/sec 413216 shs sshd: shs@pts/1 enp0s2 0.246 0.059 KB/sec 696 root /usr/sbin/NetworkManager enp0s2 0.000 0.000 KB/sec ? root unknown TCP 0.000 0.000 KB/sec TOTAL 0.246 432.266 KB/sec



In diesem Output ist relativ eindeutig, welcher Prozess das Gros der Bandbreite frisst.



ss



Mit dem ss-Befehl (steht für Socket Statistics) steht Linux-Benutzern auch ein performantes Tool zur Verfügung, um detaillierte Informationen über Netzwerk-Sockets einzuholen.



Werden dabei keine Optionen verwendet, werden alle Sockets angezeigt, die nicht „listening“ sind. Mit der Option -a listet der Befehl hingegen alle Sockets auf – rechnen Sie also mit einer längeren Liste:



$ ss -a -tState Recv-Q Send-Q Local Address:Port Peer Address:Port ProcessLISTEN 0 4096 127.0.0.1:ipp 0.0.0.0:*LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*LISTEN 0 4096 127.0.0.54:domain 0.0.0.0:*LISTEN 0 5 127.0.0.1:dey-sapi 0.0.0.0:*LISTEN 0 4096 0.0.0.0:hostmon 0.0.0.0:*LISTEN 0 4096 127.0.0.53%lo:domain 0.0.0.0:*LISTEN 0 5 127.0.0.1:44321 0.0.0.0:*TIME-WAIT 0 0 192.168.0.19:42928 109.61.91.195:httpsESTAB 0 64 192.168.0.19:ssh 192.168.0.8:62656LISTEN 0 5 [::1]:dey-sapi [::]:*LISTEN 0 128 [::]:ssh [::]:*LISTEN 0 4096 [::1]:ipp [::]:*LISTEN 0 4096 [::]:hostmon [::]:*LISTEN 0 5 [::1]:44321 [::]:*



iftop



Bei iftop handelt es sich um Tool, um Netzwerke in Echtzeit zu monitoren. Der Befehl zeigt Netzwerkverbindungen inklusive ihrer aktuellen Bandbreitennutzung an. Das kann (wie nethogs) dazu beitragen, besonders datenintensive Verbindungen zu identifizieren.



Nachfolgend ein Output-Beispiel. Zu beachten ist, dass für dieses Tool sudo-Berechtigungen erforderlich sind.



$ sudo iftop[sudo] password for shs:interface: wlp1s0IP address is: 192.168.0.19MAC address is: ec:0e:c4:24:7d:bf 12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kbqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqq239.255.255.250 => 192.168.0.2 0b 0b 0b <= 0b 12.2Kb 6.12Kb239.255.255.250 => _gateway 0b 0b 0b <= 0b 5.62Kb 2.81Kbfedora => 192.168.0.8 2.19Kb 1.98Kb 2.26Kb <= 184b 184b 244bfedora => ns.shentel.net 0b 66b 31b <= 0b 108b 70bfedora => 216.72.190.35.bc.googleusercontent.com 0b 0b 39b <= 0b 0b 21bqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqTX: cum: 5.92KB peak: 4.47Kb rates: 4.47Kb 3.02Kb 2.96KbRX: 23.3KB 61.6Kb 392b 550b 11.7KbTOTAL: 29.2KB 64.0Kb 4.85Kb 3.56Kb 14.6Kb



ethtool



Der Befehl ethtool bietet eine Möglichkeit, die Parameter von Netzwerkkarten auf Linux-Systemen zu untersuchen und zu steuern. Systemadministratoren können damit Details zu Netzwerkschnittstellen extrahieren, Einstellungen zur Leistungsoptimierung ändern und Probleme effektiv beheben.



Dabei liefert der Befehl einen äußerst detaillierten Output, wie nachfolgend zu sehen.



$ ethtool --show-features wlp1s0 | columnFeatures for wlp1s0: tx-ipxip6-segmentation: off [fixed]rx-checksumming: off [fixed] tx-udp_tnl-segmentation: off [fixed]tx-checksumming: off tx-udp_tnl-csum-segmentation: off [fixed] tx-checksum-ipv4: off [fixed] tx-gso-partial: off [fixed] tx-checksum-ip-generic: off [fixed] tx-tunnel-remcsum-segmentation: off [fixed] tx-checksum-ipv6: off [fixed] tx-sctp-segmentation: off [fixed] tx-checksum-fcoe-crc: off [fixed] tx-esp-segmentation: off [fixed] tx-checksum-sctp: off [fixed] tx-udp-segmentation: off [fixed]scatter-gather: off tx-gso-list: off [fixed] tx-scatter-gather: off [fixed] fcoe-mtu: off [fixed] tx-scatter-gather-fraglist: off [fixed] tx-nocache-copy: offtcp-segmentation-offload: off loopback: off [fixed] tx-tcp-segmentation: off [fixed] rx-fcs: off [fixed] tx-tcp-ecn-segmentation: off [fixed] rx-all: off [fixed] tx-tcp-mangleid-segmentation: off [fixed] tx-vlan-stag-hw-insert: off [fixed] tx-tcp6-segmentation: off [fixed] rx-vlan-stag-hw-parse: off [fixed]generic-segmentation-offload: off [requested on] rx-vlan-stag-filter: off [fixed]generic-receive-offload: on l2-fwd-offload: off [fixed]large-receive-offload: off [fixed] hw-tc-offload: off [fixed]rx-vlan-offload: off [fixed] esp-hw-offload: off [fixed]tx-vlan-offload: off [fixed] esp-tx-csum-hw-offload: off [fixed]ntuple-filters: off [fixed] rx-udp_tunnel-port-offload: off [fixed]receive-hashing: off [fixed] tls-hw-tx-offload: off [fixed]highdma: off [fixed] tls-hw-rx-offload: off [fixed]rx-vlan-filter: off [fixed] rx-gro-hw: off [fixed]vlan-challenged: off [fixed] tls-hw-record: off [fixed]tx-lockless: off [fixed] rx-gro-list: offnetns-local: on [fixed] macsec-hw-offload: off [fixed]tx-gso-robust: off [fixed] rx-udp-gro-forwarding: offtx-fcoe-segmentation: off [fixed] hsr-tag-ins-offload: off [fixed]tx-gre-segmentation: off [fixed] hsr-tag-rm-offload: off [fixed]tx-gre-csum-segmentation: off [fixed] hsr-fwd-offload: off [fixed]tx-ipxip4-segmentation: off [fixed] hsr-dup-offload: off [fixed]



Weitere, lesenswerte Tutorials zum Thema Linux-Befehle:




Die wichtigsten Linux-Befehle für Einsteiger



Linux-Befehle gegen Speed-Probleme



Linux-Befehle für mehr Server-Einblick




(fm)



Sie wollen weitere interessante Beiträge zu diversen Themen aus der IT-Welt lesen? Unsere kostenlosen Newsletter liefern Ihnen alles, was IT-Profis wissen sollten – direkt in Ihre Inbox!