Invia dati attraverso computer collegati in rete con Netcat utilizzando la riga di comando
Netcat è un potente strumento a riga di comando in grado di leggere e scrivere dati attraverso una connessione di rete tramite TCP / IP, è comunemente usato per i relè, il trasferimento di file, la scansione delle porte, tra le altre cose. Sebbene le origini di netcat derivino dai mondi unix e linux, netcat è anche integrato in Mac OS X e utilizzeremo l'utility nc come un modo semplice per inviare dati e altro testo su due computer collegati in rete.
Usando netcat per inviare dati con una relazione client e server abbastanza semplice, offre un'alternativa potenzialmente più veloce alla tradizionale condivisione di file quando gli utenti preferiscono rimanere nella riga di comando mentre inviano e ricevono dati e dove la connessione tramite SSH o SFTP non è t pratico.
Si noti che netcat non richiede login o autenticazione, l'unico requisito è che il client sia a conoscenza dell'indirizzo IP del server e del numero della porta di ascolto. Ciò ovviamente aumenta il potenziale di abuso della sicurezza, quindi l'uso di netcat per l'invio di dati e il testo è generalmente preferibile per gli utenti avanzati o per l'utilizzo esclusivo dietro una rete locale protetta in cui vi sono pochi rischi. Le situazioni in cui la sicurezza è importante da sottolineare sarebbe meglio usare SSH.
Per comodità, faremo riferimento al computer 1 che ascolta con netcat come "Server" e faremo riferimento al computer 2 che invia i dati al computer 1 come "client".
Imposta Netcat su Listen on Server (Computer 1) e Porta
Lanceremo netcat e lo ascolterà sulla porta 2999, quindi reindirizzare qualsiasi dato ricevuto in un file denominato "received.txt" con la seguente stringa di comando:
nc -l 2999 > received.txt
Prima di chiamarlo spostato sul client, ti consigliamo di avere l'indirizzo IP Mac sulla rete locale. Puoi ottenerlo dal pannello di controllo della Rete, o dal momento che sei già al Terminale, tramite la riga di comando con la seguente sintassi:
ipconfig getifaddr en0
I moderni Mac con Wi-Fi useranno solo en0, i Mac con ethernet e wifi potrebbero usare en1. Se non si visualizza nulla, provare l'altra interfaccia per ottenere l'IP LAN. Supponiamo che questo IP Mac sia segnalato come "192.168.1.101", ovviamente è probabile che il tuo sia diverso. Ne avrai bisogno sul computer client per inviare i dati, che tratteremo in seguito.
Trasferire i 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 scaricare un file di testo dalla rete al server di netcat in ascolto, ma puoi reindirizzare tutto ciò che vuoi:
cat sendthisdataover.txt | nc 192.168.1.101 2999
Affinché questo funzioni correttamente, accertarsi di inserire il proprio indirizzo IP dal server e inserire il file o il testo appropriato che si desidera inviare.
Supponendo che la rete locale sia anche marginalmente veloce, i dati dovrebbero arrivare abbastanza velocemente se non istantaneamente. Una volta completato il trasferimento dei dati, entrambi i lati della connessione cesseranno e il server interromperà l'ascolto, quindi chiuderà la porta. Ciò lo rende efficace per l'invio una tantum di dati come i file di registro o un documento di testo di grandi dimensioni, ma non è necessariamente pratico per lo spostamento su molti file.
Come già accennato, è possibile reindirizzare quasi tutti i dati, quindi se si tratta dell'output di un'altra app, tail, cat o anche scaricati direttamente dagli appunti con pbcopy e pbpaste, verrà trasferito tramite netcat.
Va notato che ci sono modi più convenienti per condividere un blocco appunti tra Mac o tra un Mac e Linux o macchine Windows, e in quelle situazioni è meglio usare strumenti gratuiti come Teleport per la condivisione di input Mac-to-Mac o Utilità Synergy gratuita se utilizzi una piattaforma incrociata tra Mac e PC. Entrambi consentono a un utente di condividere i dati degli appunti così come i dispositivi di input come mouse e tastiera.
Per la cronaca, mentre questa dimostrazione è mostrata su due Mac con OS X, 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 grandi usi per netcat là fuori, se hai dei preferiti, faccelo sapere nei commenti!