Difference between revisions of "Kommandozeilenwerkzeuge"

From
Jump to: navigation, search
(Spickzettel)
(ssh und VPN-Tunnel)
 
(43 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Kommandozeilenwerkzeuge ==
+
= ip (iproute2) =
  
=== ip ===
+
'''Hinweis:''' Der Befehl <tt>ip</tt> ersetzt alte Tools wie <tt>ifconfig</tt>, <tt>route</tt>, <tt>arp</tt> & Co. und unterstützt sowohl IPv4 als auch IPv6. Änderungen sind **nicht persistent** – für dauerhafte Konfigurationen z. B. NetworkManager, systemd-networkd oder <tt>/etc/network/interfaces</tt> nutzen.
<pre>
 
Der Befehl ip (Teil von iproute2) ersetzt ifconfig, route, arp & Co.
 
 
 
 
 
### Allgemeine Syntax
 
  ip [OPTIONEN] OBJEKT BEFEHL
 
  
 +
== Allgemeine Syntax ==
 +
<tt>ip [OPTIONEN] OBJEKT BEFEHL</tt>
  
 
Typische Objekte:
 
Typische Objekte:
 +
* <tt>addr (a)</tt> → IP-Adressen
 +
* <tt>link (l)</tt> → Interfaces
 +
* <tt>route (r)</tt> → Routing
 +
* <tt>neigh (n)</tt> → ARP / Neighbor
 +
* <tt>rule</tt> → Policy Routing
  
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
+
== Interfaces (Link-Ebene) ==
ip link set eth0 up
+
{| class="wikitable sortable"
ip link set eth0 down
+
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Alle Interfaces anzeigen
 +
| <tt>ip link show</tt><br><tt>ip l</tt>
 +
| Zeigt alle Netzwerkinterfaces.
 +
|-
 +
| Einzelnes Interface anzeigen
 +
| <tt>ip link show eth0</tt>
 +
| Details zu einem Interface.
 +
|-
 +
| Interface aktivieren / deaktivieren
 +
| <tt>ip link set eth0 up</tt><br><tt>ip link set eth0 down</tt>
 +
| Interface hoch- oder runterfahren.
 +
|-
 +
| MTU setzen
 +
| <tt>ip link set eth0 mtu 1500</tt>
 +
| Maximum Transmission Unit ändern.
 +
|-
 +
| MAC-Adresse ändern
 +
| <tt>ip link set eth0 address aa:bb:cc:dd:ee:ff</tt>
 +
| MAC-Adresse anpassen.
 +
|}
  
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) ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| IP-Adressen anzeigen
 +
| <tt>ip addr show</tt><br><tt>ip a</tt>
 +
| Zeigt alle IP-Adressen eines Hosts.
 +
|-
 +
| IP-Adresse hinzufügen
 +
| <tt>ip addr add 192.168.1.10/24 dev eth0</tt>
 +
| Neue IP-Adresse einem Interface zuweisen.
 +
|-
 +
| IP-Adresse löschen
 +
| <tt>ip addr del 192.168.1.10/24 dev eth0</tt>
 +
| IP-Adresse entfernen.
 +
|-
 +
| Nur IPv4 / IPv6
 +
| <tt>ip -4 addr</tt><br><tt>ip -6 addr</tt>
 +
| Filtert nach IP-Version.
 +
|}
  
### 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
+
== Routing ==
ip addr del 192.168.1.10/24 dev eth0
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Routing-Tabelle anzeigen
 +
| <tt>ip route show</tt><br><tt>ip r</tt>
 +
| Zeigt alle Routen.
 +
|-
 +
| Default-Gateway setzen
 +
| <tt>ip route add default via 192.168.1.1</tt>
 +
| Standard-Gateway festlegen.
 +
|-
 +
| Route zu Netzwerk hinzufügen
 +
| <tt>ip route add 10.0.0.0/24 via 192.168.1.254</tt>
 +
| Neue Route eintragen.
 +
|-
 +
| Route löschen
 +
| <tt>ip route del 10.0.0.0/24</tt>
 +
| Route entfernen.
 +
|}
  
Nur IPv4 / IPv6
 
ip -4 addr
 
ip -6 addr
 
  
  
### Routing
+
== ARP / Neighbor-Tabelle ==
Routing-Tabelle anzeigen
+
{| class="wikitable sortable"
ip route show
+
! Aktion
ip r
+
! Befehl
 +
! Beschreibung
 +
|-
 +
| Nachbarn anzeigen
 +
| <tt>ip neigh show</tt><br><tt>ip n</tt>
 +
| Zeigt ARP / Neighbor-Tabelle.
 +
|-
 +
| ARP-Eintrag hinzufügen
 +
| <tt>ip neigh add 192.168.1.20 lladdr aa:bb:cc:dd:ee:ff dev eth0</tt>
 +
| Statischen ARP-Eintrag setzen.
 +
|-
 +
| ARP-Eintrag löschen
 +
| <tt>ip neigh del 192.168.1.20 dev eth0</tt>
 +
| ARP-Eintrag entfernen.
 +
|-
 +
| ARP-Cache leeren
 +
| <tt>ip neigh flush all</tt>
 +
| Alle Einträge löschen.
 +
|}
  
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
+
== Policy Routing ==
ip route del 10.0.0.0/24
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Routing-Regeln anzeigen
 +
| <tt>ip rule show</tt>
 +
| Zeigt Policy Routing Regeln.
 +
|-
 +
| Regel hinzufügen
 +
| <tt>ip rule add from 192.168.2.0/24 table 100</tt>
 +
| Neue Regel definieren.
 +
|-
 +
| Tabelle anzeigen
 +
| <tt>ip route show table 100</tt>
 +
| Routen der Tabelle 100 anzeigen.
 +
|}
  
  
### ARP / Neighbor-Tabelle
 
Nachbarn anzeigen
 
ip neigh show
 
ip n
 
  
ARP-Eintrag hinzufügen
+
== Netzwerk-Namespaces ==
ip neigh add 192.168.1.20 lladdr aa:bb:cc:dd:ee:ff dev eth0
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Namespaces anzeigen
 +
| <tt>ip netns list</tt>
 +
| Alle vorhandenen Network Namespaces.
 +
|-
 +
| Namespace erstellen
 +
| <tt>ip netns add testns</tt>
 +
| Neuen Namespace erstellen.
 +
|-
 +
| Befehl im Namespace ausführen
 +
| <tt>ip netns exec testns ip addr</tt>
 +
| IP-Adressen innerhalb eines Namespace prüfen.
 +
|}
  
ARP-Eintrag löschen
 
ip neigh del 192.168.1.20 dev eth0
 
  
ARP-Cache leeren
 
ip neigh flush all
 
  
 +
== Monitoring & Debugging ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Link-Status live beobachten
 +
| <tt>ip monitor</tt>
 +
| Zeigt alle Änderungen in Echtzeit.
 +
|-
 +
| Nur Adress-Änderungen beobachten
 +
| <tt>ip monitor addr</tt>
 +
| Live-Überwachung von IP-Adressen.
 +
|}
  
### 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
+
== Häufige Kurzformen ==
ip route show table 100
+
{| class="wikitable sortable"
 +
! Langform
 +
! Kurz
 +
|-
 +
| <tt>ip addr</tt>
 +
| <tt>ip a</tt>
 +
|-
 +
| <tt>ip link</tt>
 +
| <tt>ip l</tt>
 +
|-
 +
| <tt>ip route</tt>
 +
| <tt>ip r</tt>
 +
|-
 +
| <tt>ip neigh</tt>
 +
| <tt>ip n</tt>
 +
|}
  
  
### Netzwerk-Namespaces
 
Namespaces anzeigen
 
ip netns list
 
  
Namespace erstellen
+
== Vergleich zu alten Befehlen ==
ip netns add testns
+
{| class="wikitable sortable"
 +
! Alt
 +
! Neu
 +
|-
 +
| <tt>ifconfig</tt>
 +
| <tt>ip addr, ip link</tt>
 +
|-
 +
| <tt>route</tt>
 +
| <tt>ip route</tt>
 +
|-
 +
| <tt>arp</tt>
 +
| <tt>ip neigh</tt>
 +
|-
 +
| <tt>brctl</tt>
 +
| <tt>ip link</tt>
 +
|}
  
Befehl im Namespace ausführen
 
ip netns exec testns ip addr
 
  
 +
== Mini-Spickzettel ==
 +
* <tt>ip a</tt> – Adressen 
 +
* <tt>ip l</tt> – Interfaces 
 +
* <tt>ip r</tt> – Routing 
 +
* <tt>ip n</tt> – ARP / Neighbor 
 +
* <tt>ip monitor</tt> – Live-Events
  
### Monitoring & Debugging
+
[[#top|oben]]
Link-Status live beobachten
 
ip monitor
 
  
Nur Adress-Änderungen
 
ip monitor addr
 
  
 +
= ifconfig (Legacy: net-tools) =
  
### Häufige Kurzformen (sehr gebräuchlich)
+
'''Hinweis:''' <tt>ifconfig</tt> gehört zum veralteten Paket net-tools. Es wird durch <tt>ip</tt> (iproute2) ersetzt. Änderungen sind **nicht persistent** – gelten nur bis zum Neustart oder Interface-Reset.
Langform Kurz
 
ip addr         ip a
 
ip link         ip l
 
ip route ip r
 
ip neigh ip n
 
  
 +
== Interfaces anzeigen ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Alle aktiven Interfaces
 +
| <tt>ifconfig</tt>
 +
| Zeigt alle aktuell aktiven Netzwerkinterfaces.
 +
|-
 +
| Alle Interfaces (auch inaktive)
 +
| <tt>ifconfig -a</tt>
 +
| Zeigt alle Interfaces, inklusive inaktiver.
 +
|-
 +
| Einzelnes Interface anzeigen
 +
| <tt>ifconfig eth0</tt>
 +
| Zeigt Details zu einem Interface.
 +
|}
  
### Vergleich zu alten Befehlen
 
Alt         Neu
 
ifconfig ip addr, ip link
 
route         ip route
 
arp         ip neigh
 
brctl         ip link
 
  
  
### Wichtige Hinweise
+
== Interface aktivieren / deaktivieren ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Aktivieren
 +
| <tt>ifconfig eth0 up</tt>
 +
| Interface hochfahren.
 +
|-
 +
| Deaktivieren
 +
| <tt>ifconfig eth0 down</tt>
 +
| Interface herunterfahren.
 +
|}
  
Änderungen sind nicht persistent
 
  
Dauerhafte Konfiguration:
 
  
NetworkManager
+
== IP-Adresse setzen (IPv4) ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| IP-Adresse zuweisen
 +
| <tt>ifconfig eth0 192.168.1.10</tt>
 +
| IPv4-Adresse einem Interface zuweisen.
 +
|-
 +
| IP-Adresse mit Netzmaske
 +
| <tt>ifconfig eth0 192.168.1.10 netmask 255.255.255.0</tt>
 +
| IP mit Subnetzmaske konfigurieren.
 +
|-
 +
| IP-Adresse mit Broadcast
 +
| <tt>ifconfig eth0 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255</tt>
 +
| Zusätzlich Broadcast-Adresse setzen.
 +
|}
  
systemd-networkd
 
  
/etc/network/interfaces
 
  
ip ist IPv4 & IPv6-fähig
+
== MAC-Adresse ändern ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| MAC-Adresse setzen
 +
| <tt>ifconfig eth0 hw ether aa:bb:cc:dd:ee:ff</tt>
 +
| MAC-Adresse ändern (Interface ggf. vorher down setzen).
 +
|}
  
Skript-tauglich & konsistent
 
  
  
### Mini-Spickzettel
+
== MTU setzen ==
ip a          # Adressen
+
{| class="wikitable sortable"
ip l          # Interfaces
+
! Aktion
ip r          # Routing
+
! Befehl
ip n          # ARP
+
! Beschreibung
ip monitor    # Live-Events
+
|-
</pre>
+
| MTU konfigurieren
 +
| <tt>ifconfig eth0 mtu 1500</tt>
 +
| Maximum Transmission Unit anpassen.
 +
|}
  
  
=== ifconfig ===
 
<pre>
 
ifconfig gehört zum veralteten Paket net-tools.
 
Es wird durch ip (iproute2) ersetzt.
 
  
### Interfaces anzeigen
+
== Promiscuous Mode ==
Alle aktiven Interfaces
+
{| class="wikitable sortable"
ifconfig
+
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Aktivieren
 +
| <tt>ifconfig eth0 promisc</tt>
 +
| Promiscuous Mode einschalten.
 +
|-
 +
| Deaktivieren
 +
| <tt>ifconfig eth0 -promisc</tt>
 +
| Promiscuous Mode ausschalten.
 +
|}
  
Alle Interfaces (auch inaktive)
 
ifconfig -a
 
  
### Einzelnes Interface anzeigen
 
ifconfig eth0
 
  
### Interface aktivieren / deaktivieren
+
== Statistik anzeigen ==
Aktivieren
+
{| class="wikitable sortable"
ifconfig eth0 up
+
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Statistik eines Interfaces
 +
| <tt>ifconfig eth0</tt>
 +
| Zeigt Pakete, Fehler, Bytes etc. an.
 +
|}
  
Deaktivieren
 
ifconfig eth0 down
 
  
### IP-Adresse setzen (IPv4)
 
IP-Adresse zuweisen
 
ifconfig eth0 192.168.1.10
 
  
Mit Netzmaske
+
== Loopback konfigurieren ==
ifconfig eth0 192.168.1.10 netmask 255.255.255.0
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Loopback aktivieren
 +
| <tt>ifconfig lo 127.0.0.1 up</tt>
 +
| Loopback-Interface hochfahren (selten nötig).
 +
|}
  
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.
+
== Moderne Entsprechung (iproute2) ==
 +
{| class="wikitable sortable"
 +
! ifconfig
 +
! ip
 +
|-
 +
| <tt>ifconfig</tt>
 +
| <tt>ip addr show</tt>
 +
|-
 +
| <tt>ifconfig -a</tt>
 +
| <tt>ip link show</tt>
 +
|-
 +
| <tt>ifconfig eth0 up</tt>
 +
| <tt>ip link set eth0 up</tt>
 +
|-
 +
| <tt>ifconfig eth0 down</tt>
 +
| <tt>ip link set eth0 down</tt>
 +
|-
 +
| <tt>ifconfig eth0 192.168.1.10</tt>
 +
| <tt>ip addr add 192.168.1.10/24 dev eth0</tt>
 +
|-
 +
| <tt>ifconfig eth0 mtu 1500</tt>
 +
| <tt>ip link set eth0 mtu 1500</tt>
 +
|}
  
### 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
+
== Empfehlung ==
ifconfig eth0 mtu 1500
+
* Nur lesen / Legacy: <tt>ifconfig</tt> 
 +
* Aktiv konfigurieren: <tt>ip</tt> 
 +
* Skripte neu schreiben: <tt>iproute2</tt>
  
 
### 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
 
 
</pre>
 
 
[[#top | oben]]
 
[[#top | oben]]
  
  
=== tcpdump ===
+
= tcpdump (Paketmitschnitt) =
<pre>
 
Standard-Werkzeug zur Paketmitschnitt-Analyse
 
  
### Grundsyntax
+
'''Hinweis:''' tcpdump ist das Standardwerkzeug zur Analyse von Netzwerkpaketen. Änderungen am System sind nicht notwendig; root oder entsprechende Capabilities können erforderlich sein.
tcpdump [OPTIONEN] [FILTER]
 
  
### Interfaces & Basisoptionen
+
== Grundsyntax ==
Verfügbare Interfaces anzeigen
+
<tt>tcpdump [OPTIONEN] [FILTER]</tt>
tcpdump -D
 
  
Auf bestimmtem Interface mitschneiden
 
tcpdump -i eth0
 
  
Alle Interfaces (Linux)
+
== Interfaces & Basisoptionen ==
tcpdump -i any
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Verfügbare Interfaces anzeigen
 +
| <tt>tcpdump -D</tt>
 +
| Listet alle verfügbaren Interfaces.
 +
|-
 +
| Auf bestimmtem Interface mitschneiden
 +
| <tt>tcpdump -i eth0</tt>
 +
| Pakete nur auf eth0 erfassen.
 +
|-
 +
| Alle Interfaces (Linux)
 +
| <tt>tcpdump -i any</tt>
 +
| Pakete auf allen Interfaces erfassen.
 +
|-
 +
| Ohne Namensauflösung (empfohlen)
 +
| <tt>tcpdump -n</tt>
 +
| Zeigt IPs numerisch an, kein DNS.
 +
|-
 +
| MAC-Adressen anzeigen
 +
| <tt>tcpdump -e</tt>
 +
| Zeigt Ethernet-Header mit MAC-Adressen.
 +
|}
  
Ohne Namensauflösung (empfohlen)
 
tcpdump -n
 
  
MAC-Adressen anzeigen
+
== Ausgabe steuern ==
tcpdump -e
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Mehr Details (Verbose)
 +
| <tt>tcpdump -v</tt><br><tt>tcpdump -vv</tt><br><tt>tcpdump -vvv</tt>
 +
| Detailliertere Paketinformationen.
 +
|-
 +
| Nur Header, kein Payload
 +
| <tt>tcpdump -q</tt>
 +
| Paketinhalt wird nicht angezeigt.
 +
|-
 +
| Paketinhalt anzeigen (ASCII)
 +
| <tt>tcpdump -A</tt>
 +
| Zeigt Pakete in ASCII.
 +
|-
 +
| Paketinhalt anzeigen (HEX + ASCII)
 +
| <tt>tcpdump -X</tt>
 +
| Zeigt Pakete in HEX und ASCII.
 +
|-
 +
| Paketlänge begrenzen (Snaplen)
 +
| <tt>tcpdump -s 96</tt>
 +
| Nur die ersten 96 Bytes des Pakets erfassen.
 +
|}
  
  
### Ausgabe steuern
 
Mehr Details (Verbose)
 
tcpdump -v
 
tcpdump -vv
 
tcpdump -vvv
 
  
Nur Header, kein Payload
+
== Paketanzahl & Laufzeit ==
tcpdump -q
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Anzahl Pakete begrenzen
 +
| <tt>tcpdump -c 100</tt>
 +
| Stoppt nach 100 Paketen.
 +
|-
 +
| Zeitstempel anzeigen
 +
| <tt>tcpdump -tttt</tt>
 +
| Zeigt Datum und Uhrzeit für jedes Paket.
 +
|}
  
Paketinhalt anzeigen (ASCII / HEX)
 
tcpdump -A      # ASCII
 
tcpdump -X      # HEX + ASCII
 
  
Paketlänge begrenzen (Snaplen)
 
tcpdump -s 96
 
  
 +
== Mitschnitt in Datei (pcap) ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| In Datei schreiben
 +
| <tt>tcpdump -w capture.pcap</tt>
 +
| Pakete in einer pcap-Datei speichern.
 +
|-
 +
| Aus Datei lesen
 +
| <tt>tcpdump -r capture.pcap</tt>
 +
| Pakete aus einer Datei analysieren.
 +
|-
 +
| Rotierende Dateien
 +
| <tt>tcpdump -w dump.pcap -G 60 -W 10</tt>
 +
| Alle 60 Sekunden neue Datei, max. 10 Dateien.
 +
|}
  
### Paketanzahl & Laufzeit
 
Anzahl begrenzen
 
tcpdump -c 100
 
  
Zeitstempel anzeigen
 
tcpdump -tttt
 
  
 +
== Klassische Filter (BPF) ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Nach Protokoll filtern
 +
| <tt>tcpdump tcp</tt><br><tt>tcpdump udp</tt><br><tt>tcpdump icmp</tt><br><tt>tcpdump arp</tt>
 +
| Zeigt nur Pakete des angegebenen Protokolls.
 +
|-
 +
| Nach Host
 +
| <tt>tcpdump host 192.168.1.10</tt><br><tt>tcpdump src host 192.168.1.10</tt><br><tt>tcpdump dst host 192.168.1.10</tt>
 +
| Filtert nach Quell- oder Zielhost.
 +
|-
 +
| Nach Port
 +
| <tt>tcpdump port 80</tt><br><tt>tcpdump tcp port 443</tt>
 +
| Filtert Pakete nach Port.
 +
|-
 +
| Nach Netz
 +
| <tt>tcpdump net 192.168.1.0/24</tt>
 +
| Pakete aus einem Subnetz.
 +
|}
  
### Mitschnitt in Datei (pcap)
 
In Datei schreiben
 
tcpdump -w capture.pcap
 
  
Aus Datei lesen
 
tcpdump -r capture.pcap
 
  
Rotierende Dateien
+
== Kombinierte Filter ==
tcpdump -w dump.pcap -G 60 -W 10
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| AND / OR / NOT
 +
| <tt>tcpdump tcp and port 22</tt><br><tt>tcpdump host 192.168.1.10 and not port 22</tt><br><tt>tcpdump tcp port 80 or port 443</tt>
 +
| Kombination von Filtern für gezielte Paket-Auswahl.
 +
|}
  
  
### Klassische Filter (BPF)
 
Nach Protokoll
 
tcpdump tcp
 
tcpdump udp
 
tcpdump icmp
 
tcpdump arp
 
  
Nach Host
+
== TCP-spezifische Filter ==
tcpdump host 192.168.1.10
+
{| class="wikitable sortable"
tcpdump src host 192.168.1.10
+
! Aktion
tcpdump dst host 192.168.1.10
+
! Befehl
 +
! Beschreibung
 +
|-
 +
| SYN-Pakete
 +
| <tt>tcpdump 'tcp[tcpflags] & tcp-syn != 0'</tt>
 +
| Zeigt alle SYN-Pakete.
 +
|-
 +
| SYN ohne ACK (Verbindungsaufbau)
 +
| <tt>tcpdump 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0'</tt>
 +
| Nur SYN-Pakete ohne ACK.
 +
|-
 +
| RST-Pakete
 +
| <tt>tcpdump 'tcp[tcpflags] & tcp-rst != 0'</tt>
 +
| Zeigt TCP-RST Pakete.
 +
|}
  
Nach Port
 
tcpdump port 80
 
tcpdump tcp port 443
 
  
Nach Netz
 
tcpdump net 192.168.1.0/24
 
  
 +
== Typische Praxisbeispiele ==
 +
{| class="wikitable sortable"
 +
! Zweck
 +
! Befehl
 +
|-
 +
| Kommt Traffic an?
 +
| <tt>tcpdump -i eth0 -n icmp</tt>
 +
|-
 +
| HTTP-Traffic sehen
 +
| <tt>tcpdump -i eth0 -n tcp port 80</tt>
 +
|-
 +
| DNS-Abfragen debuggen
 +
| <tt>tcpdump -i eth0 -n udp port 53</tt>
 +
|-
 +
| ARP-Probleme analysieren
 +
| <tt>tcpdump -i eth0 -n -e arp</tt>
 +
|}
  
### 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
+
== Performance & Sicherheit ==
SYN-Pakete
+
{| class="wikitable sortable"
tcpdump 'tcp[tcpflags] & tcp-syn != 0'
+
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Nur erste Pakete ansehen
 +
| <tt>tcpdump -c 20</tt>
 +
| Begrenzte Paketanzahl für schnelle Analyse.
 +
|-
 +
| Payload komplett mitschneiden
 +
| <tt>tcpdump -s 0</tt>
 +
| Ganze Pakete inkl. Payload speichern.
 +
|-
 +
| Root vermeiden (Capabilities)
 +
| <tt>sudo setcap cap_net_raw,cap_net_admin=eip $(which tcpdump)</tt>
 +
| tcpdump mit weniger Rechten ausführen.
 +
|}
  
SYN ohne ACK (Verbindungsaufbau)
 
tcpdump 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0'
 
  
RST-Pakete
 
tcpdump 'tcp[tcpflags] & tcp-rst != 0'
 
  
 +
== Häufige Stolperfallen ==
 +
* Ohne <tt>-n</tt> → langsame DNS-Lookups. 
 +
* Große Mitschnitte ohne <tt>-c</tt> / <tt>-G</tt> → sehr große Dateien. 
 +
* <tt>-s 0</tt> erzeugt große pcap-Dateien. 
 +
* Traffic auf <tt>lo</tt> nicht vergessen.
  
### Typische Praxisbeispiele
 
„Kommt Traffic an?“
 
tcpdump -i eth0 -n icmp
 
  
HTTP-Traffic sehen
 
tcpdump -i eth0 -n tcp port 80
 
  
DNS-Abfragen debuggen
+
== Mini-Spickzettel 🧾 ==
tcpdump -i eth0 -n udp port 53
+
* <tt>tcpdump -i eth0 -n</tt> – Basis-Mitschnitt 
 +
* <tt>tcpdump -i any icmp</tt> – ICMP auf allen Interfaces 
 +
* <tt>tcpdump -w file.pcap</tt> – In Datei schreiben 
 +
* <tt>tcpdump -r file.pcap</tt> – Datei lesen 
 +
* <tt>tcpdump tcp port 443</tt> – HTTPs / TCP-Traffic
 +
[[#top | oben]]
  
ARP-Probleme analysieren
 
tcpdump -i eth0 -n -e arp
 
  
 +
= ping =
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Einfacher Ping zu einer IP
 +
| <tt>ping 8.8.8.8</tt>
 +
| Sendet ICMP Echo Requests an die IP-Adresse 8.8.8.8, läuft unendlich, bis mit Ctrl+C gestoppt.
 +
|-
 +
| Ping mit begrenzter Anzahl von Paketen
 +
| <tt>ping -c 4 8.8.8.8</tt>
 +
| Sendet nur 4 Pakete und beendet automatisch.
 +
|-
 +
| Ping mit definierter Paketgröße
 +
| <tt>ping -s 100 8.8.8.8</tt>
 +
| Sendet Pakete mit 100 Bytes Payload.
 +
|-
 +
| Ping mit Timeout
 +
| <tt>ping -w 5 8.8.8.8</tt>
 +
| Beendet Ping nach 5 Sekunden.
 +
|-
 +
| Ping mit definierter Intervalldauer
 +
| <tt>ping -i 2 8.8.8.8</tt>
 +
| Sendet alle 2 Sekunden ein Paket.
 +
|-
 +
| Ping an einen Hostnamen
 +
| <tt>ping www.example.com</tt>
 +
| Löst den Hostnamen in eine IP-Adresse auf und pingt diese.
 +
|-
 +
| Ping nur einmal
 +
| <tt>ping -c 1 8.8.8.8</tt>
 +
| Sendet ein einzelnes Ping-Paket, praktisch für Skripte.
 +
|-
 +
| Ping über IPv6
 +
| <tt>ping6 google.com</tt>
 +
| Ping über IPv6-Adressen.
 +
|-
 +
| Ping ohne Namensauflösung
 +
| <tt>ping -n 8.8.8.8</tt>
 +
| Zeigt nur IP-Adressen, keine Hostnamen.
 +
|-
 +
| Ping im Quiet Mode
 +
| <tt>ping -q 8.8.8.8</tt>
 +
| Zeigt nur die Statistik am Ende.
 +
|-
 +
| Ping mit Zeitstempel
 +
| <tt>ping -D 8.8.8.8</tt>
 +
| Zeigt Zeitstempel für jedes Paket.
 +
|}
  
### Performance & Sicherheit
 
Nur erste Pakete ansehen
 
tcpdump -c 20
 
  
Payload komplett mitschneiden
+
[[#top | oben]]
tcpdump -s 0
 
  
Root vermeiden (Capabilities)
 
sudo setcap cap_net_raw,cap_net_admin=eip $(which tcpdump)
 
  
 +
= termshark (Terminal Wireshark / TUI) =
  
### Häufige Stolperfallen
+
'''Hinweis:''' Termshark ist eine terminalbasierte Oberfläche für tshark. Es ermöglicht **Live-Captures, Filterung und Analyse** von Netzwerkpaketen ohne GUI. Ideal für Server oder SSH-Sessions. 
  
Ohne -n → langsame DNS-Lookups
 
  
Große Mitschnitte ohne -c / -G
 
  
-s 0 erzeugt sehr große Dateien
+
== Installation ==
 +
{| class="wikitable sortable"
 +
! Plattform
 +
! Befehl
 +
|-
 +
| Debian / Ubuntu
 +
| <tt>sudo apt install termshark</tt>
 +
|-
 +
| macOS (Homebrew)
 +
| <tt>brew install termshark</tt>
 +
|-
 +
| Arch Linux
 +
| <tt>pacman -S termshark</tt>
 +
|-
 +
| Go-Installation (Universal)
 +
| <tt>go install github.com/gcla/termshark@latest</tt>
 +
|}
  
Traffic auf lo nicht vergessen
 
  
  
### Mini-Spickzettel 🧾
+
== Starten von Termshark ==
tcpdump -i eth0 -n
+
{| class="wikitable sortable"
tcpdump -i any icmp
+
! Zweck
tcpdump -w file.pcap
+
! Befehl / Option
tcpdump -r file.pcap
+
|-
tcpdump tcp port 443
+
| Live Capture auf Interface
 +
| <tt>termshark -i eth0</tt>
 +
|-
 +
| Capture auf allen Interfaces anzeigen
 +
| <tt>termshark -D</tt>
 +
|-
 +
| Capture aus Datei lesen
 +
| <tt>termshark -r capture.pcap</tt>
 +
|-
 +
| Pakete während Capture speichern
 +
| <tt>termshark -i eth0 -w output.pcap</tt>
 +
|-
 +
| Capture mit BPF-Filter
 +
| <tt>termshark -i eth0 -f "tcp port 80"</tt>
 +
|-
 +
| Display-Filter beim Start (Wireshark-artig)
 +
| <tt>termshark -r file.pcap -Y "http"</tt>
 +
|}
  
</pre>
 
  
=== termshark ===
 
<pre>
 
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.
 
  
 +
== Display-Filter ==
 +
{| class="wikitable sortable"
 +
! Filter
 +
! Beispiel
 +
|-
 +
| TCP-Port
 +
| <tt>tcp.port == 443</tt>
 +
|-
 +
| IP-Adresse
 +
| <tt>ip.addr == 192.168.1.10</tt>
 +
|-
 +
| Protokoll
 +
| <tt>http</tt>, <tt>dns</tt>, <tt>icmp</tt>
 +
|-
 +
| Kombination
 +
| <tt>ip.src == 192.168.1.10 and tcp.port == 80</tt>
 +
|}
  
### Starten von Termshark
+
*Shortcut zum Filtereingeben: <tt>/</tt>* 
Live Capture auf Interface
+
*Filter löschen: <tt>Ctrl+L</tt>*
termshark -i eth0
 
  
  
-i → Interface
 
  
Listet beim Start alle verfügbaren Interfaces auf, wenn keines angegeben ist.
+
== Navigation & Paketansicht ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Shortcut / Methode
 +
|-
 +
| Pakete scrollen
 +
| <tt>↑ / ↓</tt>
 +
|-
 +
| Paketdetails aufklappen
 +
| <tt>Enter</tt>
 +
|-
 +
| Layer auf-/zuklappen
 +
| <tt>→ / ←</tt>
 +
|-
 +
| Zwischen Views wechseln
 +
| <tt>Tab</tt> (Packet List / Details / Bytes)
 +
|-
 +
| Payload als Hex/ASCII anzeigen
 +
| In Detailansicht
 +
|-
 +
| Feld kopieren
 +
| <tt>y</tt>
 +
|}
  
Aus pcap-Datei öffnen
 
termshark -r capture.pcap
 
  
  
-r → read from file
+
== Suche ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Shortcut / Methode
 +
|-
 +
| Text / Pattern suchen
 +
| <tt>Ctrl+F</tt>
 +
|-
 +
| Nächste Übereinstimmung
 +
| <tt>n</tt>
 +
|-
 +
| Vorherige Übereinstimmung
 +
| <tt>Shift+n</tt>
 +
|}
  
  
### Interface-Auswahl & Optionen
 
Liste der Interfaces anzeigen
 
termshark -D
 
  
Capture mit BPF-Filter
+
== Markieren & Sortieren ==
termshark -i eth0 -f "tcp port 80"
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Shortcut / Methode
 +
|-
 +
| Paket markieren
 +
| <tt>m</tt>
 +
|-
 +
| Markierungen löschen
 +
| <tt>Shift+M</tt>
 +
|-
 +
| Sortierung nach Spalte
 +
| Spaltenkopf / Pfeiltasten
 +
|}
  
  
-f → BPF-Filter (wie bei tcpdump)
 
  
Capture nur bestimmte Pakete speichern
+
== Capture beenden ==
termshark -i eth0 -w output.pcap
+
* <tt>q</tt> → Live Capture stoppen 
  
  
-w → write to file
 
  
 +
== Praxis-Beispiele ==
 +
{| class="wikitable sortable"
 +
! Zweck
 +
! Befehl
 +
|-
 +
| HTTP-Traffic live analysieren
 +
| <tt>termshark -i eth0 -f "tcp port 80"</tt>
 +
|-
 +
| DNS-Abfragen aus PCAP untersuchen
 +
| <tt>termshark -r capture.pcap -Y "dns"</tt>
 +
|-
 +
| Nur bestimmte IP filtern
 +
| <tt>termshark -i eth0 -Y "ip.addr == 192.168.1.10"</tt>
 +
|}
  
### Navigation im Interface
 
  
Pfeiltasten ↑↓ → durch Pakete scrollen
 
  
Enter → Details eines Pakets aufklappen
+
== 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 
 +
* TCP/UDP-Reassembly, Copy Field, hierarchische Packet-Ansicht 
  
Tab → zwischen Packet List / Packet Details / Packet Bytes wechseln
 
  
q → beenden
 
  
 +
== Mini-Spickzettel ==
 +
* <tt>termshark -i eth0</tt> – Live Capture 
 +
* <tt>termshark -D</tt> – Interfaces anzeigen 
 +
* <tt>termshark -r file.pcap</tt> – PCAP öffnen 
 +
* <tt>termshark -i eth0 -w output.pcap</tt> – Mitschnitt speichern 
 +
* <tt>termshark -i eth0 -f "tcp port 80"</tt> – BPF-Filter 
 +
* <tt>termshark -r file.pcap -Y "http"</tt> – Display-Filter 
 +
* Navigation: ↑↓, Enter, →/←, Tab 
 +
* Filter: /, Ctrl+L 
 +
* Suche: Ctrl+F, n / Shift+n 
 +
* Markieren: m / Shift+M 
 +
* Feld kopieren: y 
 +
* Beenden: q
 +
[[#top | oben]]
  
### Filtern
 
Display-Filter
 
  
Funktioniert wie Wireshark (nicht BPF)
+
= route (Routing) =
  
tcp.port == 443
+
'''Hinweis:''' 
ip.addr == 192.168.1.10
+
* <tt>route</tt> ist die klassische Variante, noch in vielen Tutorials zu finden.
http
+
* <tt>ip route</tt> ist moderner, flexibler und unterstützt Features wie **Multipath-Routing** und **Policy Routing**.
  
  
Tastenkombination: / → Filter eingeben
+
== Klassische route-Befehle ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Routing-Tabelle anzeigen
 +
| <tt>route -n</tt>
 +
| Zeigt alle Routen numerisch (ohne DNS-Auflösung).
 +
|-
 +
| Standardgateway setzen
 +
| <tt>sudo route add default gw 192.168.1.1</tt>
 +
| Setzt das Standardgateway für alle nicht lokal bekannten Ziele.
 +
|-
 +
| Standardgateway löschen
 +
| <tt>sudo route del default</tt>
 +
| Entfernt das Standardgateway.
 +
|-
 +
| Route zu einem Netzwerk hinzufügen
 +
| <tt>sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.1</tt>
 +
| Fügt eine Route zu einem bestimmten Netzwerk hinzu.
 +
|-
 +
| Route zu einem Netzwerk löschen
 +
| <tt>sudo route del -net 10.0.0.0 netmask 255.255.255.0</tt>
 +
| Löscht eine Route zu einem bestimmten Netzwerk.
 +
|-
 +
| Route für ein Interface erzwingen
 +
| <tt>sudo route add -net 10.0.0.0 netmask 255.255.255.0 dev eth0</tt>
 +
| Leitet den Verkehr über ein bestimmtes Interface, ohne Gateway.
 +
|-
 +
| Temporäre Route entfernen (Interface)
 +
| <tt>sudo route del -net 10.0.0.0 netmask 255.255.255.0 dev eth0</tt>
 +
| Löscht die zuvor erstellte Route.
 +
|}
  
Filter kann live angepasst werden
 
  
Filter löschen
 
  
Ctrl+L → Clear Filter
+
== Moderne Alternative: ip route ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Routing-Tabelle anzeigen
 +
| <tt>ip route show</tt>
 +
| Zeigt alle Routen.
 +
|-
 +
| Standardgateway setzen
 +
| <tt>sudo ip route add default via 192.168.1.1</tt>
 +
| Setzt das Standardgateway.
 +
|-
 +
| Standardgateway löschen
 +
| <tt>sudo ip route del default</tt>
 +
| Entfernt das Standardgateway.
 +
|-
 +
| Route zu einem Netzwerk hinzufügen
 +
| <tt>sudo ip route add 10.0.0.0/24 via 192.168.1.1</tt>
 +
| Fügt eine Route zu einem bestimmten Netzwerk hinzu.
 +
|-
 +
| Route zu einem Netzwerk löschen
 +
| <tt>sudo ip route del 10.0.0.0/24</tt>
 +
| Löscht eine Route zu einem bestimmten Netzwerk.
 +
|-
 +
| Route für ein Interface erzwingen
 +
| <tt>sudo ip route add 10.0.0.0/24 dev eth0</tt>
 +
| Verkehr über ein bestimmtes Interface ohne Gateway.
 +
|-
 +
| Temporäre Route entfernen (Interface)
 +
| <tt>sudo ip route del 10.0.0.0/24 dev eth0</tt>
 +
| Löscht die zuvor erstellte Route.
 +
|}
  
 +
[[#top | oben]]
  
### Paket-Detailansicht
 
  
Enter auf Paket → Details aufklappen
+
= netstat =
 
+
<pre>
Pfeil rechts/links → Layer auf-/zuklappen
+
netstat (Network Statistics) ist ein klassisches Linux-Tool, um Netzwerkverbindungen, Routing-Tabellen, offene Ports und Netzwerkstatistiken anzuzeigen. Es ist praktisch, um zu sehen, welche Programme mit dem Netzwerk kommunizieren und welche Ports offen sind. In modernen Linux-Distributionen wird es teilweise durch ss ersetzt, aber netstat ist immer noch weit verbreitet.
 
 
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
 
  
 
</pre>
 
</pre>
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Offene TCP/UDP-Ports anzeigen
 +
| <tt>netstat -tuln</tt>
 +
| Zeigt alle offenen TCP/UDP-Ports numerisch an.
 +
|-
 +
| Alle Verbindungen inklusive Prozess anzeigen
 +
| <tt>netstat -anp</tt>
 +
| Zeigt alle Verbindungen und die zugehörigen Prozesse (PID/Name).
 +
|-
 +
| Routing-Tabelle anzeigen
 +
| <tt>netstat -r</tt>
 +
| Zeigt die aktuelle Routing-Tabelle.
 +
|-
 +
| Netzwerkschnittstellenstatistiken
 +
| <tt>netstat -i</tt>
 +
| Zeigt Informationen zu allen Netzwerkinterfaces.
 +
|}
 
[[#top | oben]]
 
[[#top | oben]]
  
  
==== termshark Spickzettel ====
+
= nmap =
 
<pre>
 
<pre>
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
+
nmap (Network Mapper) ist ein mächtiges Tool zur Netzwerkerkundung und Sicherheitsüberprüfung. Mit nmap kannst du Hosts in einem Netzwerk scannen, offene Ports finden, Betriebssysteme erkennen und Dienste identifizieren. Es wird häufig in Netzwerksicherheit und Troubleshooting eingesetzt.
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.
 
 
</pre>
 
</pre>
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Einzelnen Host scannen
 +
| <tt>nmap 192.168.1.1</tt>
 +
| Scan eines Hosts auf Standardports.
 +
|-
 +
| SYN-Scan eines gesamten Netzwerks
 +
| <tt>nmap -sS 192.168.1.0/24</tt>
 +
| Erkundet alle Hosts im Subnetz per SYN-Scan.
 +
|-
 +
| Bestimmte Ports scannen
 +
| <tt>nmap -p 22,80 192.168.1.1</tt>
 +
| Prüft nur bestimmte Ports auf einem Host.
 +
|-
 +
| Betriebssystemerkennung
 +
| <tt>nmap -O 192.168.1.1</tt>
 +
| Versucht, das Betriebssystem des Hosts zu erkennen.
 +
|}
 
[[#top | oben]]
 
[[#top | oben]]
  
  
==== termshark Bedienung ====
+
= dhclient =
 
<pre>
 
<pre>
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)
+
dhclient ist der DHCP-Client unter Linux. Es wird genutzt, um IP-Adressen automatisch von einem DHCP-Server zu beziehen oder eine bestehende IP-Konfiguration zu erneuern. Praktisch bei mobilen Geräten, Notebooks oder dynamischen Netzwerken.
    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.
 
 
</pre>
 
</pre>
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Neue IP-Adresse anfordern
 +
| <tt>sudo dhclient</tt>
 +
| Holt eine neue IP-Adresse für alle Schnittstellen.
 +
|-
 +
| IP-Adresse freigeben
 +
| <tt>sudo dhclient -r</tt>
 +
| Gibt die aktuelle IP-Adresse frei.
 +
|-
 +
| IP-Adresse für spezifische Schnittstelle anfordern
 +
| <tt>sudo dhclient eth0</tt>
 +
| Holt eine neue IP-Adresse für die Schnittstelle eth0.
 +
|-
 +
| DHCP-Client im verbose-Modus starten
 +
| <tt>sudo dhclient -v</tt>
 +
| Zeigt detaillierte Informationen während der DHCP-Anfrage.
 +
|}
 
[[#top | oben]]
 
[[#top | oben]]
  
 +
= traceroute (Netzwerkpfad verfolgen) =
  
=== route ===
+
'''Hinweis:''' traceroute zeigt die Route von deinem Rechner zu einem Zielhost und alle Hops dazwischen. Standardmäßig werden ICMP oder UDP-Pakete genutzt (abhängig vom System).
<pre>
 
### Klassische route-Befehle
 
  
Anzeigen der Routing-Tabelle
 
  
route -//-n zeigt die IP-Adressen numerisch an (ohne DNS-Namenauflösung).
+
== Grundbefehle ==
 +
{| class="wikitable sortable"
 +
! Zweck
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Einfacher Traceroute
 +
| <tt>traceroute 8.8.8.8</tt>
 +
| Zeigt alle Hops zu 8.8.8.8.
 +
|-
 +
| Traceroute zu einem Hostnamen
 +
| <tt>traceroute www.example.com</tt>
 +
| Löst den Hostnamen in IP auf und zeigt den Pfad.
 +
|-
 +
| Traceroute über IPv6
 +
| <tt>traceroute6 google.com</tt>
 +
| Verwendet IPv6-Adressen.
 +
|-
 +
| Traceroute über ICMP statt UDP
 +
| <tt>traceroute -I 8.8.8.8</tt>
 +
| Nutzt ICMP Echo Requests, hilfreich bei UDP-Blockaden.
 +
|-
 +
| Traceroute mit Angabe eines bestimmten Ports
 +
| <tt>traceroute -p 443 www.example.com</tt>
 +
| Sendet Pakete an Port 443 (TCP), nützlich bei ICMP-Blockaden.
 +
|}
  
  
Standardgateway setzen
+
== Optionen ==
 +
{| class="wikitable sortable"
 +
! Option
 +
! Beschreibung
 +
! Beispiel
 +
|-
 +
| <tt>-m <maxHops></tt>
 +
| Maximale Anzahl von Hops anzeigen (Standard: 30)
 +
| <tt>traceroute -m 10 8.8.8.8</tt>
 +
|-
 +
| <tt>-q <n></tt>
 +
| Anzahl Pakete pro Hop (Standard: 3)
 +
| <tt>traceroute -q 1 8.8.8.8</tt>
 +
|-
 +
| <tt>-w <Sekunden></tt>
 +
| Timeout pro Hop (in Sekunden)
 +
| <tt>traceroute -w 2 8.8.8.8</tt>
 +
|-
 +
| <tt>-n</tt>
 +
| Zeigt IP-Adressen numerisch, kein DNS-Lookup
 +
| <tt>traceroute -n 8.8.8.8</tt>
 +
|-
 +
| <tt>-f <StartTTL></tt>
 +
| Start-Hops niedriger setzen (z. B. lokale Netze)
 +
| <tt>traceroute -f 3 8.8.8.8</tt>
 +
|-
 +
| <tt>-A</tt>
 +
| AS-Nummern (Autonomous System) anzeigen, wenn verfügbar
 +
| <tt>traceroute -A 8.8.8.8</tt>
 +
|}
  
sudo route add default gw 192.168.1.1
 
  
192.168.1.1 ist das Gateway.
+
[[#top | oben]]
  
  
Route zu einem bestimmten Netzwerk hinzufügen
+
=== Traceroute-Befehle ===
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Einfacher Traceroute zu einer IP
 +
| <tt>traceroute 8.8.8.8</tt>
 +
| Zeigt alle Hops von deinem Rechner zu 8.8.8.8.
 +
|-
 +
| Traceroute zu einem Hostnamen
 +
| <tt>traceroute www.example.com</tt>
 +
| Löst den Hostnamen in eine IP-Adresse auf und zeigt den Pfad.
 +
|-
 +
| Maximale Anzahl von Hops begrenzen
 +
| <tt>traceroute -m 10 8.8.8.8</tt>
 +
| Zeigt maximal 10 Hops statt Standard 30.
 +
|-
 +
| Weniger Pakete pro Hop senden
 +
| <tt>traceroute -q 1 8.8.8.8</tt>
 +
| Sendet nur 1 Paket pro Hop (statt 3), spart Zeit.
 +
|-
 +
| Timeout pro Hop festlegen
 +
| <tt>traceroute -w 2 8.8.8.8</tt>
 +
| Wartet maximal 2 Sekunden auf Antwort pro Hop.
 +
|-
 +
| ICMP statt UDP verwenden
 +
| <tt>traceroute -I 8.8.8.8</tt>
 +
| Nutzt ICMP Echo Requests, wenn UDP blockiert ist.
 +
|-
 +
| Traceroute über IPv6
 +
| <tt>traceroute6 google.com</tt>
 +
| Zeigt den Pfad zu einem Host über IPv6.
 +
|-
 +
| Traceroute zu bestimmtem Port
 +
| <tt>traceroute -p 443 www.example.com</tt>
 +
| Sendet Pakete an Port 443, nützlich bei Firewalls.
 +
|-
 +
| IP-Adressen numerisch anzeigen
 +
| <tt>traceroute -n 8.8.8.8</tt>
 +
| Keine DNS-Auflösung, nur IP-Adressen anzeigen.
 +
|}
  
sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.1
+
[[#top | oben]]
  
  
Fügt eine Route zum Netzwerk 10.0.0.0/24 über Gateway 192.168.1.1 hinzu.
+
= arp (IP → MAC) =
  
 +
'''Hinweis:''' ARP übersetzt IP-Adressen in MAC-Adressen. Klassischer ARP-Befehl ist deprecated, der moderne Ersatz ist <tt>ip neigh</tt>. 
  
Route löschen
 
  
sudo route del -net 10.0.0.0 netmask 255.255.255.0
+
== Klassischer ARP-Befehl ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| ARP-Tabelle anzeigen
 +
| <tt>arp</tt> / <tt>arp -n</tt>
 +
| Zeigt ARP-Einträge an; <tt>-n</tt> ohne Namensauflösung.
 +
|-
 +
| ARP-Eintrag hinzufügen
 +
| <tt>arp -s 192.168.1.10 aa:bb:cc:dd:ee:ff</tt>
 +
| Fügt statischen ARP-Eintrag hinzu.
 +
|-
 +
| ARP-Eintrag löschen
 +
| <tt>arp -d 192.168.1.10</tt>
 +
| Entfernt Eintrag aus der Tabelle.
 +
|-
 +
| Bestimmtes Interface nutzen
 +
| <tt>arp -i eth0</tt>
 +
| Zeigt ARP-Einträge nur für das angegebene Interface.
 +
|}
  
  
 +
== Moderner Ersatz: ip neigh (empfohlen) ==
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Nachbarn (ARP / NDP) anzeigen
 +
| <tt>ip neigh show</tt> / <tt>ip n</tt>
 +
| Zeigt ARP- bzw. Neighbor-Einträge.
 +
|-
 +
| ARP-Eintrag hinzufügen
 +
| <tt>ip neigh add 192.168.1.10 lladdr aa:bb:cc:dd:ee:ff dev eth0</tt>
 +
| Fügt statischen ARP-Eintrag hinzu.
 +
|-
 +
| ARP-Eintrag ändern
 +
| <tt>ip neigh replace 192.168.1.10 lladdr aa:bb:cc:dd:ee:ff dev eth0</tt>
 +
| Ändert vorhandenen ARP-Eintrag.
 +
|-
 +
| ARP-Eintrag löschen
 +
| <tt>ip neigh del 192.168.1.10 dev eth0</tt>
 +
| Löscht ARP-Eintrag.
 +
|-
 +
| ARP-Cache leeren
 +
| <tt>ip neigh flush all</tt>
 +
| Löscht alle dynamischen ARP-Einträge.
 +
|}
  
### Moderne Alternative: ip route
 
  
Routing-Tabelle anzeigen
+
== ARP-Pakete aktiv senden: arping ==
 +
{| class="wikitable sortable"
 +
! Zweck
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Erreichbarkeit prüfen (Layer 2)
 +
| <tt>arping 192.168.1.1</tt>
 +
| Prüft, ob Host erreichbar ist.
 +
|-
 +
| Interface festlegen
 +
| <tt>arping -I eth0 192.168.1.1</tt>
 +
| Nutzt bestimmtes Interface.
 +
|-
 +
| Gratuitous ARP senden
 +
| <tt>arping -U 192.168.1.10</tt>
 +
| Sendet ARP-Ankündigung (z. B. für IP-Konflikte / Updates).
 +
|}
  
ip route show
 
  
 +
== Netzwerk-Diagnose & Analyse ==
 +
{| class="wikitable sortable"
 +
! Zweck
 +
! Befehl
 +
|-
 +
| ARP-Traffic mitschneiden
 +
| <tt>tcpdump -n -e arp</tt>
 +
|-
 +
| ARP-Tabelle über /proc anzeigen
 +
| <tt>cat /proc/net/arp</tt>
 +
|}
  
Standardgateway setzen
 
  
sudo ip route add default via 192.168.1.1
+
== Typische ARP-Statuswerte (ip neigh) ==
 +
{| class="wikitable sortable"
 +
! 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
 +
|}
  
 +
[[#top | oben]]
  
Route zu einem bestimmten Netzwerk hinzufügen
 
  
sudo ip route add 10.0.0.0/24 via 192.168.1.1
+
= ethtool =
 +
<pre>
 +
Kommando              Funktion
 +
ethtool eth0          Status und Einstellungen auf der
 +
                      Bitüberragungsschicht ausgeben
  
 +
ethtool -P eth0        MAC-Adresse ausgeben
  
Route löschen
+
ethtool -S eth0        Statistische Daten ausgeben
  
sudo ip route del 10.0.0.0/24
+
ethtool -i eth0        Informationen zu Treiber und Firmware
  
 
+
ethtool -p eth0        LED blinken lassen
### Merksatz:
 
 
 
route → älter, noch in vielen Tutorials.
 
 
 
ip route → moderner, flexibler, unterstützt mehr Features wie Multipath-Routing und Policy Routing.
 
 
</pre>
 
</pre>
  
 +
[[#top | oben]]
  
==== Spickzettel ====
 
  
| **Aktion**                                | **route-Befehl**                                                    | **ip route-Befehl**                            | **Beschreibung**                                                |
+
= iftop =
| ----------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------- | --------------------------------------------------------------- |
 
| **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 ===
 
 
<pre>
 
<pre>
Übersetzt IP-Adressen in MAC-Adressen
+
Überwachung des Datenverkehrs in Echtzeit
  
### Klassischer ARP-Befehl (arp)
+
iftop -i eth0
    Teil des Pakets net-tools (gilt als deprecated, aber oft noch installiert)
+
</pre>
  
ARP-Tabelle anzeigen
+
[[#top | oben]]
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
+
= dig =
arp -d 192.168.1.10
+
<pre>
 +
dig (Domain Information Groper) ist ein Linux-Tool zur DNS-Abfrage. Mit dig kannst du herausfinden, welche IP-Adresse zu einem Hostnamen gehört, welche Nameserver antworten, oder detaillierte DNS-Records (A, AAAA, MX, TXT, etc.) prüfen. Es ist eines der wichtigsten Tools für Netzwerkdiagnosen, wenn es um Namensauflösung geht.
  
Bestimmtes Interface nutzen
 
arp -i eth0
 
  
 +
</pre>
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Standard-DNS-Abfrage (A-Record)
 +
| <tt>dig example.com</tt>
 +
| Zeigt die IP-Adresse(n) eines Hostnamens.
 +
|-
 +
| MX-Record prüfen
 +
| <tt>dig example.com MX</tt>
 +
| Zeigt die Mailserver für die Domain.
 +
|-
 +
| Kompakte Ausgabe (nur IP)
 +
| <tt>dig +short example.com</tt>
 +
| Zeigt nur die IP(s) ohne zusätzliche Informationen.
 +
|-
 +
| DNS-Abfrage über spezifischen Server
 +
| <tt>dig @8.8.8.8 example.com</tt>
 +
| Fragt den Hostnamen über den DNS-Server 8.8.8.8 ab.
 +
|}
  
### Moderner Ersatz: ip neigh (empfohlen)
+
[[#top | oben]]
    Teil von iproute2 – heute Standard auf Linux
 
  
Nachbarn (ARP / NDP) anzeigen
 
ip neigh show  oder kurz: ip n
 
  
ARP-Eintrag hinzufügen
+
= ftp =
ip neigh add 192.168.1.10 lladdr aa:bb:cc:dd:ee:ff dev eth0
+
<pre>
 +
ftp ist das klassische Linux-Tool für Dateiübertragungen über das FTP-Protokoll. Es ermöglicht das Hoch- und Runterladen von Dateien zu/von einem FTP-Server. Heute wird es wegen Sicherheitsrisiken oft durch sftp oder scp ersetzt, aber für Legacy-Systeme ist ftp noch relevant.
  
ARP-Eintrag ändern
 
ip neigh replace 192.168.1.10 lladdr aa:bb:cc:dd:ee:ff dev eth0
 
  
ARP-Eintrag löschen
+
</pre>
ip neigh del 192.168.1.10 dev eth0
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Verbindung zu FTP-Server
 +
| <tt>ftp ftp.example.com</tt>
 +
| Stellt eine Verbindung zum FTP-Server her.
 +
|-
 +
| Datei herunterladen
 +
| <tt>get datei.txt</tt>
 +
| Lädt eine Datei vom FTP-Server herunter.
 +
|-
 +
| Datei hochladen
 +
| <tt>put datei.txt</tt>
 +
| Lädt eine Datei auf den FTP-Server hoch.
 +
|-
 +
| Verzeichnis auflisten
 +
| <tt>ls</tt>
 +
| Listet Dateien im aktuellen Server-Verzeichnis auf.
 +
|-
 +
| Benutzerlogin
 +
| <tt>login</tt>
 +
| Meldet sich mit Benutzername und Passwort am Server an.
 +
|}
 +
[[#top | oben]]
  
ARP-Cache leeren
 
ip neigh flush all
 
  
 +
= nc (netcat) =
 +
<pre>
 +
nc (netcat) ist ein universelles Tool für TCP/UDP-Verbindungen. Es kann verwendet werden, um Ports zu scannen, als einfacher TCP/Server oder Client zu fungieren, Daten zu übertragen oder Netzwerkprobleme zu debuggen. Oft als „Schweizer Taschenmesser für Netzwerke“ bezeichnet.
  
### ARP-Pakete aktiv senden: arping
+
</pre>
    Sehr nützlich für Tests und Fehlersuche
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Prüft, ob ein Port offen ist
 +
| <tt>nc -zv 192.168.1.1 22</tt>
 +
| Prüft, ob Port 22 auf 192.168.1.1 erreichbar ist.
 +
|-
 +
| TCP-Server starten
 +
| <tt>nc -l 1234</tt>
 +
| Startet einen TCP-Server auf Port 1234.
 +
|-
 +
| Mit TCP-Server verbinden
 +
| <tt>nc 192.168.1.2 1234</tt>
 +
| Verbindet sich zu einem TCP-Server auf Port 1234.
 +
|-
 +
| Text an Server senden
 +
| <tt>echo "Hallo" | nc 192.168.1.2 1234</tt>
 +
| Sendet Text an einen TCP-Server.
 +
|}
 +
[[#top | oben]]
  
Erreichbarkeit prüfen (Layer 2)
+
= netperf =
arping 192.168.1.1
+
<pre>
 +
netperf ist ein Tool zur Netzwerkperformancemessung. Es wird genutzt, um Durchsatz (Throughput), Latenzzeiten und TCP/UDP-Performance zwischen zwei Hosts zu messen. Meist wird netperf zusammen mit einem Server (netserver) betrieben: ein Host läuft als Server, der andere als Client.
  
Interface festlegen
+
</pre>
arping -I eth0 192.168.1.1
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Netperf-Server starten
 +
| <tt>netserver</tt>
 +
| Startet den netperf-Server auf einem Host.
 +
|-
 +
| TCP-Performance messen
 +
| <tt>netperf -H 192.168.1.2</tt>
 +
| Misst TCP-Durchsatz zum Host.
 +
|-
 +
| UDP-Durchsatz messen
 +
| <tt>netperf -H 192.168.1.2 -t UDP_STREAM</tt>
 +
| Misst UDP-Stream Performance.
 +
|-
 +
| TCP-Request/Response-Latenz messen
 +
| <tt>netperf -H 192.168.1.2 -t TCP_RR</tt>
 +
| Misst Latenz von TCP-Requests.
 +
|}
 +
[[#top | oben]]
  
Gratuitous ARP senden
 
arping -U 192.168.1.10
 
  
 +
= nslookup =
 +
<pre>
 +
nslookup ist ein klassisches Linux-Tool zur DNS-Abfrage, ähnlich wie dig. Es wird genutzt, um die IP-Adresse eines Hostnamens zu ermitteln, DNS-Server zu testen oder die DNS-Konfiguration zu überprüfen. Anders als dig bietet nslookup einen interaktiven Modus, in dem mehrere Abfragen nacheinander ausgeführt werden können.
  
### Netzwerk-Diagnose & Analyse
+
</pre>
ARP-Traffic mitschneiden
+
{| class="wikitable sortable"
tcpdump -n -e arp
+
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Standard-DNS-Abfrage
 +
| <tt>nslookup example.com</tt>
 +
| Zeigt die IP-Adresse(n) eines Hostnamens.
 +
|-
 +
| Interaktiver Modus starten
 +
| <tt>nslookup</tt>
 +
| Startet den interaktiven Modus für mehrere Abfragen.
 +
|-
 +
| DNS-Abfrage über spezifischen Server
 +
| <tt>nslookup example.com 8.8.8.8</tt>
 +
| Fragt den Hostnamen über den DNS-Server 8.8.8.8 ab.
 +
|-
 +
| MX-Record im interaktiven Modus
 +
| <tt>set type=MX</tt>
 +
| Stellt Abfrage auf MX-Record um.
 +
|}
 +
[[#top | oben]]
  
ARP-Tabelle über /proc anzeigen
 
cat /proc/net/arp
 
  
 +
= ssh =
 +
<pre>
 +
ssh (Secure Shell) ist das Standardtool, um verschlüsselte Remote-Verbindungen zu Linux-Servern herzustellen. Es wird genutzt, um auf entfernte Systeme zuzugreifen, Befehle auszuführen oder sichere Tunnel (Port-Forwarding) einzurichten. SSH ersetzt fast vollständig alte unsichere Tools wie rlogin oder telnet für Remote-Administration.
  
### Typische ARP-Statuswerte (bei ip neigh)
+
</pre>
 +
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Verbindung zum Host herstellen
 +
| <tt>ssh user@host</tt>
 +
| Stellt eine verschlüsselte Verbindung zum Remote-Host her.
 +
|-
 +
| Verbindung über spezifischen Port
 +
| <tt>ssh -p 2222 user@host</tt>
 +
| Verbindung über Port 2222 herstellen.
 +
|-
 +
| Verbindung mit privatem Schlüssel
 +
| <tt>ssh -i keyfile.pem user@host</tt>
 +
| Verbindet sich unter Nutzung eines privaten SSH-Schlüssels.
 +
|-
 +
| Lokales Port-Forwarding
 +
| <tt>ssh -L 8080:localhost:80 user@host</tt>
 +
| Leitet lokalen Port 8080 auf Port 80 des Hosts weiter.
 +
|}
  
Status         Bedeutung
+
== ssh und VPN-Tunnel ==
REACHABLE Host erreichbar
 
STALE         Eintrag alt, wird geprüft
 
DELAY         Prüfung geplant
 
INCOMPLETE ARP-Antwort fehlt
 
FAILED         ARP fehlgeschlagen
 
PERMANENT Statischer Eintrag
 
 
<pre>
 
<pre>
[[#top | oben]]
+
!!!
 +
- Putty vom DC öffnen um Tunnel zu bekommen
 +
- normales Putty (nicht im Putty vom DC) öffnen und ssh-Kommando eingeben
 +
- in der DCmou Link anklicken
  
 +
# um auf den Router zu kommen:
 +
(1)
 +
ssh -l <user> -L 10443:<VPN Tunnel>:443 <DC IP-Adresse>
  
=== ethtool ===
+
user: aus DCmou
<pre>
+
PW: auch aus DCmou
Kommando              Funktion
+
VPN-Tunnel: grüne Kugel
ethtool eth0          Status und Einstellungen auf der
+
DC IP-Adresse: aus DCmou
                      Bitüberragungsschicht ausgeben
 
  
ethtool -P eth0        MAC-Adresse ausgeben
 
  
ethtool -S eth0        Statistische Daten ausgeben
+
(2)
 +
ssh <user>@<DC IP-Adresse> -L 10443:<VPN Tunnel>:443
  
ethtool -i eth0        Informationen zu Treiber und Firmware
+
Bsp.:
 +
ssh gpjs5@172.30.0.1 -L 10443:172.30.1.58:443
  
ethtool -p eth0        LED blinken lassen
+
DC5
 +
ssh root@159.69.202.215 -L 10443:172.27.6.170:443
 
</pre>
 
</pre>
 
[[#top | oben]]
 
[[#top | oben]]
  
=== iftop ===
+
= telnet =
 
<pre>
 
<pre>
Überwachung des Datenverkehrs in Echtzeit
+
telnet ist ein älteres Tool, um unsichere Textverbindungen zu einem Server herzustellen. Heutzutage wird es fast nur noch zu Testzwecken genutzt, zum Beispiel um zu prüfen, ob ein Port erreichbar ist. Für sichere Remote-Verbindungen wird ssh verwendet.
  
iftop -i eth0
 
 
</pre>
 
</pre>
 
+
{| class="wikitable sortable"
 +
! Aktion
 +
! Befehl
 +
! Beschreibung
 +
|-
 +
| Verbindung zu Host auf Port 23
 +
| <tt>telnet host 23</tt>
 +
| Stellt eine Verbindung zum Telnet-Server her.
 +
|-
 +
| Verbindung zu Host auf beliebigem Port
 +
| <tt>open host port</tt>
 +
| Verbindet im Telnet-Client zu einem bestimmten Port.
 +
|-
 +
| Telnet-Sitzung beenden
 +
| <tt>quit</tt>
 +
| Beendet die Telnet-Verbindung.
 +
|}
 
[[#top | oben]]
 
[[#top | oben]]

Latest revision as of 09:28, 16 January 2026

Contents

ip (iproute2)[edit]

Hinweis: Der Befehl ip ersetzt alte Tools wie ifconfig, route, arp & Co. und unterstützt sowohl IPv4 als auch IPv6. Änderungen sind **nicht persistent** – für dauerhafte Konfigurationen z. B. NetworkManager, systemd-networkd oder /etc/network/interfaces nutzen.

Allgemeine Syntax[edit]

ip [OPTIONEN] OBJEKT BEFEHL

Typische Objekte:

  • addr (a) → IP-Adressen
  • link (l) → Interfaces
  • route (r) → Routing
  • neigh (n) → ARP / Neighbor
  • rule → Policy Routing


Interfaces (Link-Ebene)[edit]

Aktion Befehl Beschreibung
Alle Interfaces anzeigen ip link show
ip l
Zeigt alle Netzwerkinterfaces.
Einzelnes Interface anzeigen ip link show eth0 Details zu einem Interface.
Interface aktivieren / deaktivieren ip link set eth0 up
ip link set eth0 down
Interface hoch- oder runterfahren.
MTU setzen ip link set eth0 mtu 1500 Maximum Transmission Unit ändern.
MAC-Adresse ändern ip link set eth0 address aa:bb:cc:dd:ee:ff MAC-Adresse anpassen.


IP-Adressen (Layer 3)[edit]

Aktion Befehl Beschreibung
IP-Adressen anzeigen ip addr show
ip a
Zeigt alle IP-Adressen eines Hosts.
IP-Adresse hinzufügen ip addr add 192.168.1.10/24 dev eth0 Neue IP-Adresse einem Interface zuweisen.
IP-Adresse löschen ip addr del 192.168.1.10/24 dev eth0 IP-Adresse entfernen.
Nur IPv4 / IPv6 ip -4 addr
ip -6 addr
Filtert nach IP-Version.


Routing[edit]

Aktion Befehl Beschreibung
Routing-Tabelle anzeigen ip route show
ip r
Zeigt alle Routen.
Default-Gateway setzen ip route add default via 192.168.1.1 Standard-Gateway festlegen.
Route zu Netzwerk hinzufügen ip route add 10.0.0.0/24 via 192.168.1.254 Neue Route eintragen.
Route löschen ip route del 10.0.0.0/24 Route entfernen.


ARP / Neighbor-Tabelle[edit]

Aktion Befehl Beschreibung
Nachbarn anzeigen ip neigh show
ip n
Zeigt ARP / Neighbor-Tabelle.
ARP-Eintrag hinzufügen ip neigh add 192.168.1.20 lladdr aa:bb:cc:dd:ee:ff dev eth0 Statischen ARP-Eintrag setzen.
ARP-Eintrag löschen ip neigh del 192.168.1.20 dev eth0 ARP-Eintrag entfernen.
ARP-Cache leeren ip neigh flush all Alle Einträge löschen.


Policy Routing[edit]

Aktion Befehl Beschreibung
Routing-Regeln anzeigen ip rule show Zeigt Policy Routing Regeln.
Regel hinzufügen ip rule add from 192.168.2.0/24 table 100 Neue Regel definieren.
Tabelle anzeigen ip route show table 100 Routen der Tabelle 100 anzeigen.


Netzwerk-Namespaces[edit]

Aktion Befehl Beschreibung
Namespaces anzeigen ip netns list Alle vorhandenen Network Namespaces.
Namespace erstellen ip netns add testns Neuen Namespace erstellen.
Befehl im Namespace ausführen ip netns exec testns ip addr IP-Adressen innerhalb eines Namespace prüfen.


Monitoring & Debugging[edit]

Aktion Befehl Beschreibung
Link-Status live beobachten ip monitor Zeigt alle Änderungen in Echtzeit.
Nur Adress-Änderungen beobachten ip monitor addr Live-Überwachung von IP-Adressen.


Häufige Kurzformen[edit]

Langform Kurz
ip addr ip a
ip link ip l
ip route ip r
ip neigh ip n


Vergleich zu alten Befehlen[edit]

Alt Neu
ifconfig ip addr, ip link
route ip route
arp ip neigh
brctl ip link


Mini-Spickzettel[edit]

  • ip a – Adressen
  • ip l – Interfaces
  • ip r – Routing
  • ip n – ARP / Neighbor
  • ip monitor – Live-Events

oben


ifconfig (Legacy: net-tools)[edit]

Hinweis: ifconfig gehört zum veralteten Paket net-tools. Es wird durch ip (iproute2) ersetzt. Änderungen sind **nicht persistent** – gelten nur bis zum Neustart oder Interface-Reset.

Interfaces anzeigen[edit]

Aktion Befehl Beschreibung
Alle aktiven Interfaces ifconfig Zeigt alle aktuell aktiven Netzwerkinterfaces.
Alle Interfaces (auch inaktive) ifconfig -a Zeigt alle Interfaces, inklusive inaktiver.
Einzelnes Interface anzeigen ifconfig eth0 Zeigt Details zu einem Interface.


Interface aktivieren / deaktivieren[edit]

Aktion Befehl Beschreibung
Aktivieren ifconfig eth0 up Interface hochfahren.
Deaktivieren ifconfig eth0 down Interface herunterfahren.


IP-Adresse setzen (IPv4)[edit]

Aktion Befehl Beschreibung
IP-Adresse zuweisen ifconfig eth0 192.168.1.10 IPv4-Adresse einem Interface zuweisen.
IP-Adresse mit Netzmaske ifconfig eth0 192.168.1.10 netmask 255.255.255.0 IP mit Subnetzmaske konfigurieren.
IP-Adresse mit Broadcast ifconfig eth0 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255 Zusätzlich Broadcast-Adresse setzen.


MAC-Adresse ändern[edit]

Aktion Befehl Beschreibung
MAC-Adresse setzen ifconfig eth0 hw ether aa:bb:cc:dd:ee:ff MAC-Adresse ändern (Interface ggf. vorher down setzen).


MTU setzen[edit]

Aktion Befehl Beschreibung
MTU konfigurieren ifconfig eth0 mtu 1500 Maximum Transmission Unit anpassen.


Promiscuous Mode[edit]

Aktion Befehl Beschreibung
Aktivieren ifconfig eth0 promisc Promiscuous Mode einschalten.
Deaktivieren ifconfig eth0 -promisc Promiscuous Mode ausschalten.


Statistik anzeigen[edit]

Aktion Befehl Beschreibung
Statistik eines Interfaces ifconfig eth0 Zeigt Pakete, Fehler, Bytes etc. an.


Loopback konfigurieren[edit]

Aktion Befehl Beschreibung
Loopback aktivieren ifconfig lo 127.0.0.1 up Loopback-Interface hochfahren (selten nötig).


Moderne Entsprechung (iproute2)[edit]

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[edit]

  • Nur lesen / Legacy: ifconfig
  • Aktiv konfigurieren: ip
  • Skripte neu schreiben: iproute2

oben


tcpdump (Paketmitschnitt)[edit]

Hinweis: tcpdump ist das Standardwerkzeug zur Analyse von Netzwerkpaketen. Änderungen am System sind nicht notwendig; root oder entsprechende Capabilities können erforderlich sein.

Grundsyntax[edit]

tcpdump [OPTIONEN] [FILTER]


Interfaces & Basisoptionen[edit]

Aktion Befehl Beschreibung
Verfügbare Interfaces anzeigen tcpdump -D Listet alle verfügbaren Interfaces.
Auf bestimmtem Interface mitschneiden tcpdump -i eth0 Pakete nur auf eth0 erfassen.
Alle Interfaces (Linux) tcpdump -i any Pakete auf allen Interfaces erfassen.
Ohne Namensauflösung (empfohlen) tcpdump -n Zeigt IPs numerisch an, kein DNS.
MAC-Adressen anzeigen tcpdump -e Zeigt Ethernet-Header mit MAC-Adressen.


Ausgabe steuern[edit]

Aktion Befehl Beschreibung
Mehr Details (Verbose) tcpdump -v
tcpdump -vv
tcpdump -vvv
Detailliertere Paketinformationen.
Nur Header, kein Payload tcpdump -q Paketinhalt wird nicht angezeigt.
Paketinhalt anzeigen (ASCII) tcpdump -A Zeigt Pakete in ASCII.
Paketinhalt anzeigen (HEX + ASCII) tcpdump -X Zeigt Pakete in HEX und ASCII.
Paketlänge begrenzen (Snaplen) tcpdump -s 96 Nur die ersten 96 Bytes des Pakets erfassen.


Paketanzahl & Laufzeit[edit]

Aktion Befehl Beschreibung
Anzahl Pakete begrenzen tcpdump -c 100 Stoppt nach 100 Paketen.
Zeitstempel anzeigen tcpdump -tttt Zeigt Datum und Uhrzeit für jedes Paket.


Mitschnitt in Datei (pcap)[edit]

Aktion Befehl Beschreibung
In Datei schreiben tcpdump -w capture.pcap Pakete in einer pcap-Datei speichern.
Aus Datei lesen tcpdump -r capture.pcap Pakete aus einer Datei analysieren.
Rotierende Dateien tcpdump -w dump.pcap -G 60 -W 10 Alle 60 Sekunden neue Datei, max. 10 Dateien.


Klassische Filter (BPF)[edit]

Aktion Befehl Beschreibung
Nach Protokoll filtern tcpdump tcp
tcpdump udp
tcpdump icmp
tcpdump arp
Zeigt nur Pakete des angegebenen Protokolls.
Nach Host tcpdump host 192.168.1.10
tcpdump src host 192.168.1.10
tcpdump dst host 192.168.1.10
Filtert nach Quell- oder Zielhost.
Nach Port tcpdump port 80
tcpdump tcp port 443
Filtert Pakete nach Port.
Nach Netz tcpdump net 192.168.1.0/24 Pakete aus einem Subnetz.


Kombinierte Filter[edit]

Aktion Befehl Beschreibung
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
Kombination von Filtern für gezielte Paket-Auswahl.


TCP-spezifische Filter[edit]

Aktion Befehl Beschreibung
SYN-Pakete tcpdump 'tcp[tcpflags] & tcp-syn != 0' Zeigt alle SYN-Pakete.
SYN ohne ACK (Verbindungsaufbau) tcpdump 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0' Nur SYN-Pakete ohne ACK.
RST-Pakete tcpdump 'tcp[tcpflags] & tcp-rst != 0' Zeigt TCP-RST Pakete.


Typische Praxisbeispiele[edit]

Zweck Befehl
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[edit]

Aktion Befehl Beschreibung
Nur erste Pakete ansehen tcpdump -c 20 Begrenzte Paketanzahl für schnelle Analyse.
Payload komplett mitschneiden tcpdump -s 0 Ganze Pakete inkl. Payload speichern.
Root vermeiden (Capabilities) sudo setcap cap_net_raw,cap_net_admin=eip $(which tcpdump) tcpdump mit weniger Rechten ausführen.


Häufige Stolperfallen[edit]

  • Ohne -n → langsame DNS-Lookups.
  • Große Mitschnitte ohne -c / -G → sehr große Dateien.
  • -s 0 erzeugt große pcap-Dateien.
  • Traffic auf lo nicht vergessen.


Mini-Spickzettel 🧾[edit]

  • tcpdump -i eth0 -n – Basis-Mitschnitt
  • tcpdump -i any icmp – ICMP auf allen Interfaces
  • tcpdump -w file.pcap – In Datei schreiben
  • tcpdump -r file.pcap – Datei lesen
  • tcpdump tcp port 443 – HTTPs / TCP-Traffic

oben


ping[edit]

Aktion Befehl Beschreibung
Einfacher Ping zu einer IP ping 8.8.8.8 Sendet ICMP Echo Requests an die IP-Adresse 8.8.8.8, läuft unendlich, bis mit Ctrl+C gestoppt.
Ping mit begrenzter Anzahl von Paketen ping -c 4 8.8.8.8 Sendet nur 4 Pakete und beendet automatisch.
Ping mit definierter Paketgröße ping -s 100 8.8.8.8 Sendet Pakete mit 100 Bytes Payload.
Ping mit Timeout ping -w 5 8.8.8.8 Beendet Ping nach 5 Sekunden.
Ping mit definierter Intervalldauer ping -i 2 8.8.8.8 Sendet alle 2 Sekunden ein Paket.
Ping an einen Hostnamen ping www.example.com Löst den Hostnamen in eine IP-Adresse auf und pingt diese.
Ping nur einmal ping -c 1 8.8.8.8 Sendet ein einzelnes Ping-Paket, praktisch für Skripte.
Ping über IPv6 ping6 google.com Ping über IPv6-Adressen.
Ping ohne Namensauflösung ping -n 8.8.8.8 Zeigt nur IP-Adressen, keine Hostnamen.
Ping im Quiet Mode ping -q 8.8.8.8 Zeigt nur die Statistik am Ende.
Ping mit Zeitstempel ping -D 8.8.8.8 Zeigt Zeitstempel für jedes Paket.


oben


termshark (Terminal Wireshark / TUI)[edit]

Hinweis: Termshark ist eine terminalbasierte Oberfläche für tshark. Es ermöglicht **Live-Captures, Filterung und Analyse** von Netzwerkpaketen ohne GUI. Ideal für Server oder SSH-Sessions.


Installation[edit]

Plattform Befehl
Debian / Ubuntu sudo apt install termshark
macOS (Homebrew) brew install termshark
Arch Linux pacman -S termshark
Go-Installation (Universal) go install github.com/gcla/termshark@latest


Starten von Termshark[edit]

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 (Wireshark-artig) termshark -r file.pcap -Y "http"


Display-Filter[edit]

Filter Beispiel
TCP-Port tcp.port == 443
IP-Adresse ip.addr == 192.168.1.10
Protokoll http, dns, icmp
Kombination ip.src == 192.168.1.10 and tcp.port == 80
  • Shortcut zum Filtereingeben: /*
  • Filter löschen: Ctrl+L*


Navigation & Paketansicht[edit]

Aktion Shortcut / Methode
Pakete scrollen ↑ / ↓
Paketdetails aufklappen Enter
Layer auf-/zuklappen → / ←
Zwischen Views wechseln Tab (Packet List / Details / Bytes)
Payload als Hex/ASCII anzeigen In Detailansicht
Feld kopieren y


Suche[edit]

Aktion Shortcut / Methode
Text / Pattern suchen Ctrl+F
Nächste Übereinstimmung n
Vorherige Übereinstimmung Shift+n


Markieren & Sortieren[edit]

Aktion Shortcut / Methode
Paket markieren m
Markierungen löschen Shift+M
Sortierung nach Spalte Spaltenkopf / Pfeiltasten


Capture beenden[edit]

  • q → Live Capture stoppen


Praxis-Beispiele[edit]

Zweck Befehl
HTTP-Traffic live analysieren termshark -i eth0 -f "tcp port 80"
DNS-Abfragen aus PCAP untersuchen termshark -r capture.pcap -Y "dns"
Nur bestimmte IP filtern termshark -i eth0 -Y "ip.addr == 192.168.1.10"


Unterschiede zu Wireshark[edit]

  • Terminal-basiert, kein GUI
  • Nutzt tshark als Engine
  • Unterstützt alle Wireshark-Displayfilter
  • Ideal für Server ohne GUI oder SSH-Sessions
  • TCP/UDP-Reassembly, Copy Field, hierarchische Packet-Ansicht


Mini-Spickzettel[edit]

  • termshark -i eth0 – Live Capture
  • termshark -D – Interfaces anzeigen
  • termshark -r file.pcap – PCAP öffnen
  • termshark -i eth0 -w output.pcap – Mitschnitt speichern
  • termshark -i eth0 -f "tcp port 80" – BPF-Filter
  • termshark -r file.pcap -Y "http" – Display-Filter
  • Navigation: ↑↓, Enter, →/←, Tab
  • Filter: /, Ctrl+L
  • Suche: Ctrl+F, n / Shift+n
  • Markieren: m / Shift+M
  • Feld kopieren: y
  • Beenden: q

oben


route (Routing)[edit]

Hinweis:

  • route ist die klassische Variante, noch in vielen Tutorials zu finden.
  • ip route ist moderner, flexibler und unterstützt Features wie **Multipath-Routing** und **Policy Routing**.


Klassische route-Befehle[edit]

Aktion Befehl Beschreibung
Routing-Tabelle anzeigen route -n Zeigt alle Routen numerisch (ohne DNS-Auflösung).
Standardgateway setzen sudo route add default gw 192.168.1.1 Setzt das Standardgateway für alle nicht lokal bekannten Ziele.
Standardgateway löschen sudo 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 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 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 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 Löscht die zuvor erstellte Route.


Moderne Alternative: ip route[edit]

Aktion Befehl Beschreibung
Routing-Tabelle anzeigen ip route show Zeigt alle Routen.
Standardgateway setzen sudo ip route add default via 192.168.1.1 Setzt das Standardgateway.
Standardgateway löschen sudo ip route del default Entfernt das Standardgateway.
Route zu einem Netzwerk hinzufügen 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 ip route del 10.0.0.0/24 Löscht eine Route zu einem bestimmten Netzwerk.
Route für ein Interface erzwingen sudo ip route add 10.0.0.0/24 dev eth0 Verkehr über ein bestimmtes Interface ohne Gateway.
Temporäre Route entfernen (Interface) sudo ip route del 10.0.0.0/24 dev eth0 Löscht die zuvor erstellte Route.

oben


netstat[edit]

netstat (Network Statistics) ist ein klassisches Linux-Tool, um Netzwerkverbindungen, Routing-Tabellen, offene Ports und Netzwerkstatistiken anzuzeigen. Es ist praktisch, um zu sehen, welche Programme mit dem Netzwerk kommunizieren und welche Ports offen sind. In modernen Linux-Distributionen wird es teilweise durch ss ersetzt, aber netstat ist immer noch weit verbreitet.

Aktion Befehl Beschreibung
Offene TCP/UDP-Ports anzeigen netstat -tuln Zeigt alle offenen TCP/UDP-Ports numerisch an.
Alle Verbindungen inklusive Prozess anzeigen netstat -anp Zeigt alle Verbindungen und die zugehörigen Prozesse (PID/Name).
Routing-Tabelle anzeigen netstat -r Zeigt die aktuelle Routing-Tabelle.
Netzwerkschnittstellenstatistiken netstat -i Zeigt Informationen zu allen Netzwerkinterfaces.

oben


nmap[edit]


nmap (Network Mapper) ist ein mächtiges Tool zur Netzwerkerkundung und Sicherheitsüberprüfung. Mit nmap kannst du Hosts in einem Netzwerk scannen, offene Ports finden, Betriebssysteme erkennen und Dienste identifizieren. Es wird häufig in Netzwerksicherheit und Troubleshooting eingesetzt.

Aktion Befehl Beschreibung
Einzelnen Host scannen nmap 192.168.1.1 Scan eines Hosts auf Standardports.
SYN-Scan eines gesamten Netzwerks nmap -sS 192.168.1.0/24 Erkundet alle Hosts im Subnetz per SYN-Scan.
Bestimmte Ports scannen nmap -p 22,80 192.168.1.1 Prüft nur bestimmte Ports auf einem Host.
Betriebssystemerkennung nmap -O 192.168.1.1 Versucht, das Betriebssystem des Hosts zu erkennen.

oben


dhclient[edit]


dhclient ist der DHCP-Client unter Linux. Es wird genutzt, um IP-Adressen automatisch von einem DHCP-Server zu beziehen oder eine bestehende IP-Konfiguration zu erneuern. Praktisch bei mobilen Geräten, Notebooks oder dynamischen Netzwerken.


Aktion Befehl Beschreibung
Neue IP-Adresse anfordern sudo dhclient Holt eine neue IP-Adresse für alle Schnittstellen.
IP-Adresse freigeben sudo dhclient -r Gibt die aktuelle IP-Adresse frei.
IP-Adresse für spezifische Schnittstelle anfordern sudo dhclient eth0 Holt eine neue IP-Adresse für die Schnittstelle eth0.
DHCP-Client im verbose-Modus starten sudo dhclient -v Zeigt detaillierte Informationen während der DHCP-Anfrage.

oben

traceroute (Netzwerkpfad verfolgen)[edit]

Hinweis: traceroute zeigt die Route von deinem Rechner zu einem Zielhost und alle Hops dazwischen. Standardmäßig werden ICMP oder UDP-Pakete genutzt (abhängig vom System).


Grundbefehle[edit]

Zweck Befehl Beschreibung
Einfacher Traceroute traceroute 8.8.8.8 Zeigt alle Hops zu 8.8.8.8.
Traceroute zu einem Hostnamen traceroute www.example.com Löst den Hostnamen in IP auf und zeigt den Pfad.
Traceroute über IPv6 traceroute6 google.com Verwendet IPv6-Adressen.
Traceroute über ICMP statt UDP traceroute -I 8.8.8.8 Nutzt ICMP Echo Requests, hilfreich bei UDP-Blockaden.
Traceroute mit Angabe eines bestimmten Ports traceroute -p 443 www.example.com Sendet Pakete an Port 443 (TCP), nützlich bei ICMP-Blockaden.


Optionen[edit]

Option Beschreibung Beispiel
-m <maxHops> Maximale Anzahl von Hops anzeigen (Standard: 30) traceroute -m 10 8.8.8.8
-q <n> Anzahl Pakete pro Hop (Standard: 3) traceroute -q 1 8.8.8.8
-w <Sekunden> Timeout pro Hop (in Sekunden) traceroute -w 2 8.8.8.8
-n Zeigt IP-Adressen numerisch, kein DNS-Lookup traceroute -n 8.8.8.8
-f <StartTTL> Start-Hops niedriger setzen (z. B. lokale Netze) traceroute -f 3 8.8.8.8
-A AS-Nummern (Autonomous System) anzeigen, wenn verfügbar traceroute -A 8.8.8.8


oben


Traceroute-Befehle[edit]

Aktion Befehl Beschreibung
Einfacher Traceroute zu einer IP traceroute 8.8.8.8 Zeigt alle Hops von deinem Rechner zu 8.8.8.8.
Traceroute zu einem Hostnamen traceroute www.example.com Löst den Hostnamen in eine IP-Adresse auf und zeigt den Pfad.
Maximale Anzahl von Hops begrenzen traceroute -m 10 8.8.8.8 Zeigt maximal 10 Hops statt Standard 30.
Weniger Pakete pro Hop senden traceroute -q 1 8.8.8.8 Sendet nur 1 Paket pro Hop (statt 3), spart Zeit.
Timeout pro Hop festlegen traceroute -w 2 8.8.8.8 Wartet maximal 2 Sekunden auf Antwort pro Hop.
ICMP statt UDP verwenden traceroute -I 8.8.8.8 Nutzt ICMP Echo Requests, wenn UDP blockiert ist.
Traceroute über IPv6 traceroute6 google.com Zeigt den Pfad zu einem Host über IPv6.
Traceroute zu bestimmtem Port traceroute -p 443 www.example.com Sendet Pakete an Port 443, nützlich bei Firewalls.
IP-Adressen numerisch anzeigen traceroute -n 8.8.8.8 Keine DNS-Auflösung, nur IP-Adressen anzeigen.

oben


arp (IP → MAC)[edit]

Hinweis: ARP übersetzt IP-Adressen in MAC-Adressen. Klassischer ARP-Befehl ist deprecated, der moderne Ersatz ist ip neigh.


Klassischer ARP-Befehl[edit]

Aktion Befehl Beschreibung
ARP-Tabelle anzeigen arp / arp -n Zeigt ARP-Einträge an; -n ohne Namensauflösung.
ARP-Eintrag hinzufügen arp -s 192.168.1.10 aa:bb:cc:dd:ee:ff Fügt statischen ARP-Eintrag hinzu.
ARP-Eintrag löschen arp -d 192.168.1.10 Entfernt Eintrag aus der Tabelle.
Bestimmtes Interface nutzen arp -i eth0 Zeigt ARP-Einträge nur für das angegebene Interface.


Moderner Ersatz: ip neigh (empfohlen)[edit]

Aktion Befehl Beschreibung
Nachbarn (ARP / NDP) anzeigen ip neigh show / ip n Zeigt ARP- bzw. Neighbor-Einträge.
ARP-Eintrag hinzufügen ip neigh add 192.168.1.10 lladdr aa:bb:cc:dd:ee:ff dev eth0 Fügt statischen ARP-Eintrag hinzu.
ARP-Eintrag ändern ip neigh replace 192.168.1.10 lladdr aa:bb:cc:dd:ee:ff dev eth0 Ändert vorhandenen ARP-Eintrag.
ARP-Eintrag löschen ip neigh del 192.168.1.10 dev eth0 Löscht ARP-Eintrag.
ARP-Cache leeren ip neigh flush all Löscht alle dynamischen ARP-Einträge.


ARP-Pakete aktiv senden: arping[edit]

Zweck Befehl Beschreibung
Erreichbarkeit prüfen (Layer 2) arping 192.168.1.1 Prüft, ob Host erreichbar ist.
Interface festlegen arping -I eth0 192.168.1.1 Nutzt bestimmtes Interface.
Gratuitous ARP senden arping -U 192.168.1.10 Sendet ARP-Ankündigung (z. B. für IP-Konflikte / Updates).


Netzwerk-Diagnose & Analyse[edit]

Zweck Befehl
ARP-Traffic mitschneiden tcpdump -n -e arp
ARP-Tabelle über /proc anzeigen cat /proc/net/arp


Typische ARP-Statuswerte (ip neigh)[edit]

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

oben


ethtool[edit]

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[edit]

Überwachung des Datenverkehrs in Echtzeit

iftop -i eth0

oben


dig[edit]

dig (Domain Information Groper) ist ein Linux-Tool zur DNS-Abfrage. Mit dig kannst du herausfinden, welche IP-Adresse zu einem Hostnamen gehört, welche Nameserver antworten, oder detaillierte DNS-Records (A, AAAA, MX, TXT, etc.) prüfen. Es ist eines der wichtigsten Tools für Netzwerkdiagnosen, wenn es um Namensauflösung geht.


Aktion Befehl Beschreibung
Standard-DNS-Abfrage (A-Record) dig example.com Zeigt die IP-Adresse(n) eines Hostnamens.
MX-Record prüfen dig example.com MX Zeigt die Mailserver für die Domain.
Kompakte Ausgabe (nur IP) dig +short example.com Zeigt nur die IP(s) ohne zusätzliche Informationen.
DNS-Abfrage über spezifischen Server dig @8.8.8.8 example.com Fragt den Hostnamen über den DNS-Server 8.8.8.8 ab.

oben


ftp[edit]

ftp ist das klassische Linux-Tool für Dateiübertragungen über das FTP-Protokoll. Es ermöglicht das Hoch- und Runterladen von Dateien zu/von einem FTP-Server. Heute wird es wegen Sicherheitsrisiken oft durch sftp oder scp ersetzt, aber für Legacy-Systeme ist ftp noch relevant.


Aktion Befehl Beschreibung
Verbindung zu FTP-Server ftp ftp.example.com Stellt eine Verbindung zum FTP-Server her.
Datei herunterladen get datei.txt Lädt eine Datei vom FTP-Server herunter.
Datei hochladen put datei.txt Lädt eine Datei auf den FTP-Server hoch.
Verzeichnis auflisten ls Listet Dateien im aktuellen Server-Verzeichnis auf.
Benutzerlogin login Meldet sich mit Benutzername und Passwort am Server an.

oben


nc (netcat)[edit]

nc (netcat) ist ein universelles Tool für TCP/UDP-Verbindungen. Es kann verwendet werden, um Ports zu scannen, als einfacher TCP/Server oder Client zu fungieren, Daten zu übertragen oder Netzwerkprobleme zu debuggen. Oft als „Schweizer Taschenmesser für Netzwerke“ bezeichnet.

Aktion Befehl Beschreibung
Prüft, ob ein Port offen ist nc -zv 192.168.1.1 22 Prüft, ob Port 22 auf 192.168.1.1 erreichbar ist.
TCP-Server starten nc -l 1234 Startet einen TCP-Server auf Port 1234.
Mit TCP-Server verbinden nc 192.168.1.2 1234 Verbindet sich zu einem TCP-Server auf Port 1234.
Text an Server senden nc 192.168.1.2 1234 Sendet Text an einen TCP-Server.

oben

netperf[edit]

netperf ist ein Tool zur Netzwerkperformancemessung. Es wird genutzt, um Durchsatz (Throughput), Latenzzeiten und TCP/UDP-Performance zwischen zwei Hosts zu messen. Meist wird netperf zusammen mit einem Server (netserver) betrieben: ein Host läuft als Server, der andere als Client.

Aktion Befehl Beschreibung
Netperf-Server starten netserver Startet den netperf-Server auf einem Host.
TCP-Performance messen netperf -H 192.168.1.2 Misst TCP-Durchsatz zum Host.
UDP-Durchsatz messen netperf -H 192.168.1.2 -t UDP_STREAM Misst UDP-Stream Performance.
TCP-Request/Response-Latenz messen netperf -H 192.168.1.2 -t TCP_RR Misst Latenz von TCP-Requests.

oben


nslookup[edit]

nslookup ist ein klassisches Linux-Tool zur DNS-Abfrage, ähnlich wie dig. Es wird genutzt, um die IP-Adresse eines Hostnamens zu ermitteln, DNS-Server zu testen oder die DNS-Konfiguration zu überprüfen. Anders als dig bietet nslookup einen interaktiven Modus, in dem mehrere Abfragen nacheinander ausgeführt werden können.

Aktion Befehl Beschreibung
Standard-DNS-Abfrage nslookup example.com Zeigt die IP-Adresse(n) eines Hostnamens.
Interaktiver Modus starten nslookup Startet den interaktiven Modus für mehrere Abfragen.
DNS-Abfrage über spezifischen Server nslookup example.com 8.8.8.8 Fragt den Hostnamen über den DNS-Server 8.8.8.8 ab.
MX-Record im interaktiven Modus set type=MX Stellt Abfrage auf MX-Record um.

oben


ssh[edit]

ssh (Secure Shell) ist das Standardtool, um verschlüsselte Remote-Verbindungen zu Linux-Servern herzustellen. Es wird genutzt, um auf entfernte Systeme zuzugreifen, Befehle auszuführen oder sichere Tunnel (Port-Forwarding) einzurichten. SSH ersetzt fast vollständig alte unsichere Tools wie rlogin oder telnet für Remote-Administration.

Aktion Befehl Beschreibung
Verbindung zum Host herstellen ssh user@host Stellt eine verschlüsselte Verbindung zum Remote-Host her.
Verbindung über spezifischen Port ssh -p 2222 user@host Verbindung über Port 2222 herstellen.
Verbindung mit privatem Schlüssel ssh -i keyfile.pem user@host Verbindet sich unter Nutzung eines privaten SSH-Schlüssels.
Lokales Port-Forwarding ssh -L 8080:localhost:80 user@host Leitet lokalen Port 8080 auf Port 80 des Hosts weiter.

ssh und VPN-Tunnel[edit]

!!!
- Putty vom DC öffnen um Tunnel zu bekommen
- normales Putty (nicht im Putty vom DC) öffnen und ssh-Kommando eingeben
- in der DCmou Link anklicken

# um auf den Router zu kommen:
(1)
ssh -l <user> -L 10443:<VPN Tunnel>:443 <DC IP-Adresse>

user: aus DCmou
PW: auch aus DCmou
VPN-Tunnel: grüne Kugel
DC IP-Adresse: aus DCmou 


(2)
ssh <user>@<DC IP-Adresse> -L 10443:<VPN Tunnel>:443

Bsp.:
ssh gpjs5@172.30.0.1 -L 10443:172.30.1.58:443

DC5
ssh root@159.69.202.215 -L 10443:172.27.6.170:443

oben

telnet[edit]

telnet ist ein älteres Tool, um unsichere Textverbindungen zu einem Server herzustellen. Heutzutage wird es fast nur noch zu Testzwecken genutzt, zum Beispiel um zu prüfen, ob ein Port erreichbar ist. Für sichere Remote-Verbindungen wird ssh verwendet.

Aktion Befehl Beschreibung
Verbindung zu Host auf Port 23 telnet host 23 Stellt eine Verbindung zum Telnet-Server her.
Verbindung zu Host auf beliebigem Port open host port Verbindet im Telnet-Client zu einem bestimmten Port.
Telnet-Sitzung beenden quit Beendet die Telnet-Verbindung.

oben