Zurück zu den Updates
New releaseJul 26, 2026

vopono v0.10.19

Anwendungen über VPN-Tunnel mit temporären Netzwerk-Namespaces ausführen

Teilen

vopono logo

vopono ist ein Werkzeug, um Anwendungen über VPN-Tunnel durch temporäre Netzwerk-Namespaces auszuführen. So können Sie nur eine Handvoll Anwendungen gleichzeitig über verschiedene VPNs ausführen, während Ihre Hauptverbindung normal bleibt.

vopono enthält integrierte Killswitches sowohl für Wireguard als auch für OpenVPN.

Derzeit werden Mullvad, AzireVPN, MozillaVPN, ProtonVPN, iVPN, NordVPN, AirVPN und PrivateInternetAccess direkt unterstützt, wobei benutzerdefinierte Konfigurationsdateien mit dem Argument --custom ebenfalls unterstützt werden. Cloudflare Warp wird ebenfalls unterstützt.

Für benutzerdefinierte Verbindungen werden auch die Protokolle OpenConnect und OpenFortiVPN unterstützt (z. B. für Unternehmens-VPNs). Weitere Einzelheiten finden Sie im vopono-Benutzerhandbuch.

Screenshot

Screenshot, der ein Beispiel mit firefox, google-chrome-stable und lynx zeigt, die alle über verschiedene VPN-Verbindungen laufen:

Screenshot

Unterstützte Anbieter

AnbieterOpenVPN-UnterstützungWireguard-Unterstützung
Mullvad
AzireVPN
iVPN
PrivateInternetAccess✅*
ProtonVPN✅**✅***
MozillaVPN
NordVPN
AirVPN
Cloudflare Warp****
Selbst gehostet (--custom)

* Port-Weiterleitung wird mit der Option --port-forwarding und --port-forwarding-callback unterstützt, um einen Befehl auszuführen, wenn der Port aktualisiert wird.

** Siehe das Benutzerhandbuch für Authentifizierungsanweisungen zum Erzeugen der OpenVPN-Konfigurationsdateien über vopono sync. Sie müssen den Authentifizierungs-Header der Form AUTH-xxx=yyy kopieren, wobei yyy der Wert des x-pm-uid-Headers in derselben Anfrage ist, wenn Sie in Ihrem Webbrowser angemeldet sind.

*** Für ProtonVPN können Sie spezifische Wireguard-Konfigurationsdateien erzeugen und herunterladen und sie als benutzerdefinierte Anbieterkonfiguration verwenden. Siehe das Benutzerhandbuch für Details. Port-Weiterleitung wird mit dem Argument --port-forwarding sowohl für OpenVPN als auch für Wireguard unterstützt. Beachten Sie, dass bei Verwendung einer benutzerdefinierten Konfiguration mit Wireguard die zu verwendende Port-Weiterleitungsimplementierung mit --custom-port-forwarding angegeben werden sollte (d. h. mit --provider custom --custom xxx.conf --protocol wireguard --custom-port-forwarding protonvpn). natpmpc muss installiert sein. Beachten Sie, dass Sie für OpenVPN die OpenVPN-Konfigurationsdateien erzeugen müssen, indem Sie +pmp an Ihren OpenVPN-Benutzernamen anhängen, und Sie müssen Server wählen, die diese Funktion unterstützen (z. B. tun dies zum Zeitpunkt der Erstellung dieses Textes die Rumänien-Server). Der zugewiesene Port wird dann im Terminal ausgegeben, in dem vopono gestartet wurde - dieser sollte dann in allen Anwendungen gesetzt werden, die ihn benötigen. Der Port kann auch an ein benutzerdefiniertes Skript übergeben werden, das über das Argument --port-forwarding-callback innerhalb des Netzwerk-Namespace ausgeführt wird.

**** Cloudflare Warp verwendet sein eigenes Protokoll. Setzen Sie sowohl den Anbieter als auch das Protokoll auf warp. Beachten Sie, dass Sie sich zuerst mit sudo warp-cli registration new registrieren und es dann einmal außerhalb von vopono mit sudo warp-svc und sudo warp-cli connect und sudo warp-cli debug connectivity-check disable ausführen müssen - beenden Sie dann sudo warp-svc, ohne sudo warp-cli disconnect auszuführen, damit es beim Start automatisch eine Verbindung herstellt. Bitte vergewissern Sie sich zuerst, dass dies funktioniert, bevor Sie es mit vopono ausprobieren.

Die Port-Weiterleitung von AirVPN wird als Anbieterfunktion unterstützt, aber weitergeleitete Ports müssen derzeit im Kundenbereich von AirVPN konfiguriert werden; vopono beansprucht oder schaltet AirVPN-Kontoports nicht automatisch um.

Verwendung

VPN-Anbieterkonfigurationsdateien einrichten:

$ vopono sync

Beachten Sie, dass es beim Erstellen und Hochladen neuer Wireguard-Schlüsselpaare eine leichte Verzögerung geben kann, bis sie verwendbar sind (z. B. etwa 30-60 Sekunden bei Mullvad).

Führen Sie Firefox über eine AzireVPN-Wireguard-Verbindung zu einem Server in Norwegen aus:

$ vopono exec --provider azirevpn --server norway firefox

Sie sollten vopono als Ihr eigener Benutzer ausführen (nicht mit sudo), da es die Rechteerweiterung bei Bedarf selbst übernimmt. Weitere Einzelheiten zur Ausführung als systemd-Dienst usw. finden Sie im Benutzerhandbuch.

Daemon-Modus

Für ein reibungsloseres Erlebnis führen Sie den privilegierten Root-Daemon aus und verwenden vopono weiterhin als normaler Benutzer. Die CLI leitet exec-Anfragen automatisch an den Daemon weiter, wenn dieser läuft.

  • Einmal beim Booten über systemd starten: sudo systemctl enable --now vopono
  • Oder manuell als Root ausführen: sudo vopono daemon
  • Das explizite Äquivalent ist sudo vopono daemon start; prüfen Sie es mit vopono daemon status --json.
  • Verwenden Sie vopono dann wie gewohnt als Benutzer: vopono exec --provider mullvad --server se firefox

Siehe USERGUIDE.md für eine fertig kopierbare systemd-Unit.

vopono kann bis zu 255 separate Netzwerk-Namespaces verwalten (d. h. verschiedene VPN-Serververbindungen - wenn Ihr VPN-Anbieter dies erlaubt). Befehle, die mit demselben Serverpräfix und VPN-Anbieter gestartet werden, teilen sich denselben Netzwerk-Namespace.

Standardkonfigurationsoptionen können in der Datei ~/.config/vopono/config.toml gespeichert werden, zum Beispiel:

firewall = "NfTables"
provider = "Mullvad"
protocol = "Wireguard"
server = "usa-us22"

Beachten Sie, dass bei den Werten zwischen Groß- und Kleinschreibung unterschieden wird.

Siehe das vopono-Benutzerhandbuch für wesentlich detailliertere Verwendungsanweisungen (einschließlich der Handhabung von Daemons und Servern).

Installation

AUR (Arch Linux)

Installieren Sie das Paket vopono-git mit Ihrem bevorzugten AUR-Helfer.

$ paru -S vopono-git
$ vopono sync

Verwenden Sie alternativ das Paket vopono-bin, wenn Sie nicht aus dem Quellcode kompilieren möchten.

Raspberry Pi (Raspbian)

Laden Sie das Paket vopono_x.y.z_armhf.deb von der Release-Seite herunter und installieren Sie es:

$ sudo dpkg -i vopono_0.2.1_armhf.deb

Sie müssen OpenVPN installieren (in den Raspbian-Repos verfügbar):

$ sudo apt install openvpn

Sie können vopono dann wie oben verwenden (beachten Sie, dass die Chromium-Binärdatei chromium-browser ist):

$ vopono sync --protocol openvpn protonvpn
$ vopono exec --provider protonvpn --server sweden chromium-browser

Screenshot von vopono mit OpenVPN unter Raspbian:

Raspbian Screenshot

Beachten Sie, dass Wireguard nicht in den Raspbian-Repositories enthalten ist, sodass die Installation nicht trivial ist. Sie können dieser Anleitung folgen, um es zu versuchen, aber beachten Sie, dass Sie nicht nur Wireguard und wireguard-tools installieren müssen, um wg verfügbar zu haben, sondern auch linux-headers, um sicherzustellen, dass es korrekt funktioniert (d. h. Sie erhalten nicht nur Protocol not supported-Fehler, wenn Sie versuchen, eine Verbindung herzustellen).

Prüfen Sie das Benutzerhandbuch für Details zur Port-Weiterleitung und zur Verwendung von vopono mit Daemons und Servern, falls Sie Ihren Raspberry Pi verwenden möchten, um privoxy oder transmission-daemon usw. auszuführen.

Debian + Ubuntu

Installieren Sie das auf der Release-Seite bereitgestellte deb-Paket.

Fedora + OpenSUSE

Installieren Sie das auf der Release-Seite bereitgestellte rpm-Paket (wählen Sie die richtige Version).

Gentoo Linux

Installieren Sie vopono aus dem Haupt-Repository.

$ emerge -av net-vpn/vopono

Anderes Linux

Verwenden Sie entweder die kompilierten Binärdateien auf der Release-Seite oder installieren Sie aus dem Quellcode mit Cargo, wie unten dokumentiert.

Aus diesem Repository (mit Cargo)

Führen Sie das bereitgestellte Installationsskript aus: install.sh - dies wird cargo install für das Repository ausführen und die Konfigurationsdateien nach ~/.config/vopono/ kopieren.

Beachten Sie, dass die mindestens unterstützte Rust-Version 1.85 ist (erforderlich für Edition 2024). Sie können Ihre Version überprüfen mit:

$ rustc --version

Bekannte Probleme

  • Beim Starten einer neuen Anwendung in einem vorhandenen vopono-Namespace werden Änderungen an den Firewall-Regeln (d. h. Weiterleiten und Öffnen von Ports) nicht angewendet (sie werden nur beim Erstellen des Namespace verwendet). Dasselbe gilt für die Port-Weiterleitung.
  • OpenVPN-Anmeldedaten werden immer im Klartext in der Konfiguration gespeichert - möglicherweise wird eine Option hinzugefügt, um Anmeldedaten nicht zu speichern, aber es scheint, dass OpenVPN sie im Klartext benötigt.
  • Es gibt keine einfache Möglichkeit, MozillaVPN-Geräte (Wireguard-Schlüsselpaare) zu löschen - anders als bei Mullvad kann dies nicht auf der Webseite erledigt werden. Ich empfehle, MozWire zur Verwaltung zu verwenden.
  • gnome-terminal wird aufgrund des Client-Server-Modells nicht im Netzwerk-Namespace ausgeführt - siehe Issue #48
  • Die Port-Weiterleitung von innerhalb des Netzwerk-Namespace zum Host (z. B. zum Ausführen von transmission-daemon) funktioniert nicht korrekt, wenn vopono als Root ausgeführt wird - siehe Issue #84

Lizenz

vopono ist unter der GPL Version 3.0 (oder höher) lizenziert, siehe die LICENSE-Datei oder https://www.gnu.org/licenses/gpl-3.0.en.html

Etymologie

vopono ist die Aussprache der Buchstaben VPN auf Esperanto.

Se vi ankaŭ parolas Esperanton, bonvolu serĉi min en la kanalo de Discord de Rust Programming Language Community.

Mitwirkung

Sofern Sie nicht ausdrücklich etwas anderes angeben, wird jeder von Ihnen absichtlich zur Aufnahme in das Werk eingereichte Beitrag unter der GPLv3 (oder höher) lizenziert, ohne zusätzliche Bedingungen.

Vielen Dank an NilsIrls MozWire für die Untersuchung der MozillaVPN-API.

Kategorien