
Exécutez des applications via des tunnels VPN avec des espaces de noms réseau temporaires.

vopono est un outil permettant d'exécuter des applications via des tunnels VPN à l'aide d'espaces de noms réseau temporaires. Cela vous permet d'exécuter seulement quelques applications via différents VPN simultanément, tout en conservant votre connexion principale comme d'habitude.
vopono inclut des killswitches intégrés pour Wireguard et OpenVPN.
Actuellement, Mullvad, AzireVPN, MozillaVPN, ProtonVPN, iVPN, NordVPN, AirVPN et PrivateInternetAccess sont pris en charge directement, et les fichiers de configuration personnalisés sont également pris en charge avec l'argument --custom. Cloudflare Warp est également pris en charge.
Pour les connexions personnalisées, les protocoles OpenConnect et OpenFortiVPN sont également pris en charge (par exemple pour les VPN d'entreprise). Consultez le Guide de l'utilisateur vopono pour plus de détails.
Capture d'écran montrant un exemple avec firefox, google-chrome-stable et lynx, tous exécutés via différentes connexions VPN :

| Fournisseur | Support OpenVPN | Support Wireguard |
|---|---|---|
| Mullvad | ❌ | ✅ |
| AzireVPN | ❌ | ✅ |
| iVPN | ✅ | ✅ |
| PrivateInternetAccess | ✅ | ✅* |
| ProtonVPN | ✅** | ✅*** |
| MozillaVPN | ❌ | ✅ |
| NordVPN | ✅ | ❌ |
| AirVPN | ✅ | ✅ |
| Cloudflare Warp**** | ❌ | ❌ |
| Self host (--custom) | ✅ | ✅ |
* La redirection de port est prise en charge avec l'option --port-forwarding et --port-forwarding-callback pour exécuter une commande lorsque le port est renouvelé.
** Voir le Guide de l'utilisateur pour les instructions d'authentification afin de générer les fichiers de configuration OpenVPN via vopono sync. Vous devez copier l'en-tête d'authentification de la forme AUTH-xxx=yyy, où yyy est la valeur de l'en-tête x-pm-uid dans la même requête lorsque vous êtes connecté dans votre navigateur web.
*** Pour ProtonVPN, vous pouvez générer et télécharger des fichiers de configuration Wireguard spécifiques et les utiliser comme configuration de fournisseur personnalisée. Voir le Guide de l'utilisateur pour plus de détails. La redirection de port est prise en charge avec l'argument --port-forwarding pour OpenVPN et Wireguard.
Notez que pour utiliser une configuration personnalisée avec Wireguard, l'implémentation de redirection de port à utiliser doit être spécifiée avec --custom-port-forwarding
(c'est-à-dire avec --provider custom --custom xxx.conf --protocol wireguard --custom-port-forwarding protonvpn). natpmpc doit être installé.
Notez que pour OpenVPN, vous devez générer les fichiers de configuration OpenVPN en ajoutant +pmp à votre nom d'utilisateur OpenVPN, et vous devez choisir des serveurs prenant en charge cette fonctionnalité
(par exemple, au moment où ce document est écrit, les serveurs de Roumanie le font). Le port attribué est ensuite affiché dans le terminal où vopono a été lancé - il doit ensuite être configuré dans toutes les applications qui en ont besoin.
Le port peut également être transmis à un script personnalisé qui sera exécuté dans l'espace de noms réseau via l'argument --port-forwarding-callback.
**** Cloudflare Warp utilise son propre protocole. Définissez à la fois le fournisseur et le protocole sur warp. Notez que vous devez d'abord vous enregistrer avec sudo warp-cli registration new, puis l'exécuter une fois avec sudo warp-svc, sudo warp-cli connect et sudo warp-cli debug connectivity-check disable en dehors de vopono - puis tuez sudo warp-svc sans exécuter sudo warp-cli disconnect afin qu'il se connecte automatiquement au lancement. Veuillez vérifier que cela fonctionne avant d'essayer avec vopono.
La redirection de port AirVPN est prise en charge en tant que capacité du fournisseur, mais les ports redirigés doivent actuellement être configurés dans l'espace client d'AirVPN ; vopono ne réclame ni n'active automatiquement les ports du compte AirVPN.
Configurez les fichiers de configuration du fournisseur VPN :
$ vopono sync
Notez que lors de la création et du téléversement de nouvelles paires de clés Wireguard, il peut y avoir un léger délai avant qu'elles ne soient utilisables (environ 30 à 60 secondes sur Mullvad, par exemple).
Exécutez Firefox via une connexion Wireguard AzireVPN vers un serveur en Norvège :
$ vopono exec --provider azirevpn --server norway firefox
Vous devez exécuter vopono avec votre propre utilisateur (sans utiliser sudo), car il gérera l'élévation de privilèges lorsque nécessaire. Pour plus de détails sur l'exécution en tant que service systemd, etc., consultez le Guide de l'utilisateur.
Pour une expérience plus fluide, lancez le démon privilégié en tant que root et continuez à utiliser vopono comme votre utilisateur normal. La CLI transmet automatiquement les requêtes exec au démon s'il est en cours d'exécution.
sudo systemctl enable --now voponosudo vopono daemonsudo vopono daemon start ; inspectez-le avec vopono daemon status --json.vopono exec --provider mullvad --server se firefoxVoir USERGUIDE.md pour une unité systemd prête à copier.
vopono peut gérer jusqu'à 255 espaces de noms réseau distincts (c'est-à-dire différentes connexions à des serveurs VPN - si votre fournisseur VPN le permet). Les commandes lancées avec le même préfixe de serveur et le même fournisseur VPN partageront le même espace de noms réseau.
Les options de configuration par défaut peuvent être enregistrées dans le fichier ~/.config/vopono/config.toml, par exemple :
firewall = "NfTables"
provider = "Mullvad"
protocol = "Wireguard"
server = "usa-us22"
Notez que les valeurs sont sensibles à la casse.
Consultez le Guide de l'utilisateur vopono pour des instructions d'utilisation beaucoup plus détaillées (y compris la gestion des démons et des serveurs).
Installez le paquet vopono-git avec votre helper AUR préféré.
$ paru -S vopono-git
$ vopono sync
Vous pouvez également utiliser le paquet vopono-bin si vous ne souhaitez pas compiler à partir des sources.
Téléchargez et installez le paquet vopono_x.y.z_armhf.deb depuis la page des versions :
$ sudo dpkg -i vopono_0.2.1_armhf.deb
Vous devrez installer OpenVPN (disponible dans les dépôts Raspbian) :
$ sudo apt install openvpn
Vous pouvez ensuite utiliser vopono comme ci-dessus (notez que le binaire Chromium est chromium-browser) :
$ vopono sync --protocol openvpn protonvpn
$ vopono exec --provider protonvpn --server sweden chromium-browser
Capture d'écran de vopono avec OpenVPN fonctionnant sur Raspbian :

Notez que Wireguard n'est pas dans les dépôts Raspbian, donc son installation n'est pas triviale. Vous pouvez suivre ce guide pour tenter de l'installer, mais notez que vous devez non seulement installer Wireguard et wireguard-tools pour que wg soit disponible, mais aussi linux-headers pour garantir son bon fonctionnement (c'est-à-dire pour ne pas obtenir uniquement des erreurs Protocol not supported lors de l'établissement d'une connexion).
Consultez le Guide de l'utilisateur pour plus de détails sur la redirection de port et l'utilisation de vopono avec des démons et des serveurs, si vous souhaitez utiliser votre Raspberry Pi pour exécuter privoxy ou transmission-daemon, etc.
Installez le paquet deb fourni sur la page des versions.
Installez le paquet rpm fourni sur la page des versions (choisissez la bonne version).
Installez vopono depuis le dépôt principal.
$ emerge -av net-vpn/vopono
Utilisez soit les binaires compilés sur la page des versions, soit installez à partir des sources avec Cargo comme documenté ci-dessous.
Exécutez le script d'installation fourni : install.sh - cela installera le dépôt via cargo install et copiera les fichiers de configuration vers ~/.config/vopono/
Notez que la version minimale prise en charge de Rust est la 1.85 (requise pour l'édition 2024). Vous pouvez vérifier votre version avec :
$ rustc --version
gnome-terminal ne s'exécutera pas dans l'espace de noms réseau en raison du modèle client-serveur - voir le problème #48transmission-daemon) ne fonctionne pas correctement lorsque vopono est exécuté en tant que root - voir le problème #84vopono est sous licence GPL version 3.0 (ou ultérieure), voir le fichier LICENSE ou https://www.gnu.org/licenses/gpl-3.0.en.html
vopono est la prononciation des lettres VPN en espéranto.
Se vi ankaŭ parolas Esperanton, bonvolu serĉi min en la kanalo de Discord de Rust Programming Language Community.
Sauf indication contraire explicite de votre part, toute contribution intentionnellement soumise pour inclusion dans le travail par vos soins sera sous licence GPLv3 (ou ultérieure), sans conditions ou modalités supplémentaires.
Un grand merci à MozWire de NilsIrl pour l'étude de l'API MozillaVPN.