Invia dati tra computer in rete con Netcat utilizzando la riga di comando

Anonim

Netcat è un potente strumento a riga di comando in grado di leggere e scrivere dati attraverso una connessione di rete utilizzando TCP/IP, è comunemente usato per relay, trasferimento di file, scansione delle porte, tra le altre cose. Sebbene le origini di netcat provengano dai mondi unix e linux, netcat è integrato anche in Mac OS X e utilizzeremo l'utilità nc come un modo semplice per inviare dati e altro testo tra due computer in rete.Utilizzando netcat per inviare dati con una relazione client e server abbastanza semplice, offre un' alternativa potenzialmente più rapida alla tradizionale condivisione di file quando gli utenti preferiscono rimanere nella riga di comando durante l'invio e la ricezione dei 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 per un uso improprio della sicurezza, quindi l'utilizzo di netcat per inviare dati e testo è generalmente riservato agli utenti avanzati o per l'uso esclusivamente dietro una rete locale protetta dove ci sono pochi rischi. Nelle situazioni in cui è importante sottolineare la sicurezza sarebbe meglio usare SSH.

Per semplicità, faremo riferimento al computer 1 che è in ascolto con netcat come "Server", e faremo riferimento al computer 2 che invia i dati al computer 1 come "client".

Imposta Netcat in ascolto su server (computer 1) e porta

Lanceremo netcat e lo faremo ascoltare sulla porta 2999, quindi reindirizzeremo tutti i dati ricevuti a un file chiamato "received.txt" con la seguente stringa di comando:

nc -l 2999 > ricevuto.txt

Prima di chiamarlo fatto un passaggio al client, ti consigliamo di avere l'indirizzo IP del 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 Mac moderni con solo Wi-Fi useranno en0, i Mac con ethernet e wifi possono usare en1. Se uno non mostra nulla, prova l' altra interfaccia per ottenere l'IP della LAN. Supponiamo che questo IP Mac sia riportato come "192.168.1.101", ovviamente il tuo potrebbe variare. Ne avrai bisogno sul computer client per inviare i dati, che tratteremo in seguito.

Convoglia i dati dal client (computer 2) al server in ascolto

Ora sul client da cui vuoi inviare i dati, puoi usare un comando come il seguente. Useremo cat per eseguire il dump di un file di testo sulla rete al server netcat in ascolto, ma puoi reindirizzare praticamente tutto ciò che desideri:

cat sendthisdataover.txt | nc 192.168.1.101 2999

Affinché funzioni correttamente, assicurati di inserire il tuo indirizzo IP dal server e cat il file o il testo appropriato che desideri inviare.

Supponendo che la rete locale sia anche solo 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 smetterà di ascoltare, quindi chiuderà la porta. Ciò lo rende efficace per l'invio una tantum di dati come file di registro o un documento di testo di grandi dimensioni, ma non è necessariamente pratico per spostare molti file.

Come già accennato, puoi eseguire il pipe over di quasi tutti i dati, quindi sia che si tratti dell'output di un' altra app, tail, cat o anche scaricato direttamente dagli appunti con pbcopy e pbpaste, verrà trasferito netcat.

Va notato che ci sono modi più convenienti per condividere gli appunti tra Mac o tra un Mac e macchine Linux o Windows, e in quelle situazioni è meglio usare strumenti gratuiti come Teleport per Mac- condivisione dell'input su Mac o l'utilità gratuita Synergy se stai passando da una piattaforma all' altra tra Mac e PC. Entrambi consentono a un utente di condividere i dati degli appunti e dispositivi di input come mouse e tastiera.

Per la cronaca, anche se questa dimostrazione viene mostrata su due Mac con OS X, non c'è motivo per cui tu non possa usare netcat per inviare dati tra una macchina Mac e una Linux, o viceversa.

Ci sono tantissimi altri ottimi usi per netcat là fuori, se ne hai uno preferito, faccelo sapere nei commenti!

Invia dati tra computer in rete con Netcat utilizzando la riga di comando