Zurück zu den Updates
New releaseSep 2, 2026

gotatun v0.9.2

WireGuard®-Implementierung im Userspace in Rust

Teilen

GotaTun

Eine Userspace-Implementierung von WireGuard® und ein Fork von BoringTun.

Lizenz

Der gesamte Quellcode in diesem Repository unterliegt den Bedingungen der Mozilla Public License, Version 2.0, sofern nicht anders angegeben. Eine Kopie dieser Lizenz befindet sich in der Datei „LICENSE" oder unter https://www.mozilla.org/MPL/2.0/.

Beiträge, die vor dem 5. März 2026 geleistet wurden, sind unter der alten BSD-3-Clause-Lizenz lizenziert. Eine Kopie dieser Lizenz befindet sich in der Datei „LICENSE-CLOUDFLARE".

Beiträge

Sofern Sie nicht ausdrücklich etwas anderes angeben, werden alle Beiträge, die Sie absichtlich zur Aufnahme in das Werk einreichen, im Sinne der MPL-2.0-Lizenz wie oben lizenziert, ohne zusätzliche Bedingungen.

Erstellen

  • Nur Bibliothek: cargo build --lib --no-default-features --release [--target $(TARGET_TRIPLE)]
  • Ausführbare Datei: cargo build --bin gotatun --release [--target $(TARGET_TRIPLE)]

Installation

Standardmäßig wird die ausführbare Datei im Ordner ./target/release abgelegt. Sie können sie manuell an einen gewünschten Ort kopieren oder mit cargo install --bin gotatun --path . installieren.

Nix

Um die ausführbare Datei zu erstellen, führen Sie einfach nix build .#gotatun aus. Das fertige Binary befindet sich anschließend in result/bin/gotatun.

Ausführen

Gemäß der Spezifikation starten Sie einen Tunnel mit:

gotatun [-f/--foreground] INTERFACE-NAME

Der Tunnel kann anschließend mit wg wie ein regulärer WireGuard-Tunnel oder mit jedem anderen Tool konfiguriert werden.

Es ist auch möglich, ihn mit wg-quick zu verwenden, indem Sie die Umgebungsvariable WG_QUICK_USERSPACE_IMPLEMENTATION auf gotatun setzen. Zum Beispiel:

sudo WG_QUICK_USERSPACE_IMPLEMENTATION=gotatun WG_SUDO=1 wg-quick up CONFIGURATION

Bitte beachten Sie, dass wg-quick unter Linux WG_QUICK_USERSPACE_IMPLEMENTATION ignoriert, wenn das WireGuard-Kernelmodul installiert ist.

Testen

Das Testen dieses Projekts hat einige Voraussetzungen:

  • sudo: erforderlich zum Erstellen von Tunneln. Wenn Sie cargo test ausführen, werden Sie zur Eingabe Ihres Passworts aufgefordert.
  • Docker: Sie können es hier installieren. Wenn Sie Ubuntu/Debian verwenden, können Sie apt-get install docker.io ausführen.

Unterstützte Plattformen

Target-TripleBinaryBibliothek
x86_64-unknown-linux-gnu✓✓
aarch64-unknown-linux-gnu✓✓
riscv64gc-unknown-linux-gnu✓✓
aarch64-apple-darwin✓✓
x86_64-pc-windows-msvc✓✓
x86_64-pc-windows-gnullvm✓✓
aarch64-pc-windows-msvc✓✓
aarch64-pc-windows-gnullvm✓✓
x86_64-linux-android✓
aarch64-linux-android✓
aarch64-apple-ios✓

Andere Targets funktionieren möglicherweise, aber wir testen nur diese

Linux

Die Architekturen x86-64 und aarch64 werden unterstützt. Das Verhalten sollte identisch mit dem von wireguard-go sein, mit folgendem Unterschied:

gotatun gibt beim Start seine Privilegien ab. Nach dem Ablegen der Privilegien ist es nicht möglich, fwmark zu setzen. Wenn fwmark erforderlich ist, etwa bei der Verwendung von wg-quick, führen Sie es mit --disable-drop-privileges aus oder setzen Sie die Umgebungsvariable WG_SUDO=1.

Sie müssen der ausführbaren Datei die Fähigkeit CAP_NET_ADMIN mit folgendem Befehl zuweisen: sudo setcap cap_net_admin+epi gotatun. sudo ist nicht erforderlich.

macOS

Das Verhalten ähnelt dem von wireguard-go. Insbesondere muss der Interface-Name utun[0-9]+ lauten, wenn ein expliziter Interface-Name angegeben wird, oder utun, damit der Kernel das niedrigste verfügbare auswählt. Wenn Sie utun als Interface-Namen wählen und die Umgebungsvariable WG_TUN_NAME_FILE definiert ist, wird der tatsächliche Name des vom Kernel gewählten Interfaces in die durch diese Variable angegebene Datei geschrieben.

UAPI-Erweiterungen

Siehe UAPI für Erweiterungen des wg-Konfigurationsprotokolls.


Audits

Es wurden unabhängige Sicherheitsaudits für das Projekt durchgeführt. Siehe das Verzeichnis audit.


WireGuard ist eine eingetragene Marke von Jason A. Donenfeld. GotaTun wird nicht von Jason A. Donenfeld gesponsert oder unterstützt.

Kategorien