Difference between revisions of "Kommandozeilenwerkzeuge"
(→dhclient) |
(→nmap) |
||
| Line 979: | Line 979: | ||
Wichtige grundlegende Befehle: | Wichtige grundlegende Befehle: | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</pre> | </pre> | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
| Line 1,010: | Line 1,002: | ||
|} | |} | ||
[[#top | oben]] | [[#top | oben]] | ||
| − | |||
=== dhclient === | === dhclient === | ||
Revision as of 12:22, 15 January 2026
Contents
- 1 ip (iproute2)
- 2 ifconfig (Legacy: net-tools)
- 3 tcpdump (Paketmitschnitt)
- 3.1 Grundsyntax
- 3.2 Interfaces & Basisoptionen
- 3.3 Ausgabe steuern
- 3.4 Paketanzahl & Laufzeit
- 3.5 Mitschnitt in Datei (pcap)
- 3.6 Klassische Filter (BPF)
- 3.7 Kombinierte Filter
- 3.8 TCP-spezifische Filter
- 3.9 Typische Praxisbeispiele
- 3.10 Performance & Sicherheit
- 3.11 Häufige Stolperfallen
- 3.12 Mini-Spickzettel 🧾
- 4 ping
- 5 termshark (Terminal Wireshark / TUI)
- 6 route (Routing)
ip (iproute2)
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
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)
| 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)
| 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
| 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
| 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
| 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
| 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
| 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
| 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 |
---
Mini-Spickzettel
- ip a – Adressen
- ip l – Interfaces
- ip r – Routing
- ip n – ARP / Neighbor
- ip monitor – Live-Events
ifconfig (Legacy: net-tools)
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
| 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
| Aktion | Befehl | Beschreibung |
|---|---|---|
| Aktivieren | ifconfig eth0 up | Interface hochfahren. |
| Deaktivieren | ifconfig eth0 down | Interface herunterfahren. |
---
IP-Adresse setzen (IPv4)
| 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
| 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
| Aktion | Befehl | Beschreibung |
|---|---|---|
| MTU konfigurieren | ifconfig eth0 mtu 1500 | Maximum Transmission Unit anpassen. |
---
Promiscuous Mode
| Aktion | Befehl | Beschreibung |
|---|---|---|
| Aktivieren | ifconfig eth0 promisc | Promiscuous Mode einschalten. |
| Deaktivieren | ifconfig eth0 -promisc | Promiscuous Mode ausschalten. |
---
Statistik anzeigen
| Aktion | Befehl | Beschreibung |
|---|---|---|
| Statistik eines Interfaces | ifconfig eth0 | Zeigt Pakete, Fehler, Bytes etc. an. |
---
Loopback konfigurieren
| Aktion | Befehl | Beschreibung |
|---|---|---|
| Loopback aktivieren | ifconfig lo 127.0.0.1 up | Loopback-Interface hochfahren (selten nötig). |
---
Moderne Entsprechung (iproute2)
| 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 lesen / Legacy: ifconfig
- Aktiv konfigurieren: ip
- Skripte neu schreiben: iproute2
tcpdump (Paketmitschnitt)
Hinweis: tcpdump ist das Standardwerkzeug zur Analyse von Netzwerkpaketen. Änderungen am System sind nicht notwendig; root oder entsprechende Capabilities können erforderlich sein.
Grundsyntax
tcpdump [OPTIONEN] [FILTER]
---
Interfaces & Basisoptionen
| 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
| 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
| 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)
| 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)
| 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
| 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
| 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
| 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
| 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
- 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 🧾
- 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
ping
| 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. |
termshark (Terminal Wireshark / TUI)
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
| 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
| 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
| 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*
---
| 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
| 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 / Pfeiltasten |
---
Capture beenden
- q → Live Capture stoppen
---
Praxis-Beispiele
| 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
- 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
- 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
route (Routing)
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
| 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
| 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. |
netstat
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. Wichtige grundlegende Befehle: netstat -tuln → Zeigt alle offenen TCP/UDP-Ports numerisch an. netstat -anp → Zeigt alle Verbindungen inklusive PID/Prozess. netstat -r → Zeigt die Routing-Tabelle. netstat -i → Zeigt Netzwerkschnittstellenstatistiken.
| 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. |
nmap
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. Wichtige grundlegende Befehle:
| 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. |
dhclient
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. Wichtige grundlegende Befehle:
| 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. |
traceroute
### Einfacher Traceroute traceroute 8.8.8.8 Zeigt alle Hops von deinem Rechner zu 8.8.8.8. Standardmäßig werden ICMP oder UDP-Pakete genutzt, abhängig vom System. ### Traceroute zu einem Hostnamen traceroute www.example.com Löst den Hostnamen in eine IP-Adresse auf und zeigt den Pfad. ### Traceroute mit begrenzter Anzahl von Hops traceroute -m 10 8.8.8.8 -m 10 → maximal 10 Hops werden angezeigt. Standard: 30 Hops. ### Traceroute mit kleinerer Paketgröße traceroute -q 1 8.8.8.8 -q 1 → sendet nur 1 Paket pro Hop statt standardmäßig 3. ### Traceroute mit festem Timeout traceroute -w 2 8.8.8.8 -w 2 → wartet maximal 2 Sekunden auf Antwort pro Hop. ### Traceroute über ICMP statt UDP traceroute -I 8.8.8.8 -I → verwendet ICMP Echo Requests (ähnlich wie ping). Nützlich, wenn Firewalls UDP blockieren. ### Traceroute über IPv6 traceroute6 google.com Verwendet IPv6-Adressen. Entspricht traceroute für IPv6. ### Traceroute mit Angabe eines bestimmten Ports traceroute -p 443 www.example.com -p 443 → sendet Pakete an Port 443 (HTTPS) statt Standard-33434 UDP. Hilfreich, wenn Firewalls ICMP blockieren, aber TCP erlaubt ist. ### Kurztipps: -n → IP-Adressen numerisch anzeigen (kein DNS-Lookup). -f <StartTTL> → Start-Hops niedriger setzen, um z. B. nur das lokale Netz zu prüfen. -A → AS-Nummern (Autonomous System) anzeigen, wenn verfügbar.
[#top | oben]]
Traceroute-Befehle
| 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. |
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
ethtool
Kommando Funktion
ethtool eth0 Status und Einstellungen auf der
Bitüberragungsschicht ausgeben
ethtool -P eth0 MAC-Adresse ausgeben
ethtool -S eth0 Statistische Daten ausgeben
ethtool -i eth0 Informationen zu Treiber und Firmware
ethtool -p eth0 LED blinken lassen
iftop
Überwachung des Datenverkehrs in Echtzeit iftop -i eth0
dig
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. Grundlegende Befehle: dig example.com → Standard-DNS-Abfrage (A-Record) für example.com. dig example.com MX → Prüft den Mail-Server (MX-Record). dig +short example.com → Zeigt nur die IP(s) an, kompakte Ausgabe. dig @8.8.8.8 example.com → Abfrage über spezifischen DNS-Server.
| 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. |
ftp
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. Grundlegende Befehle: ftp ftp.example.com → Verbindung zu einem FTP-Server herstellen. login → Benutzername/Passwort eingeben. get datei.txt → Datei vom Server herunterladen. put datei.txt → Datei auf den Server hochladen. ls → Auflisten der Dateien im aktuellen Verzeichnis des Servers.
| 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. |
nc (netcat)
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. Grundlegende Befehle: nc -zv 192.168.1.1 22 → Prüft, ob Port 22 auf 192.168.1.1 offen ist. nc -l 1234 → Startet einen TCP-Server auf Port 1234. nc 192.168.1.2 1234 → Verbindet sich mit einem TCP-Server auf Port 1234. echo "Hallo" | nc 192.168.1.2 1234 → Sendet Text an einen TCP-Server.
| 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. |
netperf
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. Grundlegende Befehle: netserver → Startet den netperf-Server auf einem Host. netperf -H 192.168.1.2 → Misst die TCP-Performance zum Host 192.168.1.2. netperf -H 192.168.1.2 -t UDP_STREAM → Misst UDP-Durchsatz. netperf -H 192.168.1.2 -t TCP_RR → Misst TCP-Request/Response-Latenz.
| 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. |
nslookup
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. Grundlegende Befehle: nslookup example.com → Standard-DNS-Abfrage für example.com. nslookup → Startet den interaktiven Modus, in dem man mehrere Abfragen durchführen kann. nslookup example.com 8.8.8.8 → Abfrage über einen spezifischen DNS-Server (z. B. Google DNS). set type=MX → Im interaktiven Modus den MX-Record für eine Domain abfragen.
| 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. |
ssh
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. Grundlegende Befehle: ssh user@host → Verbindung zum Host als Benutzer user herstellen. ssh -p 2222 user@host → Verbindung über einen spezifischen Port (hier 2222). ssh -i keyfile.pem user@host → Verbindung unter Nutzung eines privaten Schlüssels. ssh -L 8080:localhost:80 user@host → Lokales Port-Forwarding einrichten.
| 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. |
telnet
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. Grundlegende Befehle: telnet host 23 → Verbindung zum Host auf Port 23 (Standard-Telnet-Port). open host port → Im Telnet-Client Verbindung zu einem bestimmten Port herstellen. quit → Telnet-Sitzung beenden.
| 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. |