Quante volte vi siete trovati nella condizione di dover scambiare velocemente un file con un collega o un collaboratore collegato alla rete locale? PairDrop è un software libero (licenza GNU GPLv3) che non salva nulla su server esterni, non richiede account e non utilizza database: la comunicazione avviene esclusivamente tra i dispositivi coinvolti, senza scomodare il protocollo SMB (o l’implementazione libera Samba) né i servizi cloud.
Cos’è e come funziona PairDrop
PairDrop è una soluzione moderna, leggera e open source progettata per il trasferimento di file e messaggi tra dispositivi, senza la necessità di software dedicati o registrazioni.
Basato su WebRTC, PairDrop sfrutta connessioni peer-to-peer per garantire velocità elevate, massima privacy e un’esperienza d’uso estremamente semplice: basta aprire la pagina Web di PairDrop, individuare i dispositivi presenti sulla rete e trascinare i file da condividere.
Quando i dispositivi si trovano sulla stessa rete locale, la condivisione avviene in modo diretto e completamente offline; in caso contrario, WebRTC utilizza automaticamente STUN/TURN per garantire la connessione, mantenendo comunque la cifratura end-to-end del trasferimento.
L’impostazione generale di PairDrop vuole ricalcare AirDrop ma, a differenza della soluzione di condivisione file Apple, il sorgente è disponibile nel repository GitHub ufficiale.
È sicuro usare PairDrop.net?
Come riportato chiaramente nel repository GitHub, PairDrop.net è l’istanza pubblica di PairDrop: è il servizio Web immediatamente utilizzabile che mostra il funzionamento dell’applicazione e che permette di condividere file e messaggi tra dispositivi tramite browser, senza installare nulla.
Il funzionamento di PairDrop.net ricalca pedissequamente quello dell’applicazione ospitata su GitHub: i file degli utenti non sono memorizzati sui server PairDrop. Inoltre, collegandosi dalla stessa rete locale alla home page di PairDrop i vari client si vedranno istantaneamente (a loro è assegnato un appellativo casuale, che può essere eventualmente modificato liberamente).

Come riportato nella parte inferiore della schermata, PairDrop mostra il messaggio “Puoi essere rilevato su questa rete“, a conferma che il rilevamento è esclusivamente locale. Per scambiare dati tra dispositivi collegati a reti diverse si può fare clic sull’icona Unisciti ad una stanza pubblica temporaneamente.

Il codice mostrato (sono 5 lettere) può essere comunicato agli altri utenti in modo che si uniscano alla medesima stanza e sia possibile scambiare file e messaggi in tempo reale.
Cliccando sull’icona Unisciti ad una stanza pubblica temporaneamente, la stanza è creata istantaneamente. Gli altri “interlocutori” basta che scrivano il medesimo codice nel riquadro Inserisci l’ID stanza da un altro dispositivo per accedere.
Toccando il riferimento Puoi essere rilevato nella stanza XYZ posto nella parte inferiore quindi scegliendo Abbandona, si può uscire dalla stanza PairDrop.

Invio e ricezione di file e messaggi di testo
Cliccando sull’icona di un dispositivo collegato con PairDrop, si può scegliere il file da trasferire. Il destinatario può scegliere di accettare il trasferimento o negarlo. Inoltre, PairDrop genera un’anteprima del contenuto delle immagini.
Ancora, cliccando con il tasto destro sull’icona di un dispositivo mostrato nella schermata principale di PairDrop, si può inviare un messaggio di testo. Il destinatario può limitarsi a leggerlo oppure copiarlo e incollarlo altrove.
Installare PairDrop in locale: quali sono i vantaggi
PairDrop è uno strumento sicuro e affidabile, anche nella sua istanza pubblica disponibile su PairDrop.net. Tuttavia, come per qualsiasi servizio Web, c’è sempre un “livello di fiducia” che deve essere riposto nel server di signaling: per avere il controllo totale, è possibile configurare un’istanza self-hosted di PairDrop. E non a caso, PairDrop è una delle soluzioni più apprezzate da chi si occupa di self-hosting.
Sulla carta, l’attività di signaling (scambio di informazioni per creare la connessione) passa tramite WebSocket e può essere intercettata. Nel caso di PairDrop, le terze parti non possono intervenire perché la connessione è protetta con HTTPS ma, come detto, è necessario avere fiducia nella gestione del server.
Per installare PairDrop in locale, la via più semplice è servirsi del container Docker pubblicamente disponibile. Da un server Ubuntu/Debian collegato in rete locale si può procedere molto semplicemente. Dando per scontato che Docker sia installato e funzionante, si può creare una cartella per PairDrop:
mkdir ~/pairdrop
cd ~/pairdrop
Quindi digitare nano docker-compose.yml con il seguente contenuto:
version: "3.8"
services:
pairdrop:
image: lscr.io/linuxserver/pairdrop:latest
container_name: pairdrop
environment:
- PUID=1000 # metti il tuo UID
- PGID=1000 # metti il tuo GID
- TZ=Europe/Rome # il tuo timezone
- RATE_LIMIT=false # opzionale: limita le richieste
- WS_FALLBACK=false # opzionale: fallback WebSocket
# - RTC_CONFIG=/config/rtc_config.json # opzionale: config STUN/TURN
- DEBUG_MODE=false # opzionale: modalità di debug
ports:
- "3000:3000" # esporre la porta 3000
restart: unless-stopped
volumes:
- ./config:/config # per eventuali file di configurazione
A questo punto si può eseguire il comando che segue per impostare il container Docker:
docker compose up -d
Iniziare a usare PairDrop in locale per trasferire file
Scrivendo docker ps, si dovrebbe vedere il container di PairDrop già in esecuzione. Digitando localhost:3000 nella barra degli indirizzi del browser, sulla medesima macchina, dovrebbe apparire l’interfaccia di PairDrop.
Ancora, portandosi su un altro dispositivo connesso in rete locale quindi digitando l’indirizzo IP privato del sistema su cui è in esecuzione il container Docker con PairDrop seguito da :3000, si può iniziare subito a trasferire file e messaggi.

Il browser mostra Non sicuro nella barra degli indirizzi perché si sta usando il protocollo HTTP in luogo di HTTPS. Tuttavia, HTTP influisce solo sulla pagina Web (l’interfaccia), non sulla sicurezza del trasferimento dei file.
La pagina Web di PairDrop caricata attraverso il container Docker è caricata in chiaro (cosa non critica in una LAN privata): il signaling WebSocket per scambiare le informazioni necessarie alla creazione della sessione WebRTC non è quindi cifrato. Tuttavia, il signaling contiene solo metadati tecnici, non file o contenuti riservati.
PairDrop usa WebRTC per il trasferimento dei file. Tale protocollo crittografa sempre i dati in transito tramite DTLS/SRTP. L’utilizzo della crittografia è obbligatorio e integrato nei browser.
In definitiva, anche usando HTTP su IP privato, i file trasferiti con PairDrop sono cifrati. La sicurezza del trasferimento dipende infatti da WebRTC, non dal protocollo HTTP usato per caricare la pagina.
Attivare HTTPS su PairDrop self-hosted con Docker
Nulla vieta, comunque, di usare PairDrop con un connessione HTTPS, anche su un’istanza locale. Il metodo più semplice è utilizzare un reverse proxy come NGINX, Caddy o Traefik: il container PairDrop può continuare a girare su HTTP interno, mentre il proxy gestisce il certificato SSL e il traffico cifrato.
Per ambienti locali privati senza dominio pubblico, è possibile generare un certificato self-signed, montarlo nel container e avviare PairDrop con variabili d’ambiente che abilitano HTTPS.
Si può eventualmente creare un terzo livello sul dominio dell’ufficio o dell’azienda e puntare il record DNS verso la macchina con il container Docker in esecuzione: in questo modo, ad esempio anche con Let’s Encrypt, si può ottenere un certificato digitale valido per la connessione HTTPS, subito riconosciuto da tutti i browser Web senza bisogno di alcun passaggio aggiuntivo.
Una soluzione intermedia è usare un servizio come ngrok che espone un server locale su Internet via HTTPS. Il semplice comando ngrok http 3000 permette di esporre l’interfaccia di PairDrop.
Se si dovesse rendere raggiungibile il server locale di PairDrop tramite la rete Internet, tuttavia, è bene proteggerlo in modo da scongiurare utilizzi non autorizzati. Ad ogni modo, se PairDrop è destinato all’uso esclusivo in rete locale, basta non esporre la porta all’esterno.
Da ultimo, osserviamo che PairDrop può essere installato anche in un’istanza Ubuntu/Debian in esecuzione in Windows con WSL (Windows Subsystem for Linux). In questo caso è necessario condividere la porta 3000 in locale e configurare una regola in Windows Firewall, come spiegato nell’articolo sulla creazione di un server Web con WSL.