Difference between revisions of "Kommandozeilenwerkzeuge"
(→iftop) |
(→iftop) |
||
| Line 748: | Line 748: | ||
</pre> | </pre> | ||
| − | [[#top]] | + | [[#top | oben]] |
Revision as of 11:09, 15 January 2026
Contents
Kommandozeilenwerkzeuge
ip
Der Befehl ip (Teil von iproute2) ersetzt ifconfig, route, arp & Co. ### Allgemeine Syntax ip [OPTIONEN] OBJEKT BEFEHL Typische Objekte: addr (oder a) → IP-Adressen link (oder l) → Interfaces route (oder r) → Routing neigh (oder n) → ARP / Neighbor rule → Policy Routing ### Interfaces (Link-Ebene) Alle Interfaces anzeigen ip link show ip l Einzelnes Interface anzeigen ip link show eth0 Interface aktivieren / deaktivieren ip link set eth0 up ip link set eth0 down MTU setzen ip link set eth0 mtu 1500 MAC-Adresse ändern ip link set eth0 address aa:bb:cc:dd:ee:ff ### IP-Adressen (Layer 3) IP-Adressen anzeigen ip addr show ip a IP-Adresse hinzufügen ip addr add 192.168.1.10/24 dev eth0 IP-Adresse löschen ip addr del 192.168.1.10/24 dev eth0 Nur IPv4 / IPv6 ip -4 addr ip -6 addr ### Routing Routing-Tabelle anzeigen ip route show ip r Default-Gateway setzen ip route add default via 192.168.1.1 Route zu Netz hinzufügen ip route add 10.0.0.0/24 via 192.168.1.254 Route löschen ip route del 10.0.0.0/24 ### ARP / Neighbor-Tabelle Nachbarn anzeigen ip neigh show ip n ARP-Eintrag hinzufügen ip neigh add 192.168.1.20 lladdr aa:bb:cc:dd:ee:ff dev eth0 ARP-Eintrag löschen ip neigh del 192.168.1.20 dev eth0 ARP-Cache leeren ip neigh flush all ### Policy Routing (Grundlagen) Routing-Regeln anzeigen ip rule show Regel hinzufügen ip rule add from 192.168.2.0/24 table 100 Tabelle anzeigen ip route show table 100 ### Netzwerk-Namespaces Namespaces anzeigen ip netns list Namespace erstellen ip netns add testns Befehl im Namespace ausführen ip netns exec testns ip addr ### Monitoring & Debugging Link-Status live beobachten ip monitor Nur Adress-Änderungen ip monitor addr ### Häufige Kurzformen (sehr gebräuchlich) Langform Kurz ip addr ip a ip link ip l ip route ip r ip neigh ip n ### Vergleich zu alten Befehlen Alt Neu ifconfig ip addr, ip link route ip route arp ip neigh brctl ip link ### Wichtige Hinweise Änderungen sind nicht persistent Dauerhafte Konfiguration: NetworkManager systemd-networkd /etc/network/interfaces ip ist IPv4 & IPv6-fähig Skript-tauglich & konsistent ### Mini-Spickzettel ip a # Adressen ip l # Interfaces ip r # Routing ip n # ARP ip monitor # Live-Events
ifconfig
ifconfig gehört zum veralteten Paket net-tools. Es wird durch ip (iproute2) ersetzt. ### Interfaces anzeigen Alle aktiven Interfaces ifconfig Alle Interfaces (auch inaktive) ifconfig -a ### Einzelnes Interface anzeigen ifconfig eth0 ### Interface aktivieren / deaktivieren Aktivieren ifconfig eth0 up Deaktivieren ifconfig eth0 down ### IP-Adresse setzen (IPv4) IP-Adresse zuweisen ifconfig eth0 192.168.1.10 Mit Netzmaske ifconfig eth0 192.168.1.10 netmask 255.255.255.0 Mit Broadcast-Adresse ifconfig eth0 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255 !!! Nicht persistent – gilt nur bis zum Neustart oder Interface-Reset. ### MAC-Adresse ändern MAC-Adresse setzen ifconfig eth0 hw ether aa:bb:cc:dd:ee:ff (Oft muss das Interface vorher down sein) ### MTU setzen ifconfig eth0 mtu 1500 ### Promiscuous Mode Aktivieren ifconfig eth0 promisc Deaktivieren ifconfig eth0 -promisc ### Statistik anzeigen ifconfig eth0 ### Loopback konfigurieren (selten nötig) ifconfig lo 127.0.0.1 up ### Moderne Entsprechung (empfohlen) ifconfig ip ifconfig ip addr show ifconfig -a ip link show ifconfig eth0 up ip link set eth0 up ifconfig eth0 down ip link set eth0 down ifconfig eth0 192.168.1.10 ip addr add 192.168.1.10/24 dev eth0 ifconfig eth0 mtu 1500 ip link set eth0 mtu 1500 ### Empfehlung Nur zum Lesen / Legacy: ifconfig Aktiv konfigurieren: ip Skripte neu schreiben: iproute2
tcpdump
Standard-Werkzeug zur Paketmitschnitt-Analyse ### Grundsyntax tcpdump [OPTIONEN] [FILTER] ### Interfaces & Basisoptionen Verfügbare Interfaces anzeigen tcpdump -D Auf bestimmtem Interface mitschneiden tcpdump -i eth0 Alle Interfaces (Linux) tcpdump -i any Ohne Namensauflösung (empfohlen) tcpdump -n MAC-Adressen anzeigen tcpdump -e ### Ausgabe steuern Mehr Details (Verbose) tcpdump -v tcpdump -vv tcpdump -vvv Nur Header, kein Payload tcpdump -q Paketinhalt anzeigen (ASCII / HEX) tcpdump -A # ASCII tcpdump -X # HEX + ASCII Paketlänge begrenzen (Snaplen) tcpdump -s 96 ### Paketanzahl & Laufzeit Anzahl begrenzen tcpdump -c 100 Zeitstempel anzeigen tcpdump -tttt ### Mitschnitt in Datei (pcap) In Datei schreiben tcpdump -w capture.pcap Aus Datei lesen tcpdump -r capture.pcap Rotierende Dateien tcpdump -w dump.pcap -G 60 -W 10 ### Klassische Filter (BPF) Nach Protokoll tcpdump tcp tcpdump udp tcpdump icmp tcpdump arp Nach Host tcpdump host 192.168.1.10 tcpdump src host 192.168.1.10 tcpdump dst host 192.168.1.10 Nach Port tcpdump port 80 tcpdump tcp port 443 Nach Netz tcpdump net 192.168.1.0/24 ### Kombinierte Filter AND / OR / NOT tcpdump tcp and port 22 tcpdump host 192.168.1.10 and not port 22 tcpdump tcp port 80 or port 443 ### TCP-spezifische Filter SYN-Pakete tcpdump 'tcp[tcpflags] & tcp-syn != 0' SYN ohne ACK (Verbindungsaufbau) tcpdump 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0' RST-Pakete tcpdump 'tcp[tcpflags] & tcp-rst != 0' ### Typische Praxisbeispiele „Kommt Traffic an?“ tcpdump -i eth0 -n icmp HTTP-Traffic sehen tcpdump -i eth0 -n tcp port 80 DNS-Abfragen debuggen tcpdump -i eth0 -n udp port 53 ARP-Probleme analysieren tcpdump -i eth0 -n -e arp ### Performance & Sicherheit Nur erste Pakete ansehen tcpdump -c 20 Payload komplett mitschneiden tcpdump -s 0 Root vermeiden (Capabilities) sudo setcap cap_net_raw,cap_net_admin=eip $(which tcpdump) ### Häufige Stolperfallen Ohne -n → langsame DNS-Lookups Große Mitschnitte ohne -c / -G -s 0 erzeugt sehr große Dateien Traffic auf lo nicht vergessen ### Mini-Spickzettel 🧾 tcpdump -i eth0 -n tcpdump -i any icmp tcpdump -w file.pcap tcpdump -r file.pcap tcpdump tcp port 443
termshark
Termshark ist im Grunde ein Terminal-basiertes Wireshark für Linux, das auf tshark aufsetzt, aber mit einer interaktiven TUI (Text User Interface) arbeitet. Damit kann man Netzwerkpakete live mitschneiden, filtern und analysieren, ohne eine grafische Oberfläche zu brauchen. ### Starten von Termshark Live Capture auf Interface termshark -i eth0 -i → Interface Listet beim Start alle verfügbaren Interfaces auf, wenn keines angegeben ist. Aus pcap-Datei öffnen termshark -r capture.pcap -r → read from file ### Interface-Auswahl & Optionen Liste der Interfaces anzeigen termshark -D Capture mit BPF-Filter termshark -i eth0 -f "tcp port 80" -f → BPF-Filter (wie bei tcpdump) Capture nur bestimmte Pakete speichern termshark -i eth0 -w output.pcap -w → write to file ### Navigation im Interface Pfeiltasten ↑↓ → durch Pakete scrollen Enter → Details eines Pakets aufklappen Tab → zwischen Packet List / Packet Details / Packet Bytes wechseln q → beenden ### Filtern Display-Filter Funktioniert wie Wireshark (nicht BPF) tcp.port == 443 ip.addr == 192.168.1.10 http Tastenkombination: / → Filter eingeben Filter kann live angepasst werden Filter löschen Ctrl+L → Clear Filter ### Paket-Detailansicht Enter auf Paket → Details aufklappen Pfeil rechts/links → Layer auf-/zuklappen Hexdump → Payload anzeigen Copy Field → Tastenkombination y → kopiert ausgewähltes Feld ### Speichern & Exportieren Pcap speichern während Capture → -w filename.pcap Export Packet Bytes / Fields → im Menü möglich ### Suchen Suchen nach Text/Byte-Mustern → Ctrl+F Beispiel: alle Pakete mit HTTP/1.1 im Payload finden ### Sortierung & Markierung Pakete können nach Spalten sortiert werden (Src, Dst, Protocol) Markieren für spätere Analyse → m Clear Marks → Shift+M ### Typische Praxis-Beispiele HTTP-Traffic live analysieren termshark -i eth0 -f "tcp port 80" DNS-Abfragen aus PCAP untersuchen termshark -r capture.pcap -Y "dns" Nur bestimmte IPs filtern termshark -i eth0 -Y "ip.addr == 192.168.1.10" ### Nützliche Shortcuts (TUI) Shortcut Funktion ↑↓ Scroll Pakete Enter Paketdetails aufklappen Tab Zwischen Views wechseln / Display-Filter eingeben Ctrl+F Suchen Ctrl+L Filter löschen m Paket markieren y Feld kopieren q Beenden ### Unterschiede zu Wireshark Terminal-basiert, kein GUI Nutzt Tshark als Engine Unterstützt alle Wireshark-Displayfilter Ideal für Server ohne GUI oder SSH-Sessions
termshark Spickzettel
Termshark Spickzettel (Linux / Terminal)
### Starten von Termshark
Zweck Befehl / Option
Live Capture auf Interface termshark -i eth0
Capture auf allen Interfaces anzeigen termshark -D
Capture aus Datei lesen termshark -r capture.pcap
Pakete während Capture speichern termshark -i eth0 -w output.pcap
Capture mit BPF-Filter termshark -i eth0 -f "tcp port 80"
Display-Filter beim Start termshark -r file.pcap -Y "http"
### Display-Filter (Wireshark-artig)
Filter Beispiel
TCP-Port tcp.port == 443
IP-Adresse ip.addr == 192.168.1.10
Nur Protokoll http / dns / icmp
Kombination ip.src == 192.168.1.10 and tcp.port == 80
Shortcut für Filtereingabe: /
Filter löschen: Ctrl+L
### Navigation & Paketansicht
Aktion Shortcut / Methode
Pakete scrollen ↑ / ↓
Paketdetails aufklappen Enter
Layer auf-/zuklappen → / ←
Zwischen Views wechseln Tab (Packet List / Details / Bytes)
Payload als Hex/ASCII In Detailansicht anzeigen
Feld kopieren y
### Suche
Aktion Shortcut / Methode
Text / Pattern suchen Ctrl+F
Nächste Übereinstimmung n
Vorherige Übereinstimmung Shift+n
### Markieren & Sortieren
Aktion Shortcut / Methode
Paket markieren m
Markierungen löschen Shift+M
Sortierung nach Spalte Spaltenkopf auswählen / Pfeiltasten
### Capture beenden
Aktion Methode
Live Capture stoppen q
### Shortcuts – Übersicht (TUI)
Shortcut Funktion
↑ / ↓ Scroll Pakete
Enter Paketdetails aufklappen
→ / ← Layer auf-/zuklappen
Tab Zwischen Views wechseln
/ Display-Filter eingeben
Ctrl+L Filter löschen
Ctrl+F Suchen
n / Shift+n Nächste / vorherige Übereinstimmung
m Paket markieren
Shift+M Markierungen löschen
y Feld kopieren
q Beenden
### Tipps
Live Capture: Filter möglichst früh setzen (-f), um Datenmenge zu reduzieren
Display-Filter vs. BPF-Filter:
-f "tcp port 80" → nur Pakete auf Interface aufnehmen
-Y "tcp.port == 80" → nachträglich filtern
Große Captures: Mit -r file.pcap arbeiten, statt alles live zu sehen
### Extra Tipp: Du kannst Termshark auch über SSH auf einem Server nutzen
und die .pcap-Dateien danach auf deinem Laptop mit Wireshark öffnen.
termshark Bedienung
Termshark
ist eine terminalbasierte Benutzeroberfläche (TUI) für tshark, die stark an Wireshark angelehnt ist. Es ermöglicht die Analyse von Netzwerkverkehr direkt auf der Kommandozeile, was besonders auf Servern oder via SSH nützlich ist.
1. Installation
Termshark setzt voraus, dass tshark (Teil des Wireshark-Pakets) auf dem System installiert ist.
Debian/Ubuntu: sudo apt install termshark
macOS (Homebrew): brew install termshark
Arch Linux: pacman -S termshark
Go-Installation (Universal): go install github.com
2. Starten und Erfassen
Sie können Termshark entweder live auf einer Schnittstelle starten oder eine vorhandene PCAP-Datei öffnen.
Live-Capture: termshark -i eth0 (ersetzen Sie eth0 durch Ihre Schnittstelle)
Datei öffnen: termshark -r datei.pcap
Schnittstellen auflisten: termshark -D
3. Bedienung (Wichtige Tastenkürzel)
Die Navigation erfolgt hauptsächlich über die Tastatur:
Tab: Wechselt zwischen den Ansichten (Paketliste, Paketdetails, Hex-Dump).
Pfeiltasten: Scrollen durch Pakete oder Details.
/ (Slashtaste): Fokus auf das Filterfeld setzen. Hier können dieselben Display-Filter wie in Wireshark verwendet werden (z. B. ip.addr == 192.168.1.1 oder tcp.port == 80).
Enter: Öffnet Details eines ausgewählten Pakets.
c: Wechselt zur Ansicht "Conversations" (Netzwerkgespräche).
q: Beendet Termshark.
?: Ruft die integrierte Hilfe auf.
4. Hauptvorteile gegenüber tshark
Im Gegensatz zum reinen tshark, das nur Text ausgibt, bietet Termshark eine interaktive Oberfläche:
Reassembly: TCP- und UDP-Streams können einfach zusammengesetzt und inspiziert werden.
Kopieren: Bereiche (wie IP-Adressen oder Hex-Daten) können direkt in die Zwischenablage kopiert werden.
Visualisierung: Die Struktur der Pakete wird hierarchisch dargestellt, genau wie in der grafischen Wireshark-Oberfläche.
arp
Übersetzt IP-Adressen in MAC-Adressen
### Klassischer ARP-Befehl (arp)
Teil des Pakets net-tools (gilt als deprecated, aber oft noch installiert)
ARP-Tabelle anzeigen
arp
arp -n //-n → keine Namensauflösung (schneller, übersichtlicher)
ARP-Eintrag hinzufügen
arp -s 192.168.1.10 aa:bb:cc:dd:ee:ff
ARP-Eintrag löschen
arp -d 192.168.1.10
Bestimmtes Interface nutzen
arp -i eth0
### Moderner Ersatz: ip neigh (empfohlen)
Teil von iproute2 – heute Standard auf Linux
Nachbarn (ARP / NDP) anzeigen
ip neigh show oder kurz: ip n
ARP-Eintrag hinzufügen
ip neigh add 192.168.1.10 lladdr aa:bb:cc:dd:ee:ff dev eth0
ARP-Eintrag ändern
ip neigh replace 192.168.1.10 lladdr aa:bb:cc:dd:ee:ff dev eth0
ARP-Eintrag löschen
ip neigh del 192.168.1.10 dev eth0
ARP-Cache leeren
ip neigh flush all
### ARP-Pakete aktiv senden: arping
Sehr nützlich für Tests und Fehlersuche
Erreichbarkeit prüfen (Layer 2)
arping 192.168.1.1
Interface festlegen
arping -I eth0 192.168.1.1
Gratuitous ARP senden
arping -U 192.168.1.10
### Netzwerk-Diagnose & Analyse
ARP-Traffic mitschneiden
tcpdump -n -e arp
ARP-Tabelle über /proc anzeigen
cat /proc/net/arp
### Typische ARP-Statuswerte (bei ip neigh)
Status Bedeutung
REACHABLE Host erreichbar
STALE Eintrag alt, wird geprüft
DELAY Prüfung geplant
INCOMPLETE ARP-Antwort fehlt
FAILED ARP fehlgeschlagen
PERMANENT Statischer Eintrag
<pre>
=== ethtool ===
<pre>
Kommando Funktion
ethtool eth0 Status und Einstellungen auf der
Bitüberragungsschicht ausgeben
ethtool -P eth0 MAC-Adresse ausgeben
ethtool -S eth0 Statistische Daten ausgeben
ethtool -i eth0 Informationen zu Treiber und Firmware
ethtool -p eth0 LED blinken lassen
iftop
Überwachung des Datenverkehrs in Echtzeit iftop -i eth0