Inviare dati tra computer con Netcat: guida pratica

Netcat è un potente strumento a riga di comando in grado di leggere e scrivere dati attraverso una connessione di rete tramite TCP/IP. È comunemente utilizzato per i relè, il trasferimento di file, la scansione delle porte e molto altro. Sebbene le origini di Netcat derivino dai mondi Unix e Linux, è integrato anche in macOS, e utilizzeremo l’utility nc come un modo semplice per inviare dati e altro testo su due computer collegati in rete.

Utilizzare Netcat per inviare dati con una relazione client-server è piuttosto semplice e offre un’alternativa potenzialmente più veloce rispetto alla tradizionale condivisione di file, specialmente per quegli utenti che preferiscono rimanere nella riga di comando mentre inviano e ricevono dati, dove la connessione tramite SSH o SFTP non è pratica.

È importante notare che Netcat non richiede login o autenticazione; l’unico requisito è che il client conosca l’indirizzo IP del server e il numero della porta di ascolto. Questo, ovviamente, aumenta il rischio di abuso della sicurezza. Pertanto, l’uso di Netcat per l’invio di dati e testo è generalmente consigliato per utenti avanzati o per utilizzo esclusivo su reti locali protette, dove ci sono pochi rischi. In situazioni in cui la sicurezza è fondamentale, è meglio optare per SSH.

Per comodità, faremo riferimento al computer 1 che ascolta con Netcat come «Server» e al computer 2 che invia i dati al computer 1 come «Client».

Imposta Netcat per Ascoltare sul Server (Computer 1) e Porta

Avviamo Netcat affinché ascolti sulla porta 2999 e reindirizzi qualsiasi dato ricevuto in un file denominato «received.txt» con il seguente comando:

nc -l 2999 > received.txt

Prima di passare al client, ti consigliamo di annotare l’indirizzo IP del tuo Mac sulla rete locale. Puoi ottenerlo dal pannello di controllo della Rete, oppure se sei già nel Terminale, puoi utilizzare il comando:

ipconfig getifaddr en0

I moderni Mac con Wi-Fi useranno solo en0, mentre i Mac con Ethernet e Wi-Fi potrebbero utilizzare en1. Se non visualizzi nulla, prova l’altra interfaccia per ottenere l’IP LAN. Supponiamo che l’IP del Mac sia 192.168.1.101; è probabile che il tuo sia diverso. Ne avrai bisogno sul computer client per inviare i dati, argomento che tratteremo tra poco.

Trasferire Dati dal Client (Computer 2) al Server di Ascolto

Ora, sul client da cui desideri inviare i dati, puoi utilizzare un comando simile al seguente. Useremo cat per inviare un file di testo al server di Netcat in ascolto, ma puoi reindirizzare qualsiasi tipo di dato:

cat sendthisdataover.txt | nc 192.168.1.101 2999

Affinché questo funzioni correttamente, assicurati di inserire il tuo indirizzo IP del server e di specificare il file o il testo che desideri inviare.

Se la rete locale è anche solo minimamente veloce, i dati dovrebbero arrivare rapidamente, se non istantaneamente. Una volta completato il trasferimento, entrambe le estremità della connessione si fermeranno, e il server interromperà l’ascolto, chiudendo quindi la porta. Questo rende Netcat efficace per invii una tantum di dati, come file di log o documenti di testo di grandi dimensioni, ma non è necessariamente pratico per il trasferimento di molti file contemporaneamente.

Come già accennato, puoi reindirizzare quasi tutti i dati, quindi se si tratta dell’output di un’altra app, tail, cat o persino dati copiati direttamente dagli appunti con pbcopy e pbpaste, verranno trasferiti tramite Netcat.

Vale la pena notare che esistono metodi più convenienti per condividere gli appunti tra Mac o tra un Mac e macchine Linux o Windows. In tali situazioni, è consigliabile utilizzare strumenti gratuiti come Teleport per la condivisione di input Mac-to-Mac o Synergy se utilizzi una piattaforma mista tra Mac e PC. Entrambi consentono di condividere i dati degli appunti insieme ai dispositivi di input come mouse e tastiera.

Per la cronaca, mentre questa dimostrazione è mostrata su due Mac con macOS, non c’è motivo per cui non si possa usare Netcat per inviare dati tra un computer Mac e Linux, o viceversa.

Ci sono un sacco di altri utilizzi interessanti per Netcat là fuori, e se hai dei preferiti, faccelo sapere nei commenti!

Novità e Utilizzi Aggiornati nel 2024

Nel 2024, Netcat continua a rimanere uno strumento indispensabile per gli sviluppatori e gli amministratori di rete. Le sue capacità si sono espanse con l’integrazione di nuove funzionalità e l’ottimizzazione delle prestazioni. Ad esempio, grazie a miglioramenti nella gestione delle connessioni, è ora più facile stabilire comunicazioni sicure e gestire il trasferimento di dati anche in condizioni di rete non ottimali.

Inoltre, la crescente popolarità delle applicazioni di containerizzazione ha portato a un utilizzo ancora più ampio di Netcat nelle architetture microservizi. Gli sviluppatori possono ora utilizzare Netcat per testare le comunicazioni tra i diversi microservizi in modo semplice e veloce, rendendo il processo di debugging molto più fluido.

Infine, la comunità open source ha continuato a contribuire a Netcat, portando a nuove varianti e fork del progetto originale che offrono funzionalità avanzate come crittografia e tunneling. Queste novità rendono Netcat non solo uno strumento per il trasferimento di dati, ma anche una risorsa preziosa per la sicurezza e l’amministrazione di rete.

ItBookMac