Hallo JasMich.de,
ich kann dir keine Lösung nennen und sehe auf die ersten paar Blicke auch nicht, wie man das ohne großen Aufwand realisieren kann. Um diese Einschätzung zu begründen, schauen wir uns mal gemeinsam an, wie die mit der Anforderung verbundenen technischen Details funktionieren:
Wenn die Anwendung/der Client eine Anfrage an einen Server mit einem bestimmten DNS-Namen richtet, löst er diesen zu einer IP-Adresse auf. Dies geschieht über die DNS-Infrastruktur, die dir üblicherweise über deinen Heimrouter/Internetprovider zugänglich gemacht wird. Erst nachdem die IP-Adresse bekannt ist, wird eine Verbindung zum eigentlichen Zielserver aufgebaut, womit wir beim ersten Problem wären: Der Server erfährt an dieser Stelle nicht, welchen Namen die Anwendung denn nun verwendet hat.
Damit eine Verbindung hergestellt werden kann, benötigen wir jedoch nicht nur die IP-Adresse, sondern auch die Port-Nummer. Hier gibt es die sogenannten "Well known ports" wie z.B. 80 für unverschüsselte HTTP-Verbindungen oder 443 für verschlüsselte HTTP-Verbindungen. Grundsätzlich sind diese Portzuordnungen in Abhängigkeit von den Möglichkeiten der Server-/Anwendungskonfiguration jedoch flexibel. Ich könnte beispielsweise meinen SSH-Server auf Port 80 umlagern.
Spätestens nach den letzten zwei Absätzen ergibt sich für mich, dass sich die Anforderung mit ein paar einfachen Regeln für iptables/nftables nicht ohne weiteres umsetzen lässt, da uns hier einfach zu wenig Informationen zur Verfügung stehen. Gleichzeitig drängt sich hier die Frage auf, warum denn z.B. Apache vhosts funktionieren. Die Antwort auf diese Frage ist, dass der aufgerufene DNS-Name in den Headern des HTTP(S)-Requests übertragen wird.
Eine Lösung für deine Anforderung müsste also folgende Kriterien erfüllen bzw. Ansprüche an die verwendeten Protokolle stellen:
- der Server mit der öffentlichen IP-Adresse muss alle Verbindungen annehmen und alle Protokolle verstehen können - einschließlich der Terminierung ansonsten verschüsselter Verbindungen
- jedes verwendete Protokoll muss die Information transportieren, für welchen DNS-Namen die Verbindung aufgebaut wurde
- jedes Protokoll/jede Verbindung muss in verschiedenen Graden für Manipulationen geeignet sein (Schlüsselworte: Reverse Proxy, Transparenter Proxy, Address mangling)
Das klingt für mich nach einem Haufen Arbeit, der sich vielleicht durch das Anmieten eines VPS mit mehreren IPv4-Adressen und einer VPN-Verbindung ins eigene Netz günstiger und schneller umsetzen lässt.
Viele Grüße
Cranvil