Wenn es darum geht, stabile und sichere Netzwerke aufzubauen, ist Linux für die meisten von uns die erste Wahl. Dies erklärt viele Dinge, einschließlich der riesigen Auswahl an Netzwerk-Tools und Befehlen, die von Linux bereitgestellt werden. Sie können eine scheinbar unendliche Anzahl von Netzwerkdienstprogrammen finden, die es Ihnen ermöglichen, sichere Netzwerke einzurichten, sie auf Probleme zu überwachen, Fehler effektiv zu beheben und so weiter. Die Liste ist tatsächlich so umfangreich, dass die meisten Tutorials im Internet nicht einmal versuchen, sie abzudecken. Aus diesem Grund haben wir diese gut durchdachte Anleitung zu verschiedenen Linux-Netzwerkbefehlen kuratiert.
Linux-Netzwerkbefehle für SysAdmins
Wir haben versucht, diesen gesamten Leitfaden basierend auf Tools und ihrer Verwendung in bestimmte Abschnitte zu unterteilen. Sie können viele dieser Befehle in verschiedenen Szenarien verwenden. Ihre Gruppierung ist also nicht per se streng – sie sind einfach hier, um Ihnen bei der Visualisierung zu helfen. Obwohl dieses Handbuch nicht alle Linux-Netzwerkbefehle abdeckt, können Sie es als Referenzpunkt verwenden, wenn Sie beim Netzwerken nicht weiterkommen.
Linux-Netzwerkbefehle zum Verwalten von Netzwerkschnittstellen
Die Konfiguration und Verwaltung von Netzwerkschnittstellen ist sowohl für Systemadministratoren als auch für Power-User unerlässlich. In diesem Abschnitt gehen wir einige grundlegende Netzwerkbefehle durch, die in Unix-ähnlichen Systemen für diesen Job verfügbar sind.
1. ifconfig
Einer der grundlegendsten und dennoch leistungsfähigsten Netzwerkbefehle für Linux-Systemadministratoren ist ifconfig. Es ist ein integriertes Systemdienstprogramm, mit dem Benutzer Netzwerkschnittstellenparameter konfigurieren und verwalten können. Der Name ifconfig steht für „Schnittstellenkonfiguration “, und es ist das ideale Tool, um zu überprüfen, ob Ihre Netzwerkschnittstellen richtig funktionieren oder nicht.
$ ifconfig
Wenn Sie es ohne Optionen aufrufen, erhalten Sie detaillierte Informationen zu Netzwerkgeräten, Konfiguration und aktuellen Einstellungen.
Sie können das -s verwenden -Flag, um kürzere, prägnantere Informationen zu erhalten. Andere zusätzliche Optionen ermöglichen es ifconfig, anspruchsvollere Aufgaben auszuführen. Konsultieren Sie die Manpage für Hinweise zur Verwendung.
2. iwconfig
- -Die iwconfig wird zum Konfigurieren von drahtlosen Netzwerkschnittstellen wie Netzwerkkarten und so weiter verwendet. Es kann zum Einrichten verschiedener drahtloser Netzwerkparameter wie SSID-Zugriffspunkt und Frequenz verwendet werden. Angenommen, Sie haben Ihre drahtlose Schnittstelle als wlp2s0 identifiziert mit ifconfig. Der folgende Befehl liefert Netzwerkinformationen zu dieser Schnittstelle.
$ iwconfig wlp2s0
Verwenden Sie den folgenden Befehl, um die Sendeleistung auf 20 zu ändern.
$ iwconfig wlp2s0 txpower 20
Führen Sie iwconfig erneut aus, um zu sehen, ob sich die Sendeleistung geändert hat. Konsultieren Sie die Manpage für zusätzliche nützliche Optionen.
3. ifstat
Der Befehl ifstat ist ein praktisches Dienstprogramm, mit dem Systemadministratoren verschiedene Netzwerkschnittstellenstatistiken wie Bandbreitennutzung usw. lesen und überwachen können. Der folgende Befehl gibt Ihnen alle SECS die Beispielstatistiken zweitens.
$ ifstat --scan=SECS
Der folgende Befehl gibt den Durchschnitt der letzten SECS aus Sekunden.
$ ifstat --interval=SECS
Der nächste gibt eventuelle Fehler aus.
$ ifstat --errors
Dieses Tool ist Teil des iproute2-Projekts und hat eine Fülle von zusätzlichen Optionen. Sehen Sie sich die Manpage für weitere Abfragen an.
4. ethtool
Mit dem Dienstprogramm ethtool können Administratoren die verschiedenen Parameter von Netzwerkschnittstellen-Controllern und ihren Gerätetreibern anzeigen und ändern. Es kann nützlich sein, um Ihre Ethernet-Geräte zu identifizieren und zu diagnostizieren, und ermöglicht Ihnen die bequeme Steuerung von Geschwindigkeit, Duplex und Datenflüssen.
$ ethtool eth0
Der obige Befehl gibt die aktuellen Parameter des Netzwerkports eth0 aus .
$ ethtool -s eth0 speed 1000 duplex full
Dieser Befehl erzwingt die Geschwindigkeit der Netzwerkschnittstelle eth0 auf 1000 und richtet Vollduplex ein. Sie können viele zusätzliche Optionen finden, indem Sie einfach das Handbuch durchgehen.
5. Arpwatch
Das Dienstprogramm arpwatch ist ein robustes Tool zur Überwachung der Ethernet-Aktivität, mit dem Systemadministratoren die Ethernet/IP-Adresspaare ihres Netzwerks einfach verfolgen können. Es kann für Unternehmens-Systemadministratoren und auch für Linux-Power-User von großer Bedeutung sein.
Sie können arpwatch verwenden, um eine bestimmte Netzwerkschnittstelle zu überwachen, indem Sie das -i verwenden Flagge, wie unten gezeigt.
$ sudo arpwatch -i eth0
arpwatch schreibt alle Änderungen oder ungewöhnlichen Aktivitäten an IP oder MAC nach /var/log/messages . Verwenden Sie den tail-Befehl für diese Datei, um neue Informationen über Ihren ARP-Verkehr zu erhalten. Weitere verfügbare Optionen finden Sie in der Manpage.
6. bmon
Der bmon-Befehl gehört wohl zu den nützlichsten Linux-Netzwerkbefehlen. Es ist ein tragbarer Bandbreitenmonitor und Ratenschätzer, der zum Erfassen von Netzwerkstatistiken und zum Anzeigen dieser in einem für Menschen lesbaren Format verwendet werden kann. Die programmierbare Textausgabe dieses Linux-Netzwerküberwachungstools kann zum Erstellen erweiterter Skripte verwendet werden.
$ bmon
Durch einfaches Aufrufen dieses Tools erhalten Sie eine Echtzeitschätzung Ihrer Netzwerkstatistiken. Verwenden Sie das -p Flag, um die Ausgabe für eine bestimmte Schnittstelle zu erhalten.
$ bmon -p wlp2s0
Es stehen viele weitere Optionen zur Verfügung — lesen Sie die Manpage für umfassende Details.
Linux-Netzwerkbefehle für die Kommunikation
Die Kommunikation mit externen Ressourcen ist der Hauptzweck von Systemnetzwerken. In diesem Abschnitt werfen wir einen Blick auf einige gängige Linux-Befehle, die für diesen Zweck verwendet werden.
7. telnet
Das Telnet-Protokoll ist der grundlegende Mechanismus hinter der bidirektionalen, interaktiven und textorientierten Kommunikation in Linux-Systemen. Das Linux-Hilfsprogramm Telnet ermöglicht es einem Hostsystem, sich mit diesem Kommunikationsprotokoll mit einem anderen Clientsystem zu verbinden. Geben Sie einfach telnet in Ihr Terminal ein, um die interaktive Shell aufzurufen.
$ telnet
Geben Sie nun in dieser Shell open gefolgt vom Hostnamen/IP des Systems ein, mit dem Sie sich verbinden möchten. Geben Sie help ein, um eine Liste aller verfügbaren Optionen zu erhalten.
telnet> open example.com
Alternativ können Sie diesen Befehl verwenden, um sich direkt mit einem Host zu verbinden. Siehe das folgende Beispiel.
$ telnet host-machine
Geben Sie einfach die Benutzeranmeldeinformationen in die Eingabeaufforderung ein, und Sie können loslegen.
8. ssh
Der ssh-Befehl gehört für viele Administratoren ohne Zweifel zu den am häufigsten verwendeten Linux-Netzwerkbefehlen. Es bietet eine Schnittstelle zum Secure-Shell-Protokoll und ermöglicht problemlose Kommunikation über eine sichere Netzwerkverbindung. Es kann verwendet werden, um entfernte Server effektiv zu verwalten und Dateien problemlos zu übertragen.
$ ssh [email protected]
Sie können private/öffentliche Schlüsselpaare einrichten und sich bei Remote-Computern anmelden, ohne Passwörter einzugeben. Verwenden Sie den folgenden Befehl, um Ihren SSH-Schlüssel zu generieren.
$ ssh-keygen
Standardmäßig generiert der obige Befehl die Schlüssel mit dem kryptografischen RSA-Algorithmus. Verwenden Sie das -t Flag, um andere Algorithmen wie DSA zu verwenden.
9. Mail senden
Der Befehl sendmail ist ein praktisches Dienstprogramm, mit dem Linux-Benutzer E-Mail-Nachrichten direkt von ihrem Terminal aus senden können. Es liest die Standardeingabe und sendet E-Mails an bestimmte Empfänger über das Netzwerk. Dieser Befehl ist oft nützlich für entfernte Server, auf denen Sie keinen Standardbrowser zum Senden von E-Mails haben.
$ echo "Subject: Test" | sendmail [email protected] < mail.txt
Der obige Befehl sendet den Inhalt der angegebenen Datei an die angegebene E-Mail. Es gibt eine Menge zusätzlicher Optionen, die Sie mit sendmail verwenden können. Konsultieren Sie die Manpage für weitere Fragen zu sendmail.
10. schreiben
Die Fähigkeit, Nachrichten zwischen verschiedenen Systembenutzern zu senden, ist entscheidend für Mehrbenutzersysteme wie Linux. Der Schreibbefehl kann zum Aufbau von Terminal-zu-Terminal-Kommunikationssitzungen unter Linux verwendet werden. Es ist ein interaktives Dienstprogramm, und daher ist es nicht möglich, diesen Netzwerkbefehl in Skripten zu verwenden.
$ write user [tty]
Der Schreibbefehl verwendet die oben erwähnte Syntax und sendet Nachrichten an bestimmte oder alle Benutzer. Dies ist praktisch, wenn mehrere Benutzer dasselbe System betreiben und mühelos kommunizieren müssen.
11. mailen
Der Mail-Befehl ist ein wesentliches Dienstprogramm zum Senden von E-Mails vom Terminal aus. Beachten Sie das folgende Beispiel, um zu verstehen, wie es funktioniert.
$ mail -s "This is the subject" [email protected] < mail.txt
Das -s flag ermöglicht es Benutzern, ihr Thema auszuwählen. Sie können E-Mails gleichzeitig an mehrere Empfänger senden, wie unten gezeigt.
$ mail -s "This is the subject" [email protected], [email protected] < mail.txt
Verwenden Sie einfach eine durch Kommas getrennte Empfängerliste. Das -a -Flag erlaubt es Benutzern, Anhänge mit ihren Mails zu versenden.
$ mail -s "Subject" -a /tmp/file.pdf [email protected] < mail.txt
12. mailstats
Manchmal möchten Sie Ihre E-Mail-Statistiken aus mehreren Gründen auflisten. Mit dem Linux-Befehl mailstats können Sie dies sehr einfach tun. Dieser Befehl muss als root ausgeführt werden, sonst funktioniert er nicht.
# mailstats -p
Dieser Befehl gibt eine Ausgabe im programmlesbaren Modus aus und liefert klare Statistiken.
# mailstats -f STAT-FILE
Dieser Befehl liest die angegebene STAT-FILE anstelle der standardmäßigen sendmail-Statistikdatei. Weitere verfügbare Optionen und die richtige Verwendung des Befehls finden Sie auf der Manpage.
13. w
Der Befehl w bietet eine praktische Möglichkeit, alle Benutzer aufzulisten, die derzeit bei einem Linux-Computer angemeldet sind. Seine Syntax ist unten gezeigt.
w [options] user [...]
Dieser Befehl bietet auch viele wertvolle Einblicke wie die Prozesse, die in der Sitzung jedes Benutzers ausgeführt werden, Emote-Host, Anmeldezeit, Leerlaufzeit, JCPU, PCPU usw.
$ w --short
Dieser Befehl liefert eine knappe Ausgabe, wobei die Anmeldezeit, JCPU- oder PCPU-Zeiten weggelassen werden.
$ w --ip-addr
Dieser Befehl versucht, die IP-Adresse der derzeit angemeldeten Benutzer anstelle ihrer Hostnamen anzuzeigen. Weitere Optionen finden Sie in der Handbuchseite.
Netzwerkbefehle zur Erleichterung der Datenübertragung
Die Übertragung von Daten über mehrere Systeme hinweg ist für Systemadministratoren obligatorisch. Linux erleichtert die Datenübertragung per Fernzugriff bequem über ein Netzwerk und bietet zu diesem Zweck einige sehr robuste Kommandozeilen-Tools. In diesem Abschnitt werfen wir einen Blick auf einige dieser Befehle.
14. cURL
Der cURL-Befehl ist einer der am häufigsten verwendeten Linux-Befehle zum Übertragen von Daten zu oder von einem Netzwerkserver. Es verwendet verschiedene Netzwerkprotokolle wie HTTP, HTTPS, FTP, FTPS, SCP, SFTP usw. Der cURL-Befehl erfordert keine Benutzerinteraktion und kann daher umfassend in Shell-Skripten verwendet werden.
$ curl -O https://somedomain/file
Dadurch wird die Datei von der angegebenen Adresse heruntergeladen und unter ihrem ursprünglichen Namen im aktuellen Verzeichnis gespeichert.
$ curl -o new-name https://somedomain/file
Dieser Befehl speichert die heruntergeladene Datei unter dem Namen new-name . Da cURL eine Fülle von verfügbaren Optionen hat, ist das Lesen des Handbuchs ein Muss, wenn Sie dieses Linux-Tool beherrschen möchten.
15. wget
Das Tool wget ist Teil des GNU-Projekts und erleichtert das Herunterladen von Inhalten von Webservern. Es bietet mehrere nützliche Optionen, einschließlich der Möglichkeit, Dateien rekursiv herunterzuladen, Links in HTML für die Offline-Anzeige umzuwandeln, Proxys und so weiter.
$ wget https://somedomain/file
Dadurch wird die Datei einfach heruntergeladen und im aktuellen Verzeichnis gespeichert. Verwenden Sie das -O Flag, um diese Datei unter einem neuen Namen zu speichern.
$ wget -O filename https://somedomain/file
Verwenden Sie das -P Flag, um die Datei in einem anderen Verzeichnis zu speichern.
$ wget -P ~/Downloads https://somedomain/file
wget ist nicht interaktiv und wird häufig zum Herunterladen von Dateien aus Skripten verwendet.
16. ftp
Das Linux-FTP-Dienstprogramm wird häufig zum Herunterladen oder Hochladen von Dateien zu/von Remote-Hosts verwendet. Dieser Befehl kann innerhalb von Skripten verwendet werden, um sehr schnell automatisierte FTP-Sitzungen zu erstellen.
$ ftp ftp>
Durch einfaches Eingeben von ftp im Terminal wird eine interaktive Sitzung erstellt. In dieser Eingabeaufforderung können Sie verschiedene Befehle zum Übertragen von Dateien über FTP eingeben. Beispielsweise können Sie das offene Common verwenden, um eine Verbindung zu einem Remote-Host herzustellen. Geben Sie den Hilfebefehl ein, um eine Liste aller verfügbaren Befehle zu erhalten.
$ ftp hostname
Sie können es auch verwenden, um sich direkt mit entfernten Hosts zu verbinden. Detaillierte Informationen zu allen verfügbaren Befehlen finden Sie in der Manpage.
17. rcp
Mit dem Dienstprogramm rcp können Benutzer Dateien oder Verzeichnisse von ihrem lokalen System auf einen Remote-Computer im Netzwerk kopieren. Der Befehl hat eine Syntax wie unten.
rcp [options] SOURCE DESTINATION
Der nächste Befehl zeigt beispielsweise, wie eine Datei namens test.doc auf einen Remote-Computer kopiert wird.
$ rcp /parent/dir/test.doc hostname:/some/dir
Sie können diesen Befehl auch verwenden, um Dateien von einem entfernten Host zu empfangen, wie unten gezeigt.
$ rcp hostname:/some/dir/FILE
Lassen Sie einfach den Quellteil weg, wenn Sie Dateien empfangen.
18. scp
Der Befehl scp(secure copy) dient zum sicheren Kopieren von Dateien zwischen zwei Systemen eines Netzwerks. Es ähnelt in seiner Funktionalität dem rcp-Befehl, implementiert jedoch eine sichere Authentifizierung wie der ssh-Befehl. Mit diesem praktischen Befehl können Sie sowohl Dateien als auch Verzeichnisse auf entfernte Rechner kopieren.
$ scp FILE [email protected]:/some/dir
Der obige Befehl kopiert FILE in /some/dir des entfernten Systems Verzeichnis. Wenn der entfernte Host einen anderen SSH-Port anstelle von 22 überwacht, können Sie das -P verwenden Flag, um dies anzugeben.
$ scp -P 2222 FILE [email protected]:/some/dir
Wir empfehlen Ihnen, die Manpage von scp zu lesen, um zusätzliche Optionen und ihre Anwendungsfälle zu erkunden.
19. rsync
Das Dienstprogramm rsync dient zum effizienten Übertragen und Synchronisieren von Dateien zwischen zwei über ein Netzwerk verbundenen Systemen. Systemadministratoren verwenden es häufig, um Dateien von externen NAS-Servern auf ihren lokalen Computer zu übertragen. Es ist ein sehr schnelles und zuverlässiges Werkzeug zum Kopieren von Dateien zu und von entfernten Computern.
$ rsync -zvh backup.tar /tmp/backups/
Der obige Befehl synchronisiert eine Datei namens backup.tar mit dem temporären Verzeichnis. Es verwendet das -z Option zum Komprimieren der Dateidaten, -v um eine ausführliche Ausgabe zu erhalten, und -h menschenlesbare Ausgabe zu erhalten. Es ermöglicht auch den Zugriff über die Remote-Shell und den rsync-Daemon. Schlagen Sie in der Manpage nach, um mehr über ihre Verwendung zu erfahren.
20. sokat
Das Linux-Tool socat wird zum Aufbau zweier bidirektionaler Byteströme verwendet und ermöglicht eine sehr effiziente Übertragung von Daten zwischen ihnen. Der socat-Befehl ist einer der vielseitigsten Linux-Netzwerkbefehle und hat sehr unterschiedliche Anwendungsfälle.
$ socat SYSTEM:date STDIO
Dieser Befehl nimmt das aktuelle Systemdatum und gibt es auf der Standardeingabe aus.
$ socat - TCP:localhost:www,crnl
Der obige Befehl öffnet eine Webserver-Verbindung zum localhost und ruft eine Seite zum Terminal ab. Beachten Sie, wie die Portnummer als Dienstname übergeben wurde. Dies ist ein sehr robuster Befehl und unterstützt viele Kurzformen. Schauen Sie sich also ihre Manpage an, um sie effektiv zu beherrschen.
21. sftp
Der Befehl sftp wird zum Zugreifen auf, Übertragen und Verwalten von Dateien mithilfe des sicheren Dateiübertragungsprotokolls verwendet. Grundsätzlich erlaubt es Administratoren, FTP über eine sichere Shell zu verwenden. Wenn Sie ssh- und ftp-Befehle verwenden können, wird die Verwendung von sftp sehr einfach sein.
$ sftp [email protected]
Dieser Befehl öffnet eine sichere Verbindung und startet die FTP-Eingabeaufforderung. Es stellt die Verbindung auf dem Standard-SSH-Port (22) her. Da viele Systemadministratoren benutzerdefinierte Portnummern für ssh verwenden, um böswillige Benutzer abzuwehren, müssen Sie diese Portnummer übergeben, um sich mit solchen Systemen zu verbinden.
$ sftp -oPort=CUSTOM-PORT [email protected]
Lesen Sie die Manpage, um alle möglichen Optionen und ihre Verwendung zu erkunden.
22. sshfs
Der Befehl sshfs gehört wohl zu den nützlichsten Linux-Netzwerkbefehlen zum Mounten entfernter Dateisysteme. Dieser Befehl hat eine einfache Syntax, kann sich aber als vielseitiger Vorteil für moderne Systemadministratoren erweisen.
$ sshfs [email protected]:/some/dir /mountpoint
Der obige Befehl hängt das entfernte Dateisystem am angegebenen Einhängepunkt ein. Beachten Sie, dass der Einhängepunkt dem Benutzer gehören muss, damit dieser Befehl funktioniert. Das entfernte Dateisystem wird automatisch ausgehängt, wenn Sie die Verbindung schließen. Sie können es dauerhaft machen, indem Sie /etc/fstab bearbeiten Datei.
Netzwerkbefehle zum Verwalten von Netzwerkrichtlinien
Administratoren können mit einigen leistungsstarken Linux-Netzwerkbefehlen ganz einfach verschiedene Richtlinien für ihre Linux-Computer und -Netzwerke einrichten. Einige dieser Aufgaben umfassen unter anderem das Einrichten von Gerätetreibern, das Konfigurieren von Routing-Richtlinien, das Verwalten von Tunneln usw. In diesem Abschnitt werfen wir einen genaueren Blick auf einige der Befehle, die diese Aufgaben erleichtern.
23. Hostname
Der Befehl hostname ist ein praktisches Dienstprogramm, mit dem Administratoren Hostnamen oder DNS-Domänennamen abrufen oder festlegen können. Es wird oft verwendet, um dynamische Hosts einzurichten oder Informationen zu einem bestimmten Host zu erhalten. Wenn Sie einfach den Hostnamen in das Terminal eingeben, wird Ihr aktueller Hostname angezeigt.
$ hostname
Der nächste Befehl ersetzt Ihren aktuellen Hostnamen durch NEW_HOST_NAME .
$ hostname NEW_HOST_NAME
Das -i Flag kann verwendet werden, um die aktuelle IP-Adresse Ihres Hostnamens zu erhalten.
$ hostname -i
Es gibt weitere Optionen, die Sie mit diesem Befehl verwenden können. Konsultieren Sie die Manpage für detaillierte Informationen darüber.
24. iptables
Der Linux-Befehl iptables ist ohne Zweifel einer der am häufigsten verwendeten Linux-Netzwerkbefehle für Systemadministratoren. Das iptables-Programm ist ein User-Space-Dienstprogramm, mit dem Administratoren die iptable-Ketten konfigurieren und Firewalls einrichten können. Es ist ein De-facto-Tool zur Verhinderung von nicht autorisiertem oder böswilligem Datenverkehr in Ihrem Netzwerk.
$ sudo iptables -L -n -v
Der obige Befehl gibt die aktuellen iptables-Regeln aus, die von Ihrem System verwendet werden. Der nächste Befehl zeigt Ihnen, wie Sie alle eingehenden Anfragen von einer bestimmten IP blockieren.
$ sudo iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
Es gibt eine Fülle möglicher iptables-Befehle, und Sie können umfassende Details in diesem Beitrag finden.
25. Strecke
Sie können den route-Befehl verwenden, um die IP-Routing-Tabelle Ihres Systems anzuzeigen und zu bearbeiten. Es ermöglicht Administratoren, die Kernel-Routing-Tabellen einfach zu bearbeiten und gewünschte Funktionalitäten einzurichten. Dieser Befehl ist auch in Microsoft Windows-Systemen verfügbar und wird daher sehr häufig verwendet.
$ sudo route -n
Dieser Befehl listet die aktuelle IP-Routing-Tabelle auf. Der nächste Befehl zeigt Ihnen, wie Sie ein Standard-Gateway für Ihren Computer hinzufügen.
$ sudo route add default gw xxx.xxx.xxx.xxx
Sie können das neue Gateway mit dem vorherigen Befehl überprüfen. Auf der Handbuchseite finden Sie eine umfassende Liste aller verfügbaren Optionen.
26. graben
Mit dem Befehl dig können Administratoren das Domain Name System (DNS) abfragen für Netzwerk-Fehlerbehebung und andere Zwecke. Dig verwendet den Standard-DNS-Resolver Ihres Linux-Rechners und unterstützt Internationalized Domain Name (IDN) Abfragen. Das folgende Beispiel zeigt, wie einfach dig DNS-Eintragsinformationen für einen Host bereitstellt.
$ dig example.com
Verwenden Sie das +kurz Option, um eine prägnante Ausgabe zu erhalten.
$ dig example.com +short
Sie können mit MX auch verschiedene Arten von DNS-Ressourceneinträgen abfragen.
$ dig example.com MX
Lesen Sie die Manpage, um alle möglichen Anwendungsfälle und verfügbaren Optionen zu verstehen.
27. ip
Mit dem Befehl ip können Linux-Benutzer das IP-Dienstprogramm schnell nutzen, um Routing, Geräte, Richtlinien-Routing und Tunnel zu manipulieren. Es ist ein sehr dynamisches Tool und bietet zahlreiche robuste Optionen. Das folgende Beispiel zeigt, wie Sie mit diesem Tool die IP-Adressen aller Netzwerkschnittstellen anzeigen können.
$ ip addr
Sie können die Kurzform a verwenden , statt Adresse . Der nächste Befehl zeigt Ihnen, wie Sie Informationen nur für die aktuell ausgeführten Schnittstellen erhalten.
$ ip link ls up
Das nächste Beispiel zeigt, wie einer bestimmten Schnittstelle IP-Adressen zugewiesen werden.
$ ip a add 192.168.1.XXX/24 dev eth0
Dieser Befehl unterstützt eine Vielzahl zusätzlicher Optionen. Vergessen Sie also nicht, die Manpage zu lesen.
28. nslookup
Das Dienstprogramm nslookup ist ein leistungsstarkes Befehlszeilentool, mit dem Systemadministratoren Domänennamen oder IP-Adressenzuordnungen abrufen können, indem sie das Domain Name System abfragen. Es ist neben Windows und ReactOS in den meisten Unix-ähnlichen Systemen verfügbar. Der folgende Befehl zeigt die primäre Verwendung.
$ nslookup example.com
Es enthält Informationen wie den Domänennamen und die IP-Adresse des Hosts. Die nächsten Befehle zeigen alle verfügbaren DNS-Einträge.
$ nslookup -type=any example.com
Der folgende Befehl erzeugt einen MX-Eintrag für den angegebenen Host.
$ nslookup -type=mx google.com
Linux-Befehle für Netzwerkdiagnose und Fehlerbehebung
Die effektive Diagnose von Netzwerken ist für die meisten Systemadministratoren von größerer Bedeutung. Im folgenden Abschnitt listen wir einige nützliche Befehle für diesen Zweck auf.
29. netstat
Das Dienstprogramm netstat zeigt die Netzwerkverbindungen für das TCP-Protokoll, Routing-Tabellen, Netzwerkschnittstellenstatistiken, Masquerade-Verbindungen und Multicast-Mitgliedschaften an. Es ist einer der am häufigsten verwendeten Befehle für die Netzwerkdiagnose.
$ netstat -a | more
Der obige Befehl zeigt alle Netzwerk-Sockets unabhängig von ihrem aktuellen Status an. Verwenden Sie den nächsten Befehl, um nur TCP-Ports anzuzeigen.
$ netstat -at
Ersetzen Sie t mit u wenn Sie die UDP-Ports auflisten möchten. Der folgende Befehl zeigt nur die Listening-Ports an.
$ netstat -l
t anhängen oder du nach -l wenn Sie nur die lauschenden TCP/UDP-Ports auflisten möchten. Überprüfen Sie die Manpage für alle verfügbaren Optionen.
30. pingen
In Unix-ähnlichen Betriebssystemen wird der Ping-Befehl häufig verwendet, um die Erreichbarkeit eines Hosts in einem Internet Protocol-Netzwerk zu ermitteln. Dies ist ein universeller Netzwerkbefehl, der in praktisch jedem System verfügbar ist. Das nächste Beispiel zeigt die primäre Verwendung von Ping.
$ ping example.com
Dadurch werden weiterhin Pakete an den Host gesendet, bis Sie ihn manuell beenden. Verwenden Sie das -c Option, um die Anzahl der Pakete anzugeben.
$ ping -c 5 example.com
Die Größe der Pakete können Sie auch mit dem -s bestimmen Flagge.
$ ping -s 40 -i 2 -c 5 example.com
das -i Option wird verwendet, um das Zeitintervall von der Vorgabe 1 auf 2 Sekunden zu ändern.
31. Traceroute
Der Traceroute-Befehl wird normalerweise verwendet, um die Route anzuzeigen und Transitverzögerungen von Paketen über das Netzwerk zu messen. Es ist ein praktisches Tool für moderne Systemadministratoren und bietet viele wichtige Einblicke. Sie können schnell den Pfad bestimmen, den ein Paket von seiner Quelle zu seinem Ziel nimmt. Es ist auch nützlich, um Datenverluste festzustellen.
$ traceroute -4 10 example.com
Die -4 wird verwendet, um anzugeben, dass Sie IPv4 verwenden. Ersetzen Sie 4 durch 6 für IPv6-Pakete.
$ traceroute -g xxx.xxx.xxx.xxx example.com
Der obige Befehl leitet die Pakete durch das angegebene Gateway. Überprüfen Sie die Manpage für alle verfügbaren Optionen.
32. iftop
Das Dienstprogramm iftop ist einer der nützlichsten Linux-Netzwerkbefehle, der Echtzeit-Feedback für verschiedene Netzwerkparameter wie die Bandbreitennutzung liefert. Wenn Sie top oder htop verwendet haben, fühlt sich iftop ziemlich ähnlich an. Dieses Tool kann sich aufgrund seiner enormen Nützlichkeit als praktikable Bereicherung für moderne Linux-Benutzer erweisen.
$ sudo iftop
Wenn Sie diesen Befehl als sudo ausführen, erhalten Sie die aktuelle Bandbreitennutzung durch Ihre Netzwerkschnittstellen. Sie können angeben, welche Schnittstelle überwacht werden soll, indem Sie das -i eingeben Flagge.
$ sudo iftop -i wlp2s0
Es werden nur Informationen über die drahtlose Schnittstelle angezeigt. Es gibt noch viele andere Optionen.
33. nladen
Das Dienstprogramm nload ist ein weiteres Befehlszeilentool zur Überwachung Ihrer Netzwerkbandbreite. Es verfügt über einige vorteilhafte Fähigkeiten, wie z. B. die Anzeige der Gesamtmenge der übertragenen Daten und der minimalen/maximalen Bandbreitennutzung. Der direkte Aufruf von nload ohne Argumente zeigt die Bandbreitennutzung jeder verfügbaren Schnittstelle.
$ nload
Verwenden Sie die Geräte Optionen zum Spezifizieren einer bestimmten Schnittstelle, wie im folgenden Beispiel gezeigt.
$ nload devices wlp1s0
Sie können auch das Flag -t verwenden, um das Aktualisierungsintervall der Anzeige in Millisekunden einzustellen.
$ nload devices wlp1s0 -t 400
34. ss
Der Befehl ss liefert nützliche Informationen zu Netzwerk-Sockets. Es kann im Vergleich zu anderen Linux-Überwachungstools wie netstat viele detaillierte Informationen anzeigen. Der direkte Aufruf von ss vom Terminal zeigt eine riesige Liste aller Verbindungen, unabhängig von ihrem Status.
$ ss -l
Mit -l können Sie festlegen, dass nur die lauschenden Sockets aufgelistet werden Flagge. Das -t Flag wird verwendet, um nur TCP-Verbindungen anzuzeigen.
$ ss -lt
Verwenden Sie das -p Flag, um die Prozess-ID der aktiven Sockets zu erhalten, wie unten gezeigt.
$ ss -p
Weitere verfügbare Optionen finden Sie auf ihrer Manpage.
35. Whois
Das Whois-Dienstprogramm ist ein weit verbreitetes Linux-Tool, um sowohl Domänen- als auch IP-bezogene Informationen über ein Netzwerk zu erhalten. Es fungiert als Client für das Whois-Protokoll und stellt Informationen bereit, indem es die Whois-Datenbanken nach Netzwerkressourcen abfragt.
$ whois example.com
Der obige Befehl gibt detaillierte Netzwerkressourceninformationen über den angegebenen Host aus. Da dieser Befehl viele Informationen liefert, können Sie grep verwenden, um bestimmte Daten zu erhalten.
$ whois example.com | grep -i "Domain ID"
Der obige Befehl gibt die Zeilen aus, die die Domänen-ID des angegebenen Hosts enthalten. Sie können es auch für zusätzliche Informationen wie Nameserver und Domänenstatus verwenden.
Netzwerkbefehle zum Analysieren von Ressourcen
Die Analyse von Netzwerkpaketen ist sowohl für Systemadministratoren als auch für Penetrationstester äußerst wichtig. In diesem Abschnitt gehen wir einige grundlegende Linux-Befehle durch, die dies effizient ermöglichen.
36. tcpdump
Der De-facto-Kommandozeilen-Paketanalysator für Linux ist tcpdump. Es kann die Übertragung von TCP-Paketen über das Netzwerk sehr effektiv darstellen. Aufgrund seiner universellen Verfügbarkeit wird es häufig zum Erfassen und Analysieren von Netzwerkverkehr verwendet.
$ sudo tcpdump -D
Der obige Befehl zeigt an, welche Schnittstellen zum Erfassen von TCP-Paketen verfügbar sind. Mit dem folgenden Befehl können Sie ganz einfach Pakete von einer bestimmten Schnittstelle erfassen.
$ sudo tcpdump -i eth0
Dadurch werden nur Pakete erfasst, die über die Standard-Ethernet-Schnittstelle übertragen werden. Sehen Sie sich die Manpage an, um alle möglichen Optionen zu erkunden.
37. dhclient
Das Dienstprogramm dhclient ist ein robustes DHCP (Dynamic Host Configuration Protocol) Klient. Es wird häufig verwendet, um die IP-Adresse, die Subnetzmaske, das Standard-Gateway und die DNS-Serverinformationen eines Clients zu analysieren. Es ermöglicht Administratoren auch, die IP-Adresse einer bestimmten Netzwerkschnittstelle freizugeben und neue zu erhalten.
$ sudo dhclient eth0
Der obige Befehl erneuert die dynamisch zugewiesene IP-Adresse der Ethernet-Schnittstelle eth0 .
38. dstat
Das Dienstprogramm dstat ist ein äußerst lohnendes Befehlszeilentool zum Generieren von Systemressourcenstatistiken in Linux. Es bietet zahlreiche robuste Funktionalitäten und kann mit der Programmiersprache Python einfach erweitert werden. Es ist ein würdiger Ersatz für das veraltete vmstat-Dienstprogramm.
$ dstat
Wenn Sie diesen Befehl ohne Optionen ausführen, erhalten Sie eine Echtzeitanzeige der Systemressourcenstatistiken. Der nächste Befehl gibt die CPU-Auslastung, den Prozess mit der meisten CPU-Nutzung und den Prozess mit dem meisten RAM aus.
$ dstat -c --top-cpu --top-mem
Konsultieren Sie die Manpage für weitere verfügbare Optionen.
39. thai
Das Dienstprogramm Wireshark gehört zu den funktionsreichsten Paketanalysatoren. Seine Fähigkeiten übertreffen tcpdump bei weitem und werden in der Forensik häufig eingesetzt. Sie können es einfach über Ihren Paketmanager installieren. Das Befehlszeilenpaket heißt tshark.
$ sudo tshark -D
Dadurch werden alle verfügbaren Schnittstellen aufgelistet, die zum Erfassen des Netzwerkverkehrs verwendet werden können. Der nächste Befehl zeigt, wie Daten mit der Ethernet-Schnittstelle eth0 erfasst werden .
$ sudo tshark -i eth0
40. hping3
Der Befehl hping3 wird zum Aufrufen des Dienstprogramms hping verwendet. Es ist ein leistungsstarker, moderner Paketanalysator, der TCP-Pakete sehr effizient erfassen und analysieren/zusammenstellen kann. Es ist auf den meisten Unix-Systemen verfügbar, einschließlich Linux und BSD.
# sudo hping3
Es startet die interaktive hping3-Sitzung, in der Sie Befehle eingeben können. Der nächste Befehl erfasst den TCP-Verkehr von der eth0-Schnittstelle.
> hping recv eth0
Sie können hping auch außerhalb seiner interaktiven Shell verwenden. Konsultieren Sie die Manpage, um zu erfahren, wie das geht.
Abschlussgedanken
Die robusten Netzwerkfähigkeiten von Linux haben maßgeblich zu seinem heutigen Erfolg beigetragen. Ganz gleich, welche Art von Netzwerktool Sie möchten, Linux ist für Sie da. Die Fülle an Linux-Netzwerkbefehlen kann es jedoch vielen Benutzern ziemlich schwer machen, das richtige Tool für sich auszuwählen. That’s why our editors took this liberty of pointing out these 40 useful commands for you. You can find at least one tool for any networking activity. Hopefully, we were able to provide the essential insights you were looking for. Leave us a comment if you want to explore some commands in more detail.