Difference between revisions of "Kommandozeilenwerkzeuge"

From
Jump to: navigation, search
(Spickzettel)
(Spickzettel)
Line 720: Line 720:
  
  
==== Spickzettel ====
+
==== route - Spickzettel ====
<pre>
+
{|
 
| **Aktion**                                | **route-Befehl**                                                    | **ip route-Befehl**                            | **Beschreibung**                                                |
 
| **Aktion**                                | **route-Befehl**                                                    | **ip route-Befehl**                            | **Beschreibung**                                                |
| ----------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------- | --------------------------------------------------------------- |
+
| ----------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------- |  
 +
|}
 
| **Routing-Tabelle anzeigen**              | `route -n`                                                          | `ip route show`                                | Zeigt alle Routen ohne DNS-Auflösung.                          |
 
| **Routing-Tabelle anzeigen**              | `route -n`                                                          | `ip route show`                                | Zeigt alle Routen ohne DNS-Auflösung.                          |
 
| **Standardgateway setzen**                | `sudo route add default gw 192.168.1.1`                            | `sudo ip route add default via 192.168.1.1`    | Setzt das Standardgateway für alle nicht lokal bekannten Ziele. |
 
| **Standardgateway setzen**                | `sudo route add default gw 192.168.1.1`                            | `sudo ip route add default via 192.168.1.1`    | Setzt das Standardgateway für alle nicht lokal bekannten Ziele. |

Revision as of 11:31, 15 January 2026

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

oben


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

oben


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.

oben


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. 

oben


route

### Klassische route-Befehle

Anzeigen der Routing-Tabelle

route -n   //-n zeigt die IP-Adressen numerisch an (ohne DNS-Namenauflösung).


Standardgateway setzen

sudo route add default gw 192.168.1.1

192.168.1.1 ist das Gateway.


Route zu einem bestimmten Netzwerk hinzufügen

sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.1


Fügt eine Route zum Netzwerk 10.0.0.0/24 über Gateway 192.168.1.1 hinzu.


Route löschen

sudo route del -net 10.0.0.0 netmask 255.255.255.0



### Moderne Alternative: ip route

Routing-Tabelle anzeigen

ip route show


Standardgateway setzen

sudo ip route add default via 192.168.1.1


Route zu einem bestimmten Netzwerk hinzufügen

sudo ip route add 10.0.0.0/24 via 192.168.1.1


Route löschen

sudo ip route del 10.0.0.0/24


### Merksatz:

route → älter, noch in vielen Tutorials.

ip route → moderner, flexibler, unterstützt mehr Features wie Multipath-Routing und Policy Routing.


route - Spickzettel

**route-Befehl** | **ip route-Befehl** | **Beschreibung** | ------------------------------------------------------------------- | ----------------------------------------------- |

| **Routing-Tabelle anzeigen** | `route -n` | `ip route show` | Zeigt alle Routen ohne DNS-Auflösung. | | **Standardgateway setzen** | `sudo route add default gw 192.168.1.1` | `sudo ip route add default via 192.168.1.1` | Setzt das Standardgateway für alle nicht lokal bekannten Ziele. | | **Standardgateway löschen** | `sudo route del default` | `sudo ip route del default` | Entfernt das Standardgateway. | | **Route zu einem Netzwerk hinzufügen** | `sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.1` | `sudo ip route add 10.0.0.0/24 via 192.168.1.1` | Fügt eine Route zu einem bestimmten Netzwerk hinzu. | | **Route zu einem Netzwerk löschen** | `sudo route del -net 10.0.0.0 netmask 255.255.255.0` | `sudo ip route del 10.0.0.0/24` | Löscht eine Route zu einem bestimmten Netzwerk. | | **Route für ein Interface erzwingen** | `sudo route add -net 10.0.0.0 netmask 255.255.255.0 dev eth0` | `sudo ip route add 10.0.0.0/24 dev eth0` | Leitet den Verkehr über ein bestimmtes Interface, ohne Gateway. | | **Temporäre Route entfernen (Interface)** | `sudo route del -net 10.0.0.0 netmask 255.255.255.0 dev eth0` | `sudo ip route del 10.0.0.0/24 dev eth0` | Löscht die zuvor erstellte Route. |

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>
[[#top | oben]]


=== 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

oben

iftop

Überwachung des Datenverkehrs in Echtzeit

iftop -i eth0

oben