Zurück zu den Updates
New releaseAug 18, 2026

gotatun v0.9.0

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, sofern nicht anders angegeben, den Bedingungen der Mozilla Public License, Version 2.0. Eine Kopie dieser Lizenz finden Sie in der Datei "LICENSE" oder unter https://www.mozilla.org/MPL/2.0/.

Beiträge, die vor dem 5. März 2026 eingereicht wurden, sind unter der alten BSD-3-Klausel-Lizenz lizenziert. Eine Kopie dieser Lizenz finden Sie in der Datei "LICENSE-CLOUDFLARE".

Beitrag

Sofern Sie nicht ausdrücklich anders angeben, wird jeder von Ihnen absichtlich zur Aufnahme in das Werk eingereichte Beitrag, wie in der MPL-2.0-Lizenz definiert, wie oben beschrieben 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 sie mit cargo install --bin gotatun --path . installieren.

Nix

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

Ausführen

Gemäß der Spezifikation verwenden Sie zum Starten eines Tunnels:

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

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

Es ist auch möglich, wg-quick zu verwenden, indem Sie die Umgebungsvariable WG_QUICK_USERSPACE_IMPLEMENTATION auf gotatun setzen. 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

Für das Testen dieses Projekts gibt es einige Voraussetzungen:

  • sudo: erforderlich, um Tunnel zu erstellen. 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
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 mit dem von wireguard-go identisch sein, mit dem folgenden Unterschied:

gotatun gibt beim Start Privilegien ab. Wenn die Privilegien abgegeben wurden, ist es nicht möglich, fwmark zu setzen. Wenn fwmark erforderlich ist, z. B. bei Verwendung von wg-quick, führen Sie das Programm mit --disable-drop-privileges aus oder setzen Sie die Umgebungsvariable WG_SUDO=1.

Sie müssen der ausführbaren Datei die Capability CAP_NET_ADMIN erteilen, indem Sie sudo setcap cap_net_admin+epi gotatun ausführen. sudo wird nicht benötigt.

macOS

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

UAPI-Erweiterungen

Siehe UAPI für Erweiterungen des wg-Konfigurationsprotokolls.


Audits

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


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

Kategorien