Betrieb eines Pi Node mit einem DS-lite und IPv6 Anschluss

SCHRITT FÜR SCHRITT WORKAROUND

Wer einen Pi Node betreiben möchte, stößt häufig auf die Anforderung, dass die Node über eine IPv4-Adresse erreichbar sein muss. In Deutschland erhalten Internetnutzer jedoch oft von ihrem Internetanbieter einen DS-lite (Dual Stack) mit einer zugewiesenen IPV6-Internetadresse. Für viele scheint hier das Vorhaben, einen Pi Node zu betreiben, zunächst zu enden.

In diesem Workaround erfahren Sie, wie Sie trotz DS-lite und IPv6-Anschluss mit etwas Aufwand einen Pi Node betreiben können! Wenn Sie Schwierigkeiten haben, die hier erklärten Schritte zu verstehen, zögern Sie nicht, uns über unsere Telegram Gruppe zu erreichen. Wir helfen Ihnen gerne bei der Einrichtung.

(überarbeitete Version, Stand: 05.09 2024)

Was wird benötigt ?

CLIENT VORBEREITUNG
  1. Downloaden Sie die Pi Network Node Software hier herunter: https://minepi.com/pi-blockchain/pi-node/
  2. Downloaden Sie das kostenlose Linux Kernel Update Paket für Windows hier herunter: https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package
  3. Downloaden Sie die Docker Desktop Software in der Version 4.34.0 hier herunter: https://docs.docker.com/desktop/release-notes/
  4. Downloaden Sie die WireGuard Software hier herunter: https://www.wireguard.com/install/
  5. Downloaden Sie PUTTY hier herunter: https://putty.org/

ACHTEN SIE STETS DARAUF NUR SOFTWARE VON OFFIZIELLEN QUELLEN HERUNTER ZU LADEN.

Jetzt müssen Sie in Ihrer Windows Firewall die benötigten Ports öffnen. Das Funktioniert so:

  1. Drücken Sie die Windows Taste + R
  2. Fügen Sie folgenden Befehl ein: firewall.cpl
  3. Klicken Sie nun links auf Erweiterte Einstellungen.
  4. Erstellen Sie jetzt eine neue Regel für Eingehende Regeln (eingehende Verbindungen) und öffnen Sie die TCP Ports: 31400 bis 31409.
  5. Gleiches machen Sie nun für die ausgehende Regeln und öffnen die TCP Ports 31400 bis 31409 (ausgehende Verbindungen).
  6. Schliessen Sie alle Fenster.
WIREGUARD SERVER INSTALLATION
  1. Verbindung zum Server herstellen: Starten Sie PuTTY und geben Sie die Domain oder IP-Adresse Ihres Servers in das Feld „Host Name (or IP address)“ ein. Klicken Sie dann auf „Open“ um eine Verbindung herzustellen.
  2. Zum Root-Benutzer wechseln: Nachdem Sie sich mit Ihrem Benutzernamen und Passwort angemeldet haben, geben Sie sudo su ein, um zum Root-Benutzer zu wechseln.
  3. Paketlisten aktualisieren: Aktualisieren Sie Ihre Paketlisten mit dem Befehl apt update.
  4. Installierte Pakete aktualisieren: Installieren Sie alle verfügbaren Updates für die auf Ihrem Server installierten Pakete mit dem Befehl apt upgrade -y.
  5. Benötigte Pakete installieren: Installieren Sie die für die weiteren Schritte benötigten Pakete mit dem Befehl apt install ca-certificates apt-transport-https nano -y.
  6. WireGuard installieren: Installieren Sie WireGuard und weitere benötigte Pakete mit dem Befehl apt install wireguard -y.
  7. IP-Weiterleitung aktivieren: Aktivieren Sie die IP-Weiterleitung im Kernel des Servers. Öffnen Sie dazu die Konfigurationsdatei der Kernel-Parameter mit dem Befehl nano /etc/sysctl.conf. Entfernen Sie das „#“-Zeichen vor der Zeile „net.ipv4.ip_forward=1“ und speichern Sie die Änderungen mit STRG + X, danach die „Y“-Taste und anschließend Enter. Laden Sie die Einstellungen der „sysctl.conf“-Datei neu mit dem Befehl sysctl -p. Alternativ können Sie Ihren Server auch neu starten.
  8. Zum WireGuard-Verzeichnis wechseln: Wechseln Sie mit dem Befehl cd /etc/wireguard/ in das Verzeichnis der WireGuard-Konfiguration.
  9. Benutzerrechte einschränken: Führen Sie den Befehl umask 077 aus, um die Benutzerrechte der Dateien, die Sie in den nächsten Schritten erstellen, einzuschränken. Damit können diese Dateien nur noch vom Besitzer (root) gelesen und geschrieben werden.
  10. Private und Public Keys generieren: Generieren Sie einen Private- und Public-Key für den Server mit dem Befehl wg genkey | tee server_private.key | wg pubkey > server_public.key. Generieren Sie nun auch einen Private- und Public-Key für den ersten VPN-Client mit dem Befehl wg genkey | tee client1_private.key | wg pubkey > client1_public.key. Diese Keys können Sie sich anzeigen lassen, indem Sie beispielsweise den Befehl cat server_private.key oder cat server_public.key verwenden.
  11. WireGuard-Interface konfigurieren: Erstellen Sie eine Konfigurationsdatei für das WireGuard-Interface „wg0“ mit dem Befehl nano /etc/wireguard/wg0.conf. Fügen Sie in diese Konfigurationsdatei die unten stehenden Code ein und ersetzen Sie dabei „<Server Private-Key>“ durch den Private-Key des Servers, „<Öffentlicher Schlüssel>“ durch den öffentlichen Schlüssel der beim Client angezeigt wird und „eth0“ durch den Namen des physischen Netzwerk-Interfaces. Speichern Sie die Änderungen mit STRG + X, danach die „Y“-Taste und anschließend Enter.

CODE:

[Interface]
Address = 192.168.200.1/24
ListenPort = 51820
PrivateKey = <Server Private-Key>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# Client1
[Peer]
PublicKey = <Öffentlicher Schlüssel>
AllowedIPs = 192.168.200.2/32

WireGuard-Interface aktivieren: Aktivieren Sie das soeben konfigurierte WireGuard-Interface mit dem Befehl wg-quick up wg0. Wenn Sie möchten, dass das WireGuard-Interface nach dem Hochfahren Ihres Servers automatisch gestartet wird, führen Sie den Befehl systemctl enable wg-quick@wg0 aus.

WEITERLEITUNG AUF DEM SERVER EINRICHTEN
  1. Neue Datei erstellen: Erstellen Sie eine neue Datei namens start.sh mit dem Befehl nano start.sh Achten Sie darauf dass Sie sich im WireGuard Verzeichnis befinden (/etc/wireguard/).

  2. Inhalt hinzufügen: Fügen Sie den folgenden Inhalt in die Datei ein:

CODE:

#!/bin/bash
echo "###################"
echo "Erstelle IPTables INPUT Regeln"
echo "###################"
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 51820 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -P INPUT DROP

echo "###################"
echo "Erstelle IPTables NAT Regeln"
echo "###################"
iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dport 31400-31409 -j DNAT --to-destination 192.168.200.2
iptables -t nat -A POSTROUTING -o wg0 -p tcp -m multiport --dport 31400-31409 -d 192.168.200.2 -j SNAT --to-source 192.168.200.1

echo "###################"
echo "Erstelle Forward Regeln"
echo "###################"
iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -o wg0 -p tcp -m multiport --dport 31400-31409 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Anpassungen vornehmen: Ersetzen Sie in den Zeilen mit “eth0” diesen Wert durch den Namen des Netzwerk-Interfaces, das in Ihrer Serverkonfiguration verwendet wird.

Änderungen speichern: Speichern Sie die Änderungen in der Datei, indem Sie STRG + X drücken, danach die “Y”-Taste und anschließend Enter.

Datei ausführbar machen: Machen Sie die Datei ausführbar mit dem Befehl chmod 700 start.sh.

Datei ausführen: Führen Sie die Datei aus mit dem Befehl ./start.sh.

Autostart für die Weiterleitung einrichten: Geben Sie folgenden Befehl ein: crontab -e und fügen Sie am untersten Ende der Datei folgende Zeile hinzu:@reboot /etc/wireguard/start.sh Speichern Sie die Änderungen mit STRG + X, danach die „Y“-Taste und anschließend Enter.

WIREGUARD CLIENT KONFIGURATION
  1. Erstellen Sie einen neuen Tunnel indem Sie auf „Tunnel hinzufügen“ und „Einen leeren Tunnel hinzufügen“ klicken.
  2. Fügen Sie in diese Konfigurationsdatei folgenden Inhalt unten ein und ersetzen Sie dabei „<Server Public-Key>“ durch den Public-Key des Servers und „Server-IP“ durch die IP-Adresse Ihres Servers:

CODE:

Address = 192.168.200.2
DNS = 1.1.1.1

[Peer]
PublicKey = <Server Public-Key>
Endpoint = <Server-IP>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

3. Starten Sie das Wireguard Programm.
4. Klicken Sie jetzt unten auf „Tunnel hinzufügen“ und wählen Sie die zuvor erstellte Konfigurationsdatei „client1.conf“ aus.
5. Klicken Sie auf „Aktivieren“.

Wenn Sie der Anleitung genau gefolgt sind müsste jetzt Ihr CLIENT-PC sich über einen WireGuard Tunnel mit Ihrem vServer verbunden haben.

 
PI NODE & DOCKER DESKTOP INSTALLATION
  1. Öffnen Sie die Eingabeaufforderung mit Administrationsrechten.
  2. Kopieren Sie folgenden Befehl und fügen diesen in die zuvor geöffnete Eingabeaufforderung ein: dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  3. Kopieren Sie folgenden Befehl und fügen diesen in die zuvor geöffnete Eingabeaufforderung ein: dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  4. Starten Sie den PC neu.
  5. Installieren Sie das zuvor herunter geladene Linux Kernel Update Paket für Windows.
  6. Öffnen Sie die Eingabeaufforderung mit Administrationsrechten.
  7. Kopieren Sie folgenden Befehl und fügen diesen in die zuvor geöffnete Eingabeaufforderung ein:
    wsl --set-default-version 2
  8. Installieren Sie die zuvor herunter geladene Docker Desktop Software (Achtung: Hier jetzt nur die Lizenzvereinbarung aktzeptieren!)
  9. Installieren Sie jetzt die zuvor herunter geladene Pi Node Software.
  10. Starten Sie den PC neu.

Sobald Windows neu gestartet ist, können Sie die Docker Desktop- und Pi Node-Software starten.

Vorausgesetzt, dass alle Schritte gemäß der Anleitung korrekt ausgeführt wurden, sollte Docker Desktop nun einen Stellar Dummy-Container und den Pi Network Consensus-Container installiert haben. Siehe Bild:

Bitte beachten Sie: Pi Consensus Container verwendet nur drei Ports: 31401, 31402 und 31403, die anderen bleiben geschlossen. Der Stellar Dummy Port Testcontainer benötigt von 31400 bis 31409 offene Ports!

ACHTUNG: Es kann vorkommen dass Sie auch die benötigten Ports im Webinterface Ihres VServer Anbieters freigeben müssen.

 

ANMERKUNG ZU WIREGUARD:

WireGuard ist eine sehr simpel aufgebaute kostenlose VPN-Lösung, welche zugleich schnell und sicher ist. Es handelt sich dabei um eine Open-Source-Software, die modernste Verschlüsselungsverfahren einsetzt. Die Performance ist besser als bei IPsec und OpenVPN und WireGuard wird auf vielen Betriebssystemen unterstützt. Dazu zählen Windows, macOS, Linux, BSD, iOS und Android.

Eine VPN-Verbindung wird durch den Austausch von öffentlichen Schlüsseln (Public-Keys) hergestellt, genau wie beim Austausch von SSH-Schlüsseln. Der Konfigurationsaufwand ist vergleichsweise gering. Ein weiterer Vorteil von WireGuard ist die Unterstützung des Roamings zwischen IP-Adressen.

FOLGEN SIE UNS

Folgen Sie uns in unsere Pi Netzwerk Deutschland Telegram Gruppe für persönliche Hilfe und Howtos zum einfachen Start in die Kryptowelt. Chatten Sie dort auch mit Gleichgesinnten.

Pi Netzwerk Deutschland Telegram Gruppe

Hinweis: Laden Sie Telegram kostenlos im Play- oder App Store oder von der Telegram Homepage herunter: https://telegram.org. Dort finden Sie auch eine Windows Version.

Pi Netzwerk Deutschland