nc (netcat) în Linux / Bash

Rețea și transfer date OpenBSD netcat (Debian/Ubuntu), Nmap ncat (Fedora/RHEL)

Deschide conexiuni TCP sau UDP brute: verifici dacă un port răspunde, asculți pe un port sau trimiți date rapid.

Sintaxă comandă
nc [opțiuni] GAZDĂ PORT
nc -l PORT

Ce face nc (netcat)

nc (netcat) citește și scrie date printr-o conexiune de rețea, fără protocol peste ea. Este folosit mai ales pentru diagnoză: verifici dacă un port este deschis de pe mașina ta (dincolo de firewall-uri), testezi manual un serviciu text sau pornești un ascultător temporar.

Există mai multe variante cu opțiuni ușor diferite: pe Debian și Ubuntu este de obicei netcat-openbsd, pe Fedora și RHEL comanda nc este ncat din proiectul Nmap. Exemplele de mai jos folosesc varianta OpenBSD; verifică man nc pe sistemul tău.

Opțiuni și argumente

Opțiune / Parametru Descriere
-z Doar verifică dacă portul acceptă conexiuni, fără să trimită date (OpenBSD).
-v Mesaje detaliate (de exemplu „succeeded” sau motivul eșecului).
-w SECUNDE Timp maxim de așteptare pentru conexiune.
-u Folosește UDP în loc de TCP.
-l Ascultă pe portul dat, ca un mic server.
-k Cu -l: rămâne pornit și după ce clientul se deconectează.

Exemple

Exemplul 1: Este deschis portul SSH?

Mesajul vine pe stderr; codul de ieșire 0 înseamnă că portul a răspuns.

nc -zv -w 3 203.0.113.10 22

Ieșire în terminal

Connection to 203.0.113.10 22 port [tcp/ssh] succeeded!

Exemplul 2: Mai multe porturi deodată

Portul 8080 nu are niciun serviciu pornit, așa că serverul refuză conexiunea.

nc -zv -w 3 203.0.113.10 80 443 8080

Ieșire în terminal

Connection to 203.0.113.10 80 port [tcp/http] succeeded!
Connection to 203.0.113.10 443 port [tcp/https] succeeded!
nc: connect to 203.0.113.10 port 8080 (tcp) failed: Connection refused

Exemplul 3: Transfer rapid de fișier între două mașini din rețeaua locală

Pe mașina care primește pornești ascultătorul, apoi trimiți fișierul de pe cealaltă. Datele nu sunt criptate: folosește doar în rețele de încredere, altfel scp.

# pe 192.168.1.20 (primește):
nc -l 9000 > backup.tar.gz
# pe calculatorul Anei (trimite):
nc -N 192.168.1.20 9000 < backup.tar.gz
# înapoi pe 192.168.1.20:
ls -lh backup.tar.gz

Ieșire în terminal

-rw-r--r-- 1 ana ana 48M Oct 25 11:02 backup.tar.gz

Greșeli frecvente

  • Copierea unei comenzi scrise pentru altă variantă de netcat: de exemplu nc -l -p 9000 (netcat tradițional) față de nc -l 9000 (OpenBSD).
  • Trimiterea de parole sau date personale prin nc: conexiunea este necriptată.

Comenzi înrudite

  • ss: Utilitar modern și ultra-rapid pentru investigarea socket-urilor și a conexiunilor de rețea.
  • curl: Transferă date către sau de la un server folosind protocoale web (HTTP, HTTPS, FTP, REST API).
  • traceroute / mtr: Arată ruta pachetelor până la un server, router cu router, și unde apar întârzieri sau pierderi.
  • ping: Testează conectivitatea de rețea și măsoară timpul de răspuns (latența) către o adresă IP sau domeniu.