Proxmox als Homeserver mit IPv6 ( Glasfaser ) und mehreren VMs ( Ports ) und Reverse-Proxy möglich?

NoFloXx

Member
Jun 10, 2021
47
3
13
40
Guten Abend liebe Gemeinde,

ich habe hier zu Hause einen Server stehen auf dem Proxmox läuft.
Die Internetanbindung ist über IPv6, da die Deutsche Glasfaser leider kein IPv4 bereitstellt und ich keine 10 EUR im Monat für eine IPv4 zahlen möchte.

Nun, soweit läuft der Proxmox-Host und meine Container bzw. VMs laufen ebenfalls und sind auch von außen erreichbar.
Gelöst habe ich das Problem einfach mit VPS-Servern von IONOS, da diese 'nur' 1 EUR im Monat kosten und eine IPv4 haben.
Diese stellen per Wireguard einen Tunnel zur VM her und leiten den gesamten Traffic einfach per 'socat' an die entsprechende VM auf dem Proxmox weiter. Das klappt soweit hervorragend.
In der FRITZ!Box 7590 ist für jede VM eine Route eingetragen ( 172.31.0.1, 255.255.255.255, 192.168.1.47 und eine weitere Route 172.31.0.3, 255.255.255.255, 192.168.1.48 ) und die VMs können sich untereinander finden und ich kann sie auch anpingen.
Da aber langsam aber sicher doch mehr VMs kommen und ich nicht für jede neue VM einen VPS von IONOS bezahlen möchte, stellt sich mir die Frage, ob man das Problem der Ports mit einem ReverseProxy lösen könnte?

Beispiel:
Aktuell habe ich 2x Windows Server 2019 laufen, auf einem ist Plesk installiert, über den meine Webseite läuft.
Dort ist also z.B. Port 80 und 443 besetzt - dafür ist dann der eine VPS zuständig ( der ja auch nur 1x Port 80 und 1x Port 443 weiterreichen kann ).
Eine zweite Windows Server 2019 VM habe ich laufen, auf der ebenfalls Port 80 und 443 benutzt wird ( eMail-Server ) und das Selbe natürlich auf dem 2. VPS auch.

Nun stelle ich mir die Frage, ob ich nicht durch einen ReverseProxy das so lösen könnte, dass durch das Matchen der ( Sub- ) Domains die Ports und VMs so erreichtbar werden, ohne dass ich immer wieder neue VPS für jede VM haben muss?

Ich hoffe, ihr versteht mein Problem und mein Vorhaben.
Bei Fragen, einfach gerne melden. Ich versuche es dann zu beantworten.
Da ich Proxmox genial finde und gerne dran festhalten möchte, hoffe ich, dass jemand mein Problem versteht und evtl. eine Lösung kennt.
Ich wäre für jede Hilfe dankbar und wenn möglich, bitte recht einfach erklärbar, da ich nicht wirklich große Ahnung habe und schon sehr stolz bin, dass alles soweit läuft bisher. Mich stört einfach nur, dass ich quasi für jede VM, die von außen erreichbar sein soll, ein VPS her muss mit IPv4 wegen der Ports.
Bei HAProxy habe ich z.B. mal gelesen, dass dieser die Ports dann per Match auf die ( Sub- ) Domain verwalten kann und man somit nur einen Port 80 und einen Port 443 von einem VPS benötigt und nicht für jede VM einen VPS. :)


Liebe Grüße,
Christian ;)
 
Hallo,

ich habe das mit IONOS so gelöst:
  • Wireguard Server auf dem IONOS
  • Wildcard Domain auf die IP Adresse des IONOS gelegt
  • In jedem Proxmox LXC oder VM ein Wireguard Client mit Ziel zum IONOS
  • Docker auf dem IONOS mit NGINX Proxy Manager - Port 80 + 443 auf Wireguard Client-IP und Port weiterleiten.
  • Im PC/Smartphone/Raspi usw. auch WG-Client zum IONOS
Damit kann über den Reversproxy und einer SUB-Domain jede Wireguard IP bzw. die Anwendung dazu erreicht werden. So richtig Spaß machen die CAM Apps auf dem Smartphone, die über eine sub-Domain/Wireguard und dem Reversproxy direkt aus dem Internet erreichbar sind.

Viel Spaß damit.

Gerhard
 
Last edited:
  • Like
Reactions: KaiS
Danke für die schnelle Antwort.
Habe sie leider erst heute lesen können.
Könntest du mir vielleicht eine Anleitung schreiben, wie ich das mache?
Meine Domain liegt leider noch über 6 Monate bei Strato...

Ansonsten hört sich deine Lösung ganz gut an.
Danke schon mal. :)
 
Hallo,

wie Wireguard funktioniert solltest du aufgrund deiner Anfrage schon wissen.
Deine Domain bei Strato hat damit erstmal nichts zu tun. A-Record sollte bei jedem Domainhoster einstellbar sein.
Wie man Docker und Nginx installiert hängt von deinem Linux bei Ionos ab - da gibt es extrem viele Anleitungen.

... und mehr ist es nicht.
 
Ich muss also auf dem IONOS Docker installieren, danach NGINX und dann per Wireguard vom IONOS auf meinen Proxmox-Host, richtig?
Vom Proxmox-Host dann für jede VM einen Wireguard auf den IONOS und im NGINX dann für jede VM einen Eintrag hinterlegen, korrekt?
Da ich ja zu Hause keine öffentliche IPv4 habe, sondern nur IPv6, dank Deutsche Glasfaser.
 
Last edited:
Hallo, wie schon geschrieben, es ist der "NGINX Proxy Manager" und nicht der NGINX Container. Vielleicht hilft es dir wenn du dir eine Skizze machst wie die Kommunikation laufen soll. Das Problem hat man nicht nur mit der Deutschen Glasfaser - jedes Gerät im Mobilfunknetz oder über einen WiFi Hotspot hat eine private IPv4.
dann per Wireguard vom IONOS auf meinen Proxmox-Host
Alle Wireguard Verbindungen werden vom Client (LXC/VM/Proxmox/Windows) zum Server (IONOS) aufgebaut. IONOS kann über Wireguard jeden VPN Client über eine FIXE PRIVATE Wireguard IPv4 erreichen.
 
Last edited:
Ich hab hier mal was 'gemalt', wie es aktuell ist. Ich hoffe, ihr könnt da was erkennen...
Was ich noch nicht erwähnt habe, in der FritzBox sind zwei IPv4-Routen drin, einmal von 172.31.0.1 zur VM auf dem Proxmox und einmal eine Route 172.31.0.3 zur 2. VM auf dem Proxmox.
https://ibb.co/4gwDhZn

Pingen kann ich vom IONOS auf die Wireguard-IP, aber die anderen IPs im Netzwerk findet er nicht.
 
Last edited:
Habe es mittlerweile hinbekommen.
Falls Interesse an der Lösung besteht, gerne melden. :)
 
  • Like
Reactions: KaiS
Hallo liebe Freunde,
bitte entschuldigt, dass ich mich so lange nicht habe blicken lassen.
Entschuldigt, falls diese Anleitung 'für Dummies' ist, aber ich denke, so kann jeder gut damit arbeiten und ggf. mal was nachlesen.
Musste mir auch einige Sachen von Grund auf anlesen und fand dann solche Schritt-für-Schritt-Anleitungen ist meine Rettung! :)

Ich hoffe euch mit meiner Anleitung helfen zu können, wie ich es zum Laufen bekommen habe.
Kleine Info am Rande: Ich habe den kleinsten VPS-Server von IONOS genommen, der monatlich gerade mal 1 EUR kostet. Dieser hat eine 400MBit-Anbindung, was normaler Weise dicke ausreicht und eben keine Drosselung hat, also Traffic-Flat.
Außerdem habe ich die Firewall des VPS komplett geöffnet. Ob dies so schlau ist, weiß ich nicht, aber bisher läuft alles.
Als Betriebssystem habe ich Debian 10 genommen, ihr könnt aber auch Debian 11 nehmen, sollte genauso gut klappen.

Als Erstes habe ich natürlich den VPS auf den neuesten Stand gebracht mit 'sudo apt update && apt upgrade -y'.
Ggf. müsst ihr sudo noch installieren ( 'apt install sudo -y' ).

Anschließend habe ich Wireguard nach dieser Anleitung installiert:
https://schroederdennis.de/tutorial-howto/wireguard-vpn-server-installieren-client-to-server/
( WICHTIG: Schritt 4 & 5 müssten getauscht werden, sonst klappt das nicht! )

Hier die Screenshots meiner Configs:
VPS-Server: https://abload.de/img/server6bjhb.jpg
Client: https://abload.de/img/clientkskjq.jpg

Der andere Wireguard-Client läuft auf meinem Proxmox, ebenfalls mit Debian.
( WICHTIG: In der FRITZ!Box habe ich eine IPv4-Route hinzugefügt, sonst klappt das alles nicht! )
Die Routing-Tabelle findet ihr hier: Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> IPv4-Routen.
Hier der Screenshot: https://abload.de/img/screenshoteekvw.png
Die IPs müssen natürlich mit den eurer Clienten übereinstimmen.
Zur Sicherheit habe ich den VPS und den Clienten einmal neu gestartet und dann mit 'wg' sichergestellt, dass eine Verbindung aufgebaut wird.
Dies kann ggf. bis zu 1 Minute nach dem Booten dauern.
Ihr solltet dann auch in der Lage sein, alle anderen PCs vom VPS aus anzupingen, die im selben Netzwerk sind.
Beachtet aber hierbei, dass es auch hier bis zu 1 Minute dauern kann, bis eine PING-Antwort kommt. Funktionieren sollte es aber!

Ebenfalls wichtig ist noch, dass eure ( Sub- ) Domain auf die IP des VPS zeigen muss. Diese Umstellung kann u.U. je nach Provider bis zu 24h dauern!

Weiter gehts auf dem VPS dann mit 'socat'.
Installieren könnt ihr diesen mit 'apt install socat -y'.
Meine socat.sh-Datei sieht so aus: https://abload.de/img/socate4ks9.jpg
Die Ports, die ihr durchreichen wollt, müsst ihr einmal links hinter dem 'TCP4-LISTEN:PORT' und rechts hinter der internen IP-Adresse anpassen 'TCP4:IP:PORT'.
Wichtig ist noch, die socat.sh-Datei ausführbar zu machen, sonst klappt das nicht.
Ich habe die socat.sh-Datei im Home-Verzeichnis abgelegt, daher müsst ihr in das Home-Verzeichnis wechseln und die socat.sh ausführbar machen: 'chmod u+x socat.sh'. Dies geht nur aus dem Home-Verzeichnis heraus!
Zum Abschluss muss diese noch zum Autostart hinzugefügt werden, falls euer VPS mal rebootet, sich aufhängt oder sonst was.
Dies macht ihr mit diesem Befehl: 'crontab -e'.
Und so sieht meine crontab aus: https://abload.de/img/crontab1vknk.jpg

Als letzten Schritt brauchen wir noch den Nginx Reverse-Proxy und Docker bzw. Docker-Compose auf dem VPS.
Dies habe ich einfach nach dieser Anleitung installiert:
https://nginxproxymanager.com/guide/

Das wars im Grunde.
Sollte es trotzdem nicht klappen, lasst es mich wissen.
Dann schaue ich gerne noch mal genauer nach, ob bzw. was ich vergessen habe. :)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!