Qual è il modo più semplice per inviare un file?

4

Qual è il modo più semplice per inviare un file:

  • da una macchina Ubuntu,
  • a un altro utente di Ubuntu (se anche agli altri ancora meglio) che è fuori dalla tua rete locale,
  • tramite un trasferimento di file crittografato,
  • utilizzando solo software gratuito e open source,
  • preferibilmente non dipendenti da terze parti come le app cloud dove devi caricare il file,
  • preferibilmente non rivela il tuo indirizzo IP e non rende la tua macchina in alcun modo più vulnerabile al destinatario del file.

Come impostarlo rapidamente?

    
posta Strapakowsky 15.10.2011 - 13:38

1 risposta

2

I tuoi requisiti # 5 (no storage di terze parti / cloud) e # 6 (no Divulgazione di IP / hostname) sono in conflitto reciproco: trasferire un file in un computer remoto, o fai una connessione diretta o no. Se lo fai, il terminale remoto avrà il tuo indirizzo IP (solo a causa di il modo in cui TCP / IP funziona); se non lo fai, allora per ipotesi lo sei inoltro su una terza parte per fare il trasferimento e devono memorizzare i tuoi dati.

Detto questo, ci sono alcune approssimazioni alla tua richiesta.

F * EX: utilizzo del trasferimento di terze parti basato sul Web

Il server F * EX è nato esattamente per questo scopo. Dalla descrizione del pacchetto fex :

  

F * EX (Frams's Fast File EXchange) è un servizio che può essere utilizzato per consentire agli utenti ovunque su Internet di scambiare file molto grandi rapidamente e    convenientemente.

     

Il mittente carica il file sul server F * EX e il destinatario riceve automaticamente un'e-mail di notifica con un URL di download.

     

Funzioni principali di F * EX:

     
  • trasferimento di file di dimensioni file praticamente illimitate
  •   
  • mittente e destinatario hanno bisogno solo di un programma di posta elettronica e di un browser web (di qualsiasi tipo, non devono installare alcun software)   [...]
  •   
  • senza manutenzione: non è necessaria alcuna amministrazione oltre alla creazione di nuovi account F * EX
  •   
  • più destinatari richiedono solo una copia memorizzata   
  • F * EX utilizza HTTP e non richiede tunnel firewall
  •   
  • client di shell forniti per gli utenti della riga di comando: fexsend e fexget . ( pacchetto fex-utils )
  •   

Per quanto ho capito, F * EX non esegue la crittografia in modo nativo, ma tu puoi semplicemente crittografare il file che vuoi inviare con GPG.

Il server F * EX è interamente open-source, quindi basta installare ed eseguire su un server di cui ti fidi.

La F EX homepage spiega in dettaglio come FEX si confronta con altri servizi e protocolli di trasferimento file.

sendfile : trasferimento di file asincrono su computer UNIX

Il comando sendfile è stato in giro per circa 10 anni: lo installate e l'accompagnamento daemon sia sul lato invio che su quello ricevente, e poi su il trasferimento è facile come digitare:

sendfile a.file [email protected]

Inoltre, sendfile può crittografare automaticamente il file utilizzando GPG (cerca le opzioni -pe e -ps ).

Poiché ciò rende una connessione diretta, tuttavia:

  • il computer ricevente deve essere attivo e funzionante a un certo punto,
  • dovrà essere in grado di accettare connessioni sulla porta sendfile , il che significa che dovrebbe essere raggiungibile tramite un IP pubblico
  • può registrare l'indirizzo IP dei mittenti

sendfile è stato scritto dagli stessi autori di F * EX (vedi sopra), e spiegano i motivi per cui hanno scelto di passare a una terza parte basata su HTTP servizio sulla homepage di sendfile

fai-da-te: usa nc

È relativamente facile eseguire il trasferimento di file usando solo netcat .

Sul lato che riceve , esegui:

nc -l 9999 > myfile

Dopodiché, sul lato invio , esegui:

nc otherhost 9999 < myfile

Come al solito, dovresti crittografare il file con GPG prima di inviarlo (o tu può farlo al volo con una pipa, se si è sicuri con il conchiglia). Puoi sostituire 9999 con qualsiasi altra porta valida numero (ad esempio, per effettuare più trasferimenti contemporaneamente).

Svantaggi:

  • coordinamento: è necessario emettere i due comandi sui due estremi nell'ordine corretto, pertanto sia il mittente sia il destinatario devono essere online contemporaneamente e devono coordinarsi tra loro, ad esempio una chat o una linea telefonica.
  • dovrà essere in grado di accettare connessioni sulla porta 9999, il che significa che dovrebbe essere raggiungibile attraverso un IP pubblico
  • il destinatario può registrare il tuo indirizzo IP
risposta data Riccardo Murri 15.10.2011 - 16:03

Leggi altre domande sui tag