Iedere Unix-systeembeheerder heeft wel Netcat in zijn gereedschapskist zitten. Het wordt ook wel eens het "Zwitsers zakmes" voor netwerktaken genoemd. Je kunt er willekeurige gegevens mee over netwerkverbindingen lezen en schrijven, wat het heel geschikt maakt voor het debuggen van netwerken. De originele netcat wordt niet meer onderhouden, maar populaire implementaties zijn tegenwoordig GNU Netcat, OpenBSD's nc en Ncat, onderdeel van Nmap.

Meerdere computers

Netcat is ideaal om gegevens tussen twee computers uit te wisselen. Wil je gegevens van één computer naar meerdere andere computers doorsturen, dan kan dat, maar dat vereist een combinatie van commando's met netcat, tee, pipes en redirections. Het programma nettee zorgt voor gemakkelijker te onthouden en te typen commando's voor dit scenario. Het eerste voorbeeld op de website van nettee toont hoe je een image van machine A naar machines B, C, D, E en F verstuurt door de gegevensstromen te daisy-chainen:

A:~# nettee -in IMAGE -next B -v 31

B:~# nettee -next C >/dev/hda

C:~# nettee -next D >/dev/hda

D:~# nettee -next E >/dev/hda

E:~# nettee -next F >/dev/hda

F:~# nettee >/dev/hda

Het bestand IMAGE op machine A wordt zo naar machine B verstuurd, waar het nettee-proces de gegevensstroom aanneemt en niet alleen naar /dev/hda wegschrijft, maar tegelijk ook voortstuurt naar machine C, die hetzelfde doet, enzovoort, tot machine F de gegevensstroom naar zijn harde schijf wegschrijft. De nettee-processen mogen in willekeurige volgorde opgestart worden. De optie -v 31 logt alle boodschappen op de eerste computer, zodat de verzender het onmiddellijk te zien krijgt als er iets misloopt. Poortnummers kunnen met de optie -p opgegeven worden, maar als deze optie ontbreekt gebruikt nettee standaard poort 9997.

Verschillende subnetten

De verzender kan ook meer dan één ontvanger opgeven, bijvoorbeeld met -next B,C,D,E,F. Dit is interessant als deze machines op verschillende subnetten zitten en via verschillende netwerkadapters bereikbaar zijn. En met hosts tussen rechte haken kun je failovers opgeven: [B,C,D],E,F betekent bijvoorbeeld dat de machine zijn gegevens naar B, E en F stuurt. Als het B niet kan bereiken, probeert het in plaats daarvan C uit en als het die ook niet kan bereiken stuurt het de gegevens naar D, E en F. Je moet dan wel met de optie -connf het aantal seconden opgeven dat nettee probeert verbinding te maken met een host.

Lees de man-pagina van nettee voor meer informatie over de talloze opties die het ondersteunt. Het programma toont bovendien help met de optie -h, voorbeelden met de optie -hexamples en de mogelijke foutenstatuscodes met de optie -herrors. Naast de eenvoudiger syntax is vooral de foutenafhandeling van nettee een groot voordeel ten opzichte van de combinatie van netcat en tee.