> Die vollständige Liste der Artikel steht in [llms.txt](https://docs.f3cloud.com/llms.txt). Jede Seite gibt es auch als Markdown, dazu einfach .md an die Adresse anhängen. Diese Seite als Markdown: [https://docs.f3cloud.com/de/technical-docs/nc-command-guide.md](https://docs.f3cloud.com/de/technical-docs/nc-command-guide.md).

# Der Befehl nc unter Linux – netcat für Netzwerkverbindungen nutzen

So verwenden Sie den Befehl nc (netcat) unter Linux. Ports prüfen und abhören, Dateien übertragen, einfacher Webserver, Remote-Shell und die wichtigsten Optionen.

### Einführung

In der Welt der Linux-Administration wird netcat (nc) oft als „Schweizer Taschenmesser“ für die Arbeit mit Netzwerken bezeichnet. Das kompakte, aber leistungsfähige Werkzeug sendet und empfängt Daten über die Protokolle TCP und UDP. Auch wenn der Funktionsumfang von netcat begrenzt wirken mag, eignet es sich hervorragend, um Verbindungen zu testen, Netzwerkdienste zu debuggen und einfache Netzwerkkommunikation aufzubauen.

### Was der Befehl kann

Netcat ist ein universelles Netzwerkwerkzeug, das in vielen Szenarien der Systemadministration und Entwicklung zum Einsatz kommt. Das sind die wichtigsten Möglichkeiten:

1. **Arbeit mit TCP/UDP** – Verbindungen über beide Protokolle aufbauen und verwalten, um Netzwerkdienste zu testen.
2. **Überwachung von Ports** – bestimmte Ports abhören, um eingehende Verbindungen zu analysieren.
3. **Datenübertragung** – Informationen direkt über das Netzwerk zwischen Systemen übertragen.
4. **Chatfunktion** – ein einfaches System zum Austausch von Textnachrichten zwischen Hosts einrichten.
5. **Portscans** – offene Netzwerkdienste auf entfernten Systemen aufspüren.
6. **Tunneling** – Netzwerkverkehr über alternative Ports oder Hosts umleiten.
7. **Proxy-Funktionen** – Netzwerkoperationen in einfacher Form über Proxyserver abwickeln.
8. **Test-Webserver** – schnell einfache HTTP-Endpunkte zum Testen bereitstellen.

### Die wichtigsten Optionen des Befehls

Für die effektive Arbeit mit netcat sollten Sie die wichtigsten Kommandozeilenparameter kennen:

* `-6` – IPv6-Unterstützung aktivieren (standardmäßig gilt -4 für IPv4)
* `-h` – Hilfe zu den verfügbaren Parametern ausgeben
* `-i` – Verzögerung zwischen Operationen festlegen (in Sekunden)
* `-l` – Modus zum Abhören eines Ports aktivieren
* `-N` – Verbindung nach der Dateiübertragung automatisch beenden
* `-n` – DNS-Auflösung abschalten, um direkt mit IP-Adressen zu arbeiten
* `-P user_name` – Benutzer für die Proxyverbindung angeben
* `-x address:port` – Adresse und Port des Proxys festlegen
* `-p port` – Port ausdrücklich angeben (wird meist automatisch bestimmt)
* `-U` – UNIX-Sockets für die Kommunikation zwischen Prozessen verwenden
* `-u` – auf das Protokoll UDP statt TCP umschalten
* `-v` – ausführliche Ausgabe einschalten
* `-w` – Timeout für die Verbindung in Sekunden festlegen
* `-z` – scannen, ohne Daten zu übertragen

### Ports prüfen

Eine der Hauptaufgaben von netcat ist es, die Erreichbarkeit von Netzwerkdiensten zu prüfen. Verwenden Sie dafür die Kombination der Parameter -vz:

```bash
$ nc -vz 192.168.31.247 8080

$ nc -vz 192.168.31.247 1-1000 2>&1 | grep succeeded
```

<figure><img src="https://docs.f3cloud.com/img/image%20(114).png" alt=""><figcaption><p>Screenshot mit einem Beispiel für die Ausführung des Befehls</p></figcaption></figure>

Um UDP-Ports zu prüfen, fügen Sie den Parameter -u hinzu:

```bash
$ nc -vzu 192.168.31.247 1-1000 2>&1 | grep succeeded
```

Beachten Sie, dass UDP-Ports wegen der Besonderheiten des Protokolls immer als erreichbar angezeigt werden.

### Ports abhören

Um Netzwerkaktivität zu überwachen, nutzen Sie den Abhörmodus:

```bash
$ nc -nlv 8080
```

<figure><img src="https://docs.f3cloud.com/img/image%20(116).png" alt=""><figcaption><p>Screenshot mit einem Beispiel für das Abhören eines Ports</p></figcaption></figure>

> **Achtung.**
>
> Achten Sie bei TCP darauf, dass der Port frei ist – sonst erhalten Sie den Fehler „Already in use“. Denken Sie außerdem daran, dass niedrige Ports (< 1024) root-Rechte erfordern.

### Dateien übertragen

Mit netcat lässt sich ein einfacher Datenaustausch zwischen Systemen einrichten. Beginnen wir mit einem einfachen Beispiel – einem Textchat.

Auf der empfangenden Seite:

```bash
$ nc -lp 8080
```

<figure><img src="https://docs.f3cloud.com/img/image%20(117).png" alt=""><figcaption></figcaption></figure>

Auf der sendenden Seite:

```bash
$ nc 0.0.0.0 8080
```

Bei der Übertragung von Dateien funktioniert es genauso. Auf der empfangenden Seite:

```bash
$ nc -l 8080 > paste.txt
```

Auf der sendenden Seite:

```bash
$ nc -N 0.0.0.0 8080 < copy.txt
```

### Einfacher Webserver

Mit netcat können Sie einen einfachen HTTP-Server aufsetzen. Der Funktionsumfang ist zwar begrenzt, für schnelle Tests ist das aber praktisch:

```bash
$ while true; do echo -e "HTTP/1.1 200 OK\n\n$(cat index.html)" | nc -l -w 1 8080; done
```

<figure><img src="https://docs.f3cloud.com/img/image%20(118).png" alt=""><figcaption></figcaption></figure>

Der Parameter -w 1 sorgt dafür, dass die Verbindung automatisch geschlossen wird, falls der Browser das nicht tut.

### Remote-Shell

Netcat lässt sich auch für den Fernzugriff auf ein System nutzen. Der alte Parameter -e wurde zwar aus Sicherheitsgründen entfernt, es gibt aber alternative Methoden.

Auf der empfangenden Seite:

```bash
$ nc -lvnp 8080
```

Auf der sendenden Seite:

```bash
$ rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | sh -i 2>&1 | nc 0.0.0.0 8080 >/tmp/f
```

<figure><img src="https://docs.f3cloud.com/img/image%20(119).png" alt=""><figcaption></figcaption></figure>

> **Wichtig.**
>
> Seien Sie mit Fernzugriff vorsichtig – er ist ein möglicher Angriffsweg. Richten Sie immer eine Firewall ein und halten Sie sich an die Grundsätze der Sicherheit.

### Weitere Informationen

Vollständige Informationen zu den Möglichkeiten von netcat erhalten Sie mit:

```bash
man nc
```

> **Hinweis.**
>
> Denken Sie bei der Arbeit mit Netzwerkwerkzeugen an die Sicherheit. Dokumentieren Sie alle Änderungen und prüfen Sie regelmäßig die Einstellungen Ihres Netzwerkschutzes.

### Unsere Ressourcen

**Telegram-Kanal:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)
\
**Hosting-Website:** [https://f3cloud.com](https://f3cloud.com/de)
