
Esegui applicazioni attraverso tunnel VPN con namespace di rete temporanei.

vopono è uno strumento per eseguire applicazioni attraverso tunnel VPN utilizzando namespace di rete temporanei. Ciò ti permette di eseguire solo poche applicazioni attraverso diverse VPN contemporaneamente, mantenendo la connessione principale normale.
vopono include killswitch integrati sia per Wireguard che per OpenVPN.
Attualmente Mullvad, AzireVPN, MozillaVPN, ProtonVPN, iVPN, NordVPN, AirVPN e PrivateInternetAccess sono supportati direttamente, con file di configurazione personalizzati supportati anche tramite l'argomento --custom. Cloudflare Warp è anche supportato.
Per connessioni personalizzate sono supportati anche i protocolli OpenConnect e OpenFortiVPN (ad esempio per VPN aziendali). Consulta la Guida utente di vopono per maggiori dettagli.
Screenshot che mostra un esempio con firefox, google-chrome-stable e lynx tutti in esecuzione attraverso diverse connessioni VPN:

| Provider | Supporto OpenVPN | Supporto Wireguard |
|---|---|---|
| Mullvad | ❌ | ✅ |
| AzireVPN | ❌ | ✅ |
| iVPN | ✅ | ✅ |
| PrivateInternetAccess | ✅ | ✅* |
| ProtonVPN | ✅** | ✅*** |
| MozillaVPN | ❌ | ✅ |
| NordVPN | ✅ | ❌ |
| AirVPN | ✅ | ❌ |
| Cloudflare Warp**** | ❌ | ❌ |
| Self host (--custom) | ✅ | ✅ |
* Il port forwarding è supportato con l'opzione --port-forwarding e --port-forwarding-callback per eseguire un comando quando la porta viene aggiornata.
** Consulta la Guida utente per le istruzioni di autenticazione per generare i file di configurazione OpenVPN tramite vopono sync. Devi copiare l'intestazione di autenticazione nella forma AUTH-xxx=yyy dove yyy è il valore dell'intestazione x-pm-uid nella stessa richiesta quando sei loggato, nel tuo browser web.
*** Per ProtonVPN puoi generare e scaricare file di configurazione Wireguard specifici e usarli come configurazione provider personalizzata. Consulta la Guida utente per i dettagli. Il Port Forwarding è supportato con l'argomento --port-forwarding sia per OpenVPN che per Wireguard. Nota: per utilizzare una configurazione personalizzata con Wireguard, l'implementazione del port forwarding da utilizzare deve essere specificata con --custom-port-forwarding (cioè con --provider custom --custom xxx.conf --protocol wireguard --custom-port-forwarding protonvpn). natpmpc deve essere installato. Nota per OpenVPN: devi generare i file di configurazione OpenVPN aggiungendo +pmp al tuo nome utente OpenVPN e devi scegliere server che supportano questa funzionalità (ad esempio, al momento della scrittura, i server della Romania lo fanno). La porta assegnata viene quindi stampata sul terminale dove è stato lanciato vopono - questa dovrebbe poi essere impostata in tutte le applicazioni che la richiedono. La porta può anche essere passata a uno script personalizzato che verrà eseguito all'interno del namespace di rete tramite l'argomento --port-forwarding-callback.
**** Cloudflare Warp utilizza il proprio protocollo. Imposta sia il provider che il protocollo su warp. Nota: devi prima registrarti con sudo warp-cli registration new e poi eseguirlo una volta con sudo warp-svc e sudo warp-cli connect e sudo warp-cli debug connectivity-check disable al di fuori di vopono - poi termina sudo warp-svc senza eseguire sudo warp-cli disconnect in modo che si riconnetta automaticamente all'avvio. Verifica prima che funzioni prima di provarlo con vopono.
Imposta i file di configurazione del provider VPN:
$ vopono sync
Nota: quando si creano e caricano nuove coppie di chiavi Wireguard potrebbe esserci un leggero ritardo fino a quando non sono utilizzabili (circa 30-60 secondi su Mullvad per esempio).
Esegui Firefox attraverso una connessione Wireguard di AzireVPN su un server in Norvegia:
$ vopono exec --provider azirevpn --server norway firefox
Dovresti eseguire vopono come utente normale (non usando sudo) poiché gestirà l'elevazione dei privilegi quando necessario. Per maggiori dettagli sull'esecuzione come servizio systemd, ecc., consulta la Guida utente.
Per un'esperienza più fluida, esegui il demone privilegiato come root e continua a usare vopono come utente normale. La CLI inoltra automaticamente le richieste exec al demone se è in esecuzione.
sudo systemctl enable --now voponosudo vopono daemonvopono exec --provider mullvad --server se firefoxConsulta USERGUIDE.md per un'unità systemd pronta da copiare.
vopono può gestire fino a 255 namespace di rete separati (cioè diverse connessioni a server VPN - se il tuo provider VPN lo permette). I comandi lanciati con lo stesso prefisso server e provider VPN condivideranno lo stesso namespace di rete.
Le opzioni di configurazione predefinite possono essere salvate nel file ~/.config/vopono/config.toml, ad esempio:
firewall = "NfTables"
provider = "Mullvad"
protocol = "Wireguard"
server = "usa-us22"
Nota che i valori sono sensibili alle maiuscole/minuscole.
Consulta la Guida utente di vopono per istruzioni d'uso molto più dettagliate (inclusa la gestione di demoni e server).
Installa il pacchetto vopono-git con il tuo aiutante AUR preferito.
$ paru -S vopono-git
$ vopono sync
In alternativa usa il pacchetto vopono-bin se non vuoi compilare da sorgente.
Scarica e installa il pacchetto vopono_x.y.z_armhf.deb dalla pagina delle release:
$ sudo dpkg -i vopono_0.2.1_armhf.deb
Dovrai installare OpenVPN (disponibile nei repository Raspbian):
$ sudo apt install openvpn
Puoi quindi usare vopono come sopra (nota che il binario di Chromium è chromium-browser):
$ vopono sync --protocol openvpn protonvpn
$ vopono exec --provider protonvpn --server sweden chromium-browser
Screenshot di vopono con OpenVPN in esecuzione su Raspbian:

Nota: Wireguard non è nei repository Raspbian, quindi l'installazione non è banale. Puoi seguire questa guida per provare, ma nota che non solo devi installare Wireguard e wireguard-tools per avere wg disponibile, ma anche i linux-headers per assicurarti che funzioni correttamente (cioè non ottenere solo errori Protocol not supported quando tenti di stabilire una connessione).
Controlla la Guida utente per dettagli sul port forwarding e sull'uso di vopono con demoni e server, nel caso tu voglia usare il tuo Raspberry Pi per eseguire privoxy o transmission-daemon, ecc.
Installa il pacchetto deb fornito nella pagina delle release.
Installa il pacchetto rpm fornito nella pagina delle release (scegli la versione corretta).
Installa vopono dal repository principale.
$ emerge -av net-vpn/vopono
Usa i binari compilati sulla pagina delle release o installa da sorgente con Cargo come documentato sotto.
Esegui lo script di installazione fornito: install.sh - questo eseguirà cargo install del repository e copierà i file di configurazione in ~/.config/vopono/
Nota: la versione minima supportata di Rust è 1.85 (richiesta per l'edizione 2024). Puoi controllare la tua versione con:
$ rustc --version
gnome-terminal non funziona nel namespace di rete a causa del modello client-server - vedi issue #48transmission-daemon) non funziona correttamente quando vopono è eseguito come root - vedi issue #84vopono è concesso in licenza sotto GPL Versione 3.0 (o superiore), consulta il file LICENSE o https://www.gnu.org/licenses/gpl-3.0.en.html
vopono è la pronuncia delle lettere VPN in Esperanto.
Se vi ankaŭ parolas Esperanton, bonvolu serĉi min en la kanalo de Discord de Rust Programming Language Community.
Salvo diversa indicazione esplicita, qualsiasi contributo inviato intenzionalmente per l'inclusione nel lavoro da parte tua, sarà concesso in licenza sotto GPLv3 (o superiore), senza alcun termine o condizione aggiuntiva.
Molte grazie a MozWire di NilsIrl per l'indagine sull'API di MozillaVPN.