NEWS
[Anleitung] WireGuard mit WireGuard-UI auf Proxmox
-
@flybywire Hast du denn den port angepasst auf dem neuen system? Es können nicht 2 wireguard Instanzen über den selben port Laufen.
-
@flybywire said in [Anleitung] WireGuard mit WireGuard-UI auf Proxmox:
@moonsorrox
Hast Du es mit IPv6 hinbekommen? Dann versuche ich das vieleicht auch mal...ja, ich habe es mit einer VM auf Proxmox gemacht, weil LXC wohl Probleme macht, war ne Geburt.
Was mir noch nicht gefällt ist das im Moment das gesamte lokale LAN erreichbar ist, was aber auf meinem iPhone und iPad OK ist.
Aber ich möchte noch 2-3 Clients für nur eine IP einrichten und das werde ich die Tage angehen.
Das Video zur Wireguard Einrichtung ist dieses https://www.youtube.com/watch?v=eD4ihEF_pkQAuf dem Proxmox in der Wireguard Einrichtung gibt es eine wg0.conf und noch eine params Datei die man bearbeiten muss. Weil diese immer als Grundlage für den Client genommen wird.
Mein hauptsächlichste Problem war eigentlich die Endpoint IPv6, ich hatte immer den DNS Namen drin was aber nicht funktionierte, soll aber laut der Experten die mir im Discord geholfen haben auch gehen. Aber so lasse ich es jetzt erst einmal alles da ich über Weihnachten unterwegs bin und es war mir wichtig das ich ins lokale LAN komme.
-
@crunkfx
Ja, der Port auf der "alten" Instanz ist ein anderer. -
@moonsorrox said in [Anleitung] WireGuard mit WireGuard-UI auf Proxmox:
Das Video zur Wireguard Einrichtung ist dieses https://www.youtube.com/watch?v=eD4ihEF_pkQ
Danke, dann werd ich das mal probieren. Hoffe das klappt. Mit dem LXC komme ich einfach nicht weiter.
-
Das ist grundsätzlich keine große Sache, versuch mal folgendes:
-
Erstelle dir 2 Container mit Ubuntu 22.04 und gib bei beiden eine feste IP. Starte sie aber noch nicht.
-
Auf dem Proxmox Host fügst du in die Config (/etc/pve/lxc/[ID-LXC].conf) der beiden LXCs folgendes am Ende ein:
lxc.cgroup.devices.allow: c 10:200 rwm lxc.mount.entry: /dev/net dev/net none bind,create=dir
- Folgenden Befehl auf dem Proxmox Host ausführen
chown 100000:100000 /dev/net/tun
-
Die LXCs starten
-
Über das WebUI von Proxmox in die LXCs einloggen und aktualisieren
apt update && apt upgrade -y
- Wireguard hiermit installieren (du kannst alle Fragen des Skriptes einfach mit Enter bestätigen)
wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh
- Wireguard stoppen
wg-quick down wg0
- Die durch das Skript angelegte Konfiguation kannst du löschen
rm /etc/wireguard/wg0.conf
- Erstelle dir deine Keys/Konfiguration für Wireguard, am einfachsten z.B. über einen Generator
https://www.wireguardconfig.com
-
Bei LXC1 fügst die erstelle Konfiguration für den Server in die /etc/wireguard/wg0.conf ein, bei LXC2 die für Client 1 (siehe Ausgabe des Generators). In der wg0.conf des Clients musst die noch die IP-Adresse deines erstes LXCs bei Endpoint eintragen
-
Danach beide LXCs neustarten
-
Der Tunnel sollte nach dem Reboot nun zwischen den beiden LXCs aufgebaut sein
Das kannst du mit
wg
überprüfen (bei transfer & received sind Daten geflossen):
peer: fvm5vXVxiywkREMQEH89Z3IFa0rI9OLmzP0glKyy1xs= endpoint: 10.4.0.202:51820 allowed ips: 10.0.0.2/32 latest handshake: 11 minutes, 42 seconds ago transfer: 2.68 KiB received, 13.10 KiB sent
Soviel erstmal Grundsätzlich für Verständnis. Natürlich macht das zwischen 2 LXCs eher wenig Sinn - aber zum üben passt das erstmal ;). Danach kannst du es auf deine Umgebung adaptieren, z.B. Port-Weiterleitung deines Routers an den LXC1 und die Config des LXC2 für ein mobiles Endgerät verwenden (dann aber auch die Endpoint IP auf deine öffentliche IP / DDNS setzen.
Die Schritte 5-12 müssen in beiden LXCs ausgeführt werden.
PS: Nach einer Installation eines LXC gibt es erstmal nur root als Benutzer, daher habe ich die Befehle auch ohne sudo angegeben. Einen Benutzer kannst du dir nach Schritt 5 wie folgt anlegen:
adduser DEIN-BENUTZERNAME usermod -aG sudo DEIN-BENUTZERNAME reboot
Dann kannst du mit 6. und unter deinem Benutzer weitermachen, dafür dann aber auch sudo verwenden.
Hoffe ich habe nichts vergessen, viel Spaß beim ausprobieren
PS2: Es gibt auch eine Variante ohne Portweiterleitung im lokalen Netz, dafür brauchst dann nur einen kleinen VServer mit einer öffentlichen IP der als VPN-Gateway fungiert
-
-
@darkiop said in [Anleitung] WireGuard mit WireGuard-UI auf Proxmox:
lxc.cgroup.devices.allow: c 10:200 rwm
Ich werde das mal versuchen. Kurze Frage dazu. Ist das so korrekt? Oben steht ja, dass es bei Proxmox 7 "lxc.cgroup2.devices.allow: c 10:200 rwm" heißen muß?!
-
Ja - meine Doku war hier noch veraltet.
Aber ... hier läuft mein produktiver LXC mit Wireguard auch noch mit der alten Option
-
@darkiop said in [Anleitung] WireGuard mit WireGuard-UI auf Proxmox:
Bei LXC1 fügst die erstelle Konfiguration für den Server in die /etc/wireguard/wg0.conf ein
Nochmal ne doofe Frage, wo(mit) erstelle ich die Konfiguration für den Server?
-
Da gibt es mehrere Möglichkeiten.
Die einfachste wäre:
- Auf der WebUI in den Container einloggen
- Die Config-Datei des LXCs mit einem Editor öffnen (hier im Beispiel nano)
nano /etc/pve/lxc/ID-DES-LXC.conf
Änderungen vornehmen, und mit STRG + X und dann Y beenden/speichern.
-
super Zusammenstellung, ich habe das mal nachgestellt. Bekomme aber zwischen beiden LXCs keine Verbindung.
Habe auch extra Ubuntu genommen, da ich sonst Debian 11 genutzt hatte, macht aber kein Unterschied.Was mich immer noch beschäftigt ist die Netzwerkschnittstelle wenn man sie auf dem Proxmox abfragt bekommt man immer eine eth0@if199 mit weiteren Zeichen dahinter, die sich aber hinter dem @ immer wieder ändert. Will damit nur sagen ob es evtl. deshalb nicht geht da ja eine eth0 eingetragen ist..? Hatte dann wg0 ausprobiert geht auch nicht.
Keine Ahnung, also ich habe mit LXCs keine Verbindung.
-
Das ist auch richrtig so, siehe hier meine des Servers:
2: eth0@if354: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether d2:e0:50:88:13:c6 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.4.0.201/24 brd 10.4.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 2a00:6020:508e:effe::a5/128 scope global dynamic noprefixroute valid_lft 86254sec preferred_lft 86254sec inet6 2a00:6020:508e:effe:d0e0:50ff:fe88:13c6/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 5704sec preferred_lft 2104sec inet6 fe80::d0e0:50ff:fe88:13c6/64 scope link valid_lft forever preferred_lft forever 3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
Und hier meine wg0.conf des Clients:
[Interface] Address = 10.0.0.2/24 ListenPort = 51820 PrivateKey = aGBcwL/MX4PvM17wtjJnUi7IFFJju8+Bym5a0r21K2E= [Peer] PublicKey = IGR7fS4wKg2DDzuuTu+SKsrbVuGC0hBrnF9fZYnpJxk= AllowedIPs = 0.0.0.0/0, ::/0 Endpoint = 10.4.0.201:51820
PS: Das sollte auch mit Debian 11 genau so laufen Ich stells morgen mal nach.
-
ich denek es wird dann mit Debian auch laufen, aber bei mir geht es irgendwie nicht.
Werde mal die Tage nochmal probieren. Irgendwie mag ich noch nicht aufgeben, aber heute erstmal schon -
@darkiop said in [Anleitung] WireGuard mit WireGuard-UI auf Proxmox:
Da gibt es mehrere Möglichkeiten.
Die einfachste wäre:
- Auf der WebUI in den Container einloggen
- Die Config-Datei des LXCs mit einem Editor öffnen (hier im Beispiel nano)
nano /etc/pve/lxc/ID-DES-LXC.conf
Änderungen vornehmen, und mit STRG + X und dann Y beenden/speichern.
Das verstehe ich, da kommt
lxc.cgroup.devices.allow: c 10:200 rwm lxc.mount.entry: /dev/net dev/net none bind,create=dir
hin. Aber
- Die durch das Skript angelegte Konfiguation kannst du löschen
rm /etc/wireguard/wg0.conf
und
- Bei LXC1 fügst die erstelle Konfiguration für den Server in die /etc/wireguard/wg0.conf ein
verstehe ich nicht. Wie erstelle ich die wg0.conf für den server?
-
@flybywire
du kannst auch die wg0.conf behalten, öffnen und den Inhalt löschen und dann kopierst du die Server Geschichten da hinein.
Oder eben löschen dann mit nano öffnen und die ist leer und dann den Inhalt dort rein kopieren... wie rum ist es egal -
@darkiop said in [Anleitung] WireGuard mit WireGuard-UI auf Proxmox:
wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh
Erstmal vielen Dank, dass Du Dir die Zeit nimmst zu helfen!
Ich habe das ganze jetzt nach Deiner Anleitung gemacht, glaube aber auch das funktioniert bei mir nicht. Jedenfalls sehe ich keinen handshake?!
Server:
Client:
-
@flybywire
ist bei mir ganz genauso, es gibt auch kein handshake, aber du hast wenigstens noch die transfer Meldung unten im Client, die hatte ich nicht.Was ich aber komisch finde, ich habe nichts an der Konfig geändert und laufen lasse und siehe da heute nun funktioniert es.
-
@moonsorrox
Ich glaub ich bin zu blöd dafür. In meinem Test gestern hatte ich als Endpoint versehentlich meine WAN IP eingetragen. Nun habe ich das grade geändert, und in der client config die lokale IP des WG server eingetragen. Dann kommt aber das:
Muss ich im Router, auch für den lokalen Test, ein Port forwarding eintragen? -
@flybywire
nein ist ja alles lokal, du routest ja von einer IP zur anderen IP. Den Port brauchst du nur wenn du von aussen rein kommst -
@moonsorrox
Hab jetzt mal bei Endpoint in der client config den Port eingetragen. Dann läuft wg zwar, es geht aber trotzdem nicht. Ich bekomme damit auch keine transfer Anzeige...
-
@flybywire
da läuft nix du zeigst in dem Fall mit wg nur die Config.
Ich muss jetzt leider gleich weg sonst würde ich dir meine Config mal hier rein schreiben.
Du musst irgend etwas an den Serv/Client IPs falsch eingetragen haben, so denke ich es mir.Ich werde es mit den LXCs auch die Tage nochmal ausprobieren wenn ich tatsächlich einen echten Client dran habe so dann mein iPhone oder iPad und eben über IPv6.
Ich habe übrigens, allerdings mit meiner Wireguard VM am Samstag die ersten Test außerhalb von meinem Zuhause gemacht da erwarten dich dann noch einige Überraschungen.
Ich hatte es ja geschrieben IPv6 is nochmal ne andere Hausnummer.Ich habe über Discord mit echten Wireguard Spezies zutun... da habe ich mein Log vom Handy mal eröffnet.
Also bei IPv6 geht es z.B. über LTE von Vodafone wunderbar weil die sauberes IPv6 machen.
Das gleiche dann probiert in dem WLAN in dem ich mich befand, da ging es nicht mehr. Warum weil dieses WLAN nur IPv4 gemacht hat da stehste dann mit IPv6 aussen vorm TorFolgende Einschränkungen gibt es dann,
mein iPhone hat versucht sich per ipv6 zu verbinden, das ist aber gescheitert,
Ursache 1) das wlan vor ort macht kein ipv6 oder kein sauberes ipv6
Ursache 2) sofern doch ipv6 vorhanden sein sollte, ggfls. noch routing fehler beim provider
Ursache 3) oder es wird ipv6 durch einen ipv4 tunnel vom provider durch den router bezogen, dann sind solche verbindungen auch manchmal problematisch
LTE nutzt meist eh schon sauberes ipv6, von daher kein wunder das dass dann läuft.das ist eben noch bei IPv6 das Problem, mein Wireguard-Server auf dem Proxmox macht sauberes IPv6 und da ich Glasfaser habe, habe ich also hier rein zu mir auch ein saubers IPv6 um es mal so auszudrücken.
Das sind die kleinen Kinken dann eben später noch kommen. Das muss jeder für sich austesten.