WireGuard-Tunnel für SIP auf dem Android-Smartphone – mit Bash-Skript schnell eingerichtet

23.  Februar 2026

Mit einem Android-Smartphone über einen WireGuard-VPN-Tunnel sicher bei einem Asterisk-Server einbuchen und darüber telefonieren – das klingt nach einer aufwendigen Angelegenheit. Ein Bash-Skript für Linux macht die Einrichtung jedoch so einfach, dass auch Linux-Teilnehmer ohne tiefe WireGuard-Kenntnisse einen eigenen Tunnel aufbauen können, indem sie dem Asterisk-Betreiber lediglich eine kleine Textdatei zuschicken.

Der vorliegende Artikel und Code (mit Hilfe der KI Claude Sonnet 4.6 erstellt und entwickelt) baut auf dem Artikel „WireGuard-VPN-Tunnel für SIP-Verbindungen zu einem Asterisk-Server“ auf und setzt dessen Kenntnisse voraus. Dort wurde erklärt, wie Junghard mit seinem Linux-Notebook oder Linux-PC über einen WireGuard-Tunnel sicher bei Volkers Asterisk-Server eingebucht ist und von dort aus telefonieren kann.

20260223
Die Android-App „WG Tunnel“ in Aktion. Der VPN-Tunnel zwischen dem Smartphone und dem Rasperry oder Server mit der Adresse xxxx.dyndns.org läuft.

Was sind die Vorteile einer Wireguard-VPN-Verbindung zwischen dem Asterisk-Telefonserver und dem SIP-Telefon-Endgerät?  Von unterwegs telefonieren wir oft unter erschwerten Bedingungen wie z.B. restriktive Provider im Ausland oder schlecht konfiguriertes WLAN im Hotel oder auf dem  Campingplatz. Mitten in der Natur ist die Verbindung zum nächsten Mobilfunkmast oft mangelhaft.

Verschlüsselung: SIP ist von Haus aus unverschlüsselt – Gespräche und Zugangsdaten können im WLAN oder Mobilfunknetz abgehört werden. WireGuard verschlüsselt den gesamten Traffic mit modernster Kryptographie.

Kein Portforwarding nötig: Das Smartphone baut die Verbindung aktiv zum Raspi auf. Egal ob WLAN, Mobilfunk, Starlink oder mehrere Router hintereinander – es funktioniert ohne jeden Eingriff in die Netzwerkkonfiguration.

Provider-Trennung wird verhindert: Viele Mobilfunk-Provider erkennen SIP-Traffic und trennen die Verbindung nach einiger Zeit. Im WireGuard-Tunnel sieht der Provider nur verschlüsselte UDP-Pakete – SIP ist nicht mehr erkennbar.

Stabile Verbindung: PersistentKeepalive sendet alle 25 Sekunden ein kleines Keepalive-Paket, das NAT-Timeouts verhindert und den Tunnel auch bei schwankenden Mobilfunkverbindungen offen hält.

Volle Kontrolle über die Erreichbarkeit: Ist WG-Tunnel aktiv, ist die SIP-Nummer erreichbar. Wird WG-Tunnel abgeschaltet, ist die Nummer sofort offline – eine digitale Klingel-aus-Taste.

Kein eigener SIP-Provider nötig: Das Smartphone telefoniert direkt über den eigenen Asterisk-Server, ohne dass ein kommerzieller VoIP-Anbieter zwischengeschaltet ist.

Mehrere SIP-Accounts parallel: Ein Softphone wie Sipnetic kann gleichzeitig mehrere SIP-Accounts verwalten. Nur der Asterisk-Account läuft durch den Tunnel – andere Accounts laufen unberührt daneben.

20260223
Alt trifft neu. Das Android-SIP-Softphone „Sipnetic“ hat über eine Wireguard-VPN-Verbindung mit der App „WG Tunnel“ eine Telefonverbindung zu einem alten Wählscheibentelefon aufgebaut, das am FON-Eingang einer FritzBox angeschlossen ist. Es muss nicht Sipnetic sein. Andere Softphones gehen natürlich auch.

Und so richtest du Wireguard-VPN zwischen Asterisk und dem Android-Softphone ein: Das Softphone soll auf einem Android-Smartphone laufen, und der WireGuard-Tunnel soll ebenfalls auf dem Smartphone aufgebaut werden. Als WireGuard-Client auf dem Android-Smartphone kommt die App WG-Tunnel zum Einsatz, die im Google Play Store und bei F-Droid kostenlos erhältlich ist. Als SIP-Softphone auf dem Smartphone wird Sipnetic verwendet, das ebenfalls kostenlos im Play Store zu finden ist. Sipnetic hat den Vorteil, dass mehrere SIP-Accounts gleichzeitig eingetragen werden können, von denen aber nur einer über den WireGuard-Tunnel läuft – die anderen SIP-Accounts werden ganz normal über das Internet betrieben, ohne den Tunnel.

Für den neuen Teilnehmer – in diesem Fall das Smartphone – legt Volker in seiner sip.conf einen eigenen SIP-Account an, zum Beispiel mit der Nummer 10045. Dieser Account unterscheidet sich von einem gewöhnlichen Account nur durch die beiden Zeilen nat=no und qualify=yes, genau wie es im Vorgängerartikel für Junghard beschrieben wurde. Nach dem Anlegen des Accounts wird in der Asterisk-Konsole

sip reload

eingegeben, damit Asterisk die neue Konfiguration einliest.

Bevor WG-Tunnel auf dem Smartphone konfiguriert werden kann, muss ein WireGuard-Schlüsselpaar für das Smartphone erzeugt werden. Dieses Schlüsselpaar besteht aus einem Private Key und einem Public Key. Der Private Key darf das Gerät, auf dem er erzeugt wurde, niemals verlassen – er ist das Geheimnis des Smartphones. Der Public Key hingegen muss an Volker übermittelt werden, damit er ihn in seine wg0.conf auf dem Raspi eintragen kann. Das Schlüsselpaar wird am bequemsten auf einem Linux-Rechner erzeugt, ohne dass dafür das vollständige WireGuard-Paket installiert werden muss. Es genügt das schlanke Paket wireguard-tools, das nur die Kommandozeilen-Werkzeuge enthält, sowie qrencode zur Erzeugung des QR-Codes. Beide Pakete werden mit

sudo apt install wireguard-tools qrencode

installiert.

Die Bash-Datei: Um diesen Vorgang zu vereinfachen, steht ein Bash-Skript für Linux (Ubuntu, Debian) zum Download in einer Zip-Datei bereit, das alle Schritte automatisch durchführt: Du musst die sh-Datei eventuell noch ausführbar machen.

wg_handy_setup.sh.zip

Das Bash-Skript:  Vorher ausführbar machen

#!/bin/bash
# =============================================================================
# wg_handy_setup.sh
# Erzeugt WireGuard-Schlüsselpaar, handy.conf, Peer-Eintrag für wg0.conf
# und QR-Code als PNG für WG-Tunnel (Android)
# =============================================================================

set -e

# Arbeitsverzeichnis auf den Ordner des Skripts setzen
cd "$(dirname "$0")"

echo "=============================================="
echo " WireGuard Handy-Setup für WG-Tunnel (Android)"
echo "=============================================="
echo ""

# --- Abhängigkeiten prüfen und installieren ---
echo "Prüfe ob wireguard-tools und qrencode installiert sind..."
PACKAGES=""
if ! command -v wg &> /dev/null; then
    PACKAGES="$PACKAGES wireguard-tools"
fi
if ! command -v qrencode &> /dev/null; then
    PACKAGES="$PACKAGES qrencode"
fi

if [ -n "$PACKAGES" ]; then
    echo "Installiere fehlende Pakete: $PACKAGES"
    sudo apt install -y $PACKAGES
else
    echo "Alle benötigten Pakete sind bereits installiert."
fi
echo ""

# --- Eingaben abfragen ---
read -p "Tunnel-IP des Handys      (z.B. 10.99.99.5):   " HANDY_IP
read -p "Tunnel-IP des Raspis      (z.B. 10.99.99.2):   " RASPI_IP
read -p "Public Key des Raspis:                          " RASPI_PUBKEY
read -p "DynDNS oder öffentliche IP des Raspis:          " RASPI_ENDPOINT
read -p "WireGuard-Port            (Standard: 51820):    " WG_PORT
WG_PORT=${WG_PORT:-51820}
echo ""

# --- Schlüsselpaar für das Handy erzeugen ---
echo "Erzeuge Schlüsselpaar für das Handy..."
HANDY_PRIVKEY=$(wg genkey)
HANDY_PUBKEY=$(echo "$HANDY_PRIVKEY" | wg pubkey)
echo "  Private Key: $HANDY_PRIVKEY"
echo "  Public Key:  $HANDY_PUBKEY"
echo ""

# --- handy.conf erzeugen ---
echo "Erzeuge handy.conf..."
cat > handy.conf << EOF
[Interface]
PrivateKey = ${HANDY_PRIVKEY}
Address = ${HANDY_IP}/24

[Peer]
PublicKey = ${RASPI_PUBKEY}
AllowedIPs = ${RASPI_IP}/32
Endpoint = ${RASPI_ENDPOINT}:${WG_PORT}
PersistentKeepalive = 25
EOF
echo "  handy.conf erstellt."
echo ""

# --- Peer-Eintrag für wg0.conf des Raspis erzeugen ---
echo "Erzeuge peer_eintrag_fuer_wg0conf.txt..."
cat > peer_eintrag_fuer_wg0conf.txt << EOF
# Diesen Block in die wg0.conf auf dem Raspi einfügen:
# sudo nano /etc/wireguard/wg0.conf

# Handy (WG-Tunnel Android)
[Peer]
PublicKey = ${HANDY_PUBKEY}
AllowedIPs = ${HANDY_IP}/32
PersistentKeepalive = 25

# Danach WireGuard neu laden:
# sudo wg syncconf wg0 <(wg-quick strip wg0)
EOF
echo "  peer_eintrag_fuer_wg0conf.txt erstellt."
echo ""

# --- Textdatei zur Kontrolle erzeugen ---
echo "Erzeuge handy_config_kontrolle.txt..."
cp handy.conf handy_config_kontrolle.txt
echo "  handy_config_kontrolle.txt erstellt."
echo "  ACHTUNG: Enthält den Private Key – nach Kontrolle selbst löschen!"
echo ""

# --- QR-Code als PNG erzeugen ---
echo "Erzeuge QR-Code als PNG..."
qrencode -t png -o handy_qrcode.png < handy.conf
echo "  handy_qrcode.png erstellt."
echo ""

# --- Zusammenfassung ---
echo "=============================================="
echo " Zusammenfassung"
echo "=============================================="
echo ""
echo "1. Öffne handy_qrcode.png auf deinem Bildschirm"
echo "   und scanne ihn mit WG-Tunnel (Android)."
echo ""
echo "2. Trage den folgenden Peer-Block in die"
echo "   wg0.conf auf deinem Raspi ein:"
echo ""
cat peer_eintrag_fuer_wg0conf.txt
echo ""
echo "3. In Sipnetic den SIP-Account eintragen:"
echo "   SIP-Server: ${RASPI_IP}"
echo "   TLS/SRTP:   deaktiviert"
echo ""

# --- Temporäre Dateien löschen ---
echo "Lösche handy.conf (enthält den Private Key)..."
rm -f handy.conf
echo "  Erledigt."
echo ""
echo "WICHTIG: Nach dem Scannen und nach dem Eintragen"
echo "         auf dem Raspi diese Dateien löschen:"
echo "         rm handy_qrcode.png peer_eintrag_fuer_wg0conf.txt handy_config_kontrolle.txt"
echo ""
echo "=============================================="
echo " Fertig!"
echo "=============================================="

Bildschirmfoto zu 2026 02 23 14 58
Diese Dateien erzeugt das Skript.

Bildschirmfoto zu 2026 02 23 15 33
Diese drei Dateien von links gezählt erzeugt das Bash-Skript. Android-Kamera der App „WG Tunnel“ auf den QR-Code draufhalten und der WG Tunnel ist konfiguriert.

Welche Informationen musst du für das Skript bereithalten?

      • Tunnel-IP des Smartphones (z.B. 10.99.99.5, vom Asterisk-Betreiber zuteilen lassen)
      • Tunnel-IP des Raspis (z.B. 10.99.99.2, Asterisk-Betreiber fragen)
      • Public Key des Raspis (beim Asterisk-Betreiber erfragen)
      • DynDNS-Adresse oder öffentliche IP des Raspis
      • WireGuard-Port (Standard: 51820, einfach Enter drücken wenn Standard

Obere Liste: Das will das Skript wissen und fragt die Daten dafür ab. An Stelle des Raspis darf es natürlich eine andere Hardware oder ein VPS (Virtual Privat Server) sein. Bitte beachte, dass du in deinem Softphone als Registrar die Tunnel-IP des Raspis eintragen musst, z.B. „10.99.99.2“. wenn der SIP-Port von dem üblichen 5060 abweicht und zum Beispiel 5068 lautet, dann musst du „10.99.99.2:5068“ eintragen.

Das Skript prüft zunächst, ob wireguard-tools und qrencode bereits installiert sind, und installiert fehlende Pakete selbständig nach. Dann fragt es interaktiv nach der gewünschten Tunnel-IP des Smartphones, der Tunnel-IP des Raspis, dem Public Key des Raspis, der DynDNS-Adresse oder öffentlichen IP des Raspis sowie dem WireGuard-Port. Anschließend erzeugt es das Schlüsselpaar für das Smartphone, baut daraus die WireGuard-Konfigurationsdatei für das Smartphone zusammen und erzeugt daraus einen QR-Code als PNG-Datei. Außerdem gibt das Skript eine Textdatei aus, die den fertigen Peer-Block enthält, der in die wg0.conf auf dem Raspi eingetragen werden muss. Die Konfigurationsdatei mit dem Private Key wird nach der QR-Code-Erzeugung automatisch gelöscht. Eine Kontrolldatei mit dem Inhalt der Konfiguration bleibt erhalten, damit man das Ergebnis überprüfen kann – sie sollte aber nach der Kontrolle ebenfalls gelöscht werden, da sie den Private Key enthält.

Ein wichtiger Punkt ist die Vergabe der Tunnel-IP für das Smartphone. Jeder Teilnehmer im WireGuard-Netz muss eine eindeutige IP-Adresse bekommen. Volker führt am besten eine kleine Liste, welche Tunnel-IPs bereits vergeben sind, und teilt jedem neuen Teilnehmer eine freie Adresse zu, bevor dieser das Skript ausführt. Sonst könnte es zu Konflikten kommen, wenn zwei Teilnehmer versehentlich dieselbe IP wählen.

Die Sicherheit des Verfahrens ist bemerkenswert: Der Private Key des Smartphones verlässt den Linux-Rechner, auf dem er erzeugt wurde, ausschließlich auf optischem Weg – nämlich als QR-Code auf dem Monitor, den man mit dem Smartphone abfotografiert. Er wird nie per E-Mail verschickt, nie über ein Netzwerk übertragen und liegt auf keinem fremden Server. Das ist die sicherste mögliche Übertragungsmethode.

Sobald der QR-Code mit WG-Tunnel gescannt wurde, ist die WireGuard-Konfiguration auf dem Smartphone vollständig. Volker trägt derweil den Peer-Block aus der vom Skript erzeugten Textdatei in seine wg0.conf auf dem Raspi ein und lädt WireGuard mit

sudo wg syncconf wg0 <(wg-quick strip wg0)

neu. Die bestehenden Tunnel zu anderen Teilnehmern werden dabei nicht unterbrochen. Danach wird in Sipnetic ein neuer SIP-Account angelegt, bei dem als SIP-Server die Tunnel-IP des Raspis eingetragen wird, zum Beispiel 10.99.99.2. TLS und SRTP werden im Softphone deaktiviert, da WireGuard die Verschlüsselung auf Netzwerkebene übernimmt. Ist WG-Tunnel auf dem Smartphone aktiv, ist die SIP-Nummer erreichbar. Wird WG-Tunnel abgeschaltet, ist die Nummer offline – eine elegante digitale Klingel-aus-Taste.

Das Bash-Skript lässt sich auch nutzen, wenn ein Linux-Teilnehmer einen neuen Tunnel zu Volkers Asterisk aufbauen möchte. Er führt das Skript auf seinem eigenen Linux-Rechner aus, schickt Volker nur die erzeugte Textdatei mit dem Peer-Block per E-Mail – und Volker trägt diesen in seine wg0.conf ein. Der Private Key des Teilnehmers verlässt dabei niemals dessen Rechner. Lediglich der Public Key, der bedenkenlos weitergegeben werden darf, wandert per E-Mail zu Volker.

Siehe auch passen zum Thema weitere Artikel:

SIP VPN Wireguard150px
Vorteile für SIP mit Wireguard: Vershlüsselung, keine Providertrennung, kein Portforwarding, stabile Verbindung.
WireGuard-VPN-Tunnel für SIP-Verbindungen zu einem Asterisk-Server – 20. Februar 2026: Das Beispiel: Volker betreibt einen Asterisk-Server auf einem Raspberry Pi. Sein Freund Junghard möchte sich mit einem SIP-Softphone auf seinem Linux-Notebook oder Linux_PC (Ubuntu oder Debian) über das Internet bei Volkers Asterisk anmelden und darüber telefonieren. Damit der SIP-Traffic nicht abgehört werden kann und der Provider die Verbindung nicht nach einiger Zeit trennt, wird die Verbindung durch einen WireGuard-VPN-Tunnel geschickt. Kein Portforwarding auf Junghards Seite ist nötig, obwohl bei ihm zwei Router hintereinander geschaltet sind. – weiter

VPN IAX2 150px
Wireguard ermöglicht abhörsichere Verbindungen zwischen Asterisk-Servern
Wireguard-VPN-Tunnel für IAX2-Vernetzungen zwischen Asterisk-Servern – 16. Februar 2026: Das Beispiel: Zwei Asterisk-Server sind bereits erfolgreich über eine IAX2-Verbindung miteinander verbunden. Diese IAX2-Verbindung soll nun in beiden Richtungen durch einen VPN-Tunnel geschickt werden. Dazu kommt die VPN-Software  Wireguard zum Einsatz. Beide Asterisk-Server laufen auf Linux Debian (z.B. Ubuntu oder Raspian). Das Vorgehen  und Einrichten wird an einem Beispiel zwischen den beiden fiktiven Asterisk-Servern Michael und Volker erklärt, da man sonst alles vermischt. Zum Schluss erklärt der Artikel, wie man mehrere Asterik-Server mit IAX2 und Wireguard abhörsicher vernetzen kann. – weiter

Auf einem Raspberry Pi lässt sich ein kompletter Telefonserver betreiben, der seinen Teilnehmern über Landesgrenzen hinweg kostenloses Telefonieren von unterwegs oder daheim ermöglicht.
Asterisk-Telefonserver auf einem Raspberry Pi – Installation, Konfiguration, Programmierung, SIP, IAX2, AGI-Skripte, Sicherheit und Tipps zum praktischen Betrieb – 2.11.2022: Diese Seite richtet sich an jene, welche einen Asterisk-Telefon-Server auf einem Raspberry Pi betreiben möchten und später ein kleines Netzwerk aus Asterisk-Servern planen, um ein eigenständiges Telefonnetz aufzubauen. Los geht es mit der Installation von Raspbian und Asterisk auf einem Raspberry Pi und dann nach Lust und Laune immer tiefer in die Programmierung von Asterisk. Die Themen werden laufend erweitert.

Selbstverständlich muss es nicht unbedingt ein Raspberry Pi sein. Andere Linux-Rechner gehen auch. – weiter