Wie erreicht man Server hinter einem openVPN Netzwerk?
Hallo ihr lieben Spezialisten,
ich kenne mich ja bei vielen Dingen aus, aber VPN ist noch ein Fremdwort...
Ich habe zu Hause ein IPv6 Subnet zugewiesen von meinem Internetprovider (deutsche Glasfaser). Eine IPv4 bekomme ich nicht... (=DS Lite)
Ich habe es jetzt geschafft, einen OpenVPN Server auf einer VM bei Hetzner.de zu installieren und dort zu betreiben.
Bei mir am lokalen Rechner läuft ein openVPN Client, der sich auch vollständig mit dem Server verbindet. Der lokale Rechner wird hinter einer Fritz Box betrieben. Die Verbindung zum VPN Server steht:
Verbunden mit: Name der Servers, verbunden seit: Datum und Zeit, Zugewiesene IP: 10.8.0.2
jetzt möchte ich aber beispielsweise bei mir auf dem Rechner / Client seitig, einen Minecraft Server starten, der dann über die IP, die auf der Serverseite "anliegt", hosten.
ich kann, wenn ich auf "wieistmeineip.de" schaue, auch die externe IP von Hetzners VPN Server sehen und es ist auch die richtige IP, die ich dort habe - ich kann aber nicht über die sozusagen "externe" IP auf meinen Server hinter dem VPN Client zugreifen...
ich kann auch, bei aktiver Verbindung, Webseiten öffnen, aber bei einem Portcheck ist der Port 80 zu... versteh ich nicht...
Wie bekomme ich meine lokalen Server an die IPv4, die der VPN Server bei Hetzner hat.
Ich weiss, das ganze gäbe es auch fertig bei feste-IP.net, aber ich möchte es selbst aufbauen, rein zur Übung und für spätere Zeiten...
danke schonmal, liebe Grüße und bleibt gesund
der User
edit 01: hier der Log, den der openVPN Client erzeugt (xxx.xxx.xxx.xxx = externe IP)
installiert wurde alles hiermit:
4 Antworten
Kommentiere hier nur, weil ich ebenfalls an Antworten interessiert bin.
Betreibe NAS mit FTP, dazu eine Image Gallery und Mailserver - ohne feste IPv4 habe ich es nicht zum laufen bekommen, Außenanfragen DSLite auf meinen Heimanschluss zu bekommen.
Abhilfe schaffte nur die Umstellung durch den DSL Anbieter von DSLite auf eigene IPv4. 1und1 macht das glücklicherweise anstandslos innerhalb eines netten Telefonats völlig kostenlos.
die Commands auf Debian sind:
10.8.0.2 ist die Interne, durch den VPN Server vergebene, IP, die dem Client zugewiesen wird und worüber der, beispielsweise ARK Server, gehostet wird
sudo iptables -t nat -A PREROUTING -d [IP des VPN Servers] -p tcp --dport 25565 -j DNAT --to-dest 10.8.0.2:25565
sudo iptables -t filter -A INPUT -p tcp -d 10.8.0.2 --dport 25565 -j ACCEPT
Ich kann meine internen Server und IP Cams ja alle erreichen, über IPv6...
aber Ark Server laufen nicht über IPv6 und der Streamingserver macht das auch nicht richtig...
Intern einen Server zu erreichen ist kein Problem, gleiches LAN. Von außen draufkommen ist aber eine andere Nummer. Der Hetzner Server hat vermutlich zig User drauf, kommt dort eine Anfrage für deinen Minecraft Server daheim an, weiss der nicht, an welchen Kunden er routen soll. So kann wahrscheinlich keine Lösung aussehen.
so sieht VPN aber aus...
Ein externer Server mit IPv4 verbindet sich mit dem Client, der darüber dann die IPv4 des Servers erreicht... oder seh ich das falsch... ?
Umgedreht, du wählst dich quasi in das Netzwerk des Servers ein und nutzt es. Hätte der jetzt zb Netzwerkpfade freigegeben, die man nur mit interner IP sieht, würden bei dir diese Netzwerklaufwerke angezeigt. Das ist und Sinn und Zweck eines Firmen VPN.
Eine Anfrage, die auf der IP des Servers eingeht, hat aber nix mit deinem VPN zu tun. Das ist einfach nur eine Anfrage auf einen Port des Servers bei Hetzner und die wird nicht den Weg zu dir nach Hause finden.
Heisst das dann im Umkehrschluss vielleicht, dass ich den Client bei Hetzner installieren muss und der sich mit einem local hier bei mir gehosteten Server verbindet ? würde es dann gehen, dass ich mich über die von Hetzner bezogene IP erreichen kann ?
irgendwie muss es ja gehn, wie gesagt wie bei feste-ip.net, die schaffens ja auch mit VPN...
Deutsche Glasfaser stellt sich da quer... hab ich schon mehrfach versucht...
Übrigens wurde mir anstandslos IPv4 gegeben, weil ich dem Herrn am Telefon gesagt haben, dass ich auch DSLite nutzen würde, er mir aber eine Lösung für Außenzugriff geben muss. Es gab keine.
Um mit dem Server im Internet zu Kommunizieren ,reicht es nicht aus eine IP vom ISP zugewiesen zu bekommen. Registriere dich bei DYNdns.org . Dort findest auch Anleitungen wie man die zugewiesenen Daten verwendet. Um also mit dem Server von Hetzner sich zu verbinden musst du auch im Internet sichtbar sein ,Weltweit.
Dies erreichst du mit DYNdns.org.
Wenn somit beide Stellen im Internet sichtbar sind können sie auch miteinander Kommunizieren ,vorausgesetzt es ist auch hier auf beiden Seiten dafür korrekt Konfiguriert.
dyn setzt mir doch nur einen Hostnamen auf meine IP... den brauche ich aber nicht zwingend... die IP reicht, aber erreichbar muss sie sein...
ich werde jetzt nochmals versuchen den VPN Server im heimischen Netz zu betreiben und von "aussen" per VPN Client zuverbinden... mit "aussen" ist die VPS bei Hetzner gemeint...
ich möchte also, wenn ein Spieler mit der IP von der VPS bei Hetzner verbindet, dass diese Daten über den Tunnel in mein Netzwerk gelangen und von dort den Gameserver erreichen...
Wie gesagt, es funktioniert, wenn man den VPN Dienst von Feste-IP.net:
nutzt, aber ich will das selber machen um Kosten zu sparen...
Ein VPN ist nichts anderes wie ein LAN, aber eben mit entfernten Clienten. Innerhalb des VPN erreichst du jeden Client. Du schreibst hier von einer "externen" IP, aber das ist eben nur eine entfernte interne IP-Adresse.
Auch die 10.x.x.x ist eben wie die 192.168.x.x. nur ein privater LAN-Bereich.
mag sein, dennoch brauche ich Hilfe, was ich einstellen muss, an den Gameservern...
den MC Server beispielsweise (der Einfachheit halber MC) erreiche ich über 127.0.0.1 und auch meine lokale IP 10.8.0.2...
Über die externe aber nicht... wie wenn der Port geschlossen wäre, aber laut IP Tables sollte alles offen sein...
ich habe übrigens dieses Script benutzt :
Selbst mit externer IPv4 würdest du ihn wahrscheinlich nicht erreichen. Erst einmal geht es los, dass der Server eine feste IP im Heim-Netzwerk bekommt und dann müssen die Ports forwarded werden. Also wenn am Router auf Port XYZ eine Anfrage reinkommt, muss die geroutet werden auf den Heimserver und dessen Port ZYX.
Problem ist, es kommen keine Anfragen an deinen Router rein. Sprichst du die DSLite IP von außen an - ob VPN oder nicht, landest du im Rechenzentrum des Providers, nicht bei dir daheim. Da du dir die IP mit verschiedenen anderen Glasfaser Nutzern teilst. Das ist das Problem. Woher soll der Verteiler beim Provider bei einer Anfrage wissen, an welchen Haushalt er es leiten soll? Geht nicht und da hab ich damals einen Hals gekriegt.
Dieses Problem habe ich monatelang versucht zu lösen, keine Chance außer IPv4 fest oder den gewünschten Serverdienst auf einem root oder vps von Hetzner, OVH und Konsorten zu installieren.
Ich spreche nicht die IP von DS Lite an, sondern die, die mir bei Hetzner (oder wo auch immer, is ja nur ne VM mit openVPN Server) gegeben wird... und die wird durch einen IPv6 Tunnel auf meinen Client getunnelt, der innerhalb meines Netzwerks läuft...
und das VPN intressiert mein Router nicht - das tunnelt durch... der Router dient bei IPv6 sowieso nur als Portblocker (Firewall) aber man muss keine IP freigeben, denn IPv6 geht direkt zum Server... jeder Server innerhalb des privaten Netztes, hat seine eigene IPv6... das ist ja das gute am IPv6... das muss sich nur erstmal durchsetzen - wegen mir kann man heute noch IPv4 abschalten, denn IPv6 ist VIEL einfacher....
Du braucht eine öffentliche IP-Adresse, die auf den (interne) Server-IP umgeleitet werden kann. Dies wird in der Regel in einem Router gemacht, eventuell kann das in deiner VM ja auch so eingestellt werden. Ohne diese öffentlicher IP-Adresse ist dein VPN gar nicht mit dem Internet (v4) verbunden.
Wenn dir diese öffentliche IP bekannt ist, musst du dann einen Port auf den interem Server-IP weiterleiten.
ja, das hab ich ja alles...
nur die Frage, wo steht Server und wo Client...
und, kann der Client / Server einfach so, offen rumstehn und durch den Tunnel die IPv4 Packete weiterleiten, die meine Gameserver benötigen ?
Wie siht der Gameserver den Tunnel ? Muss ich den angeben ?
Das Log sieht doch nach erfolgreicher Verbindung aus? Ich kann da nur success aber kein fail* oder err* entdecken.
Die Gegenstelle muss sich dann ebenfalls mit einem Proxy verbinden, der den clientseitigen Eingang des VPN-Tunnels darstellt. Dafür braucht dieser Proxy natürlich die IPv6-Adresse des serverseitigen Proxys.
hmm. die Spieler sollen sich doch aber mit der IP verbinden, die der Server bei Hetzner hat... und diese Verbindung tunnelt dann über IPv6 zu mir...
der Tunnel steht ja, das besagt das Protokoll...
nur wie verbinde ich den Client bei mir mit dem Server, der auch auf dem selben PC läuft, wie der VPN Client...
MC Server horcht auf 0.0.0.0, VPN Client IP ist 10.8.0.2 Interne IP von mir ist 192.168.2.162
von aussen soll man mit der IP draufkommen, die der VPN Server hat (bei Hetzner)
oder lieg ich da kompett falsch...
Ein VPN ist ein Virtual Private Network - d. h. die Computer an den Enden des Tunnels sehen nur das LAN, nicht aber das tatsächliche Netzwerk, welches das VPN durchtunnelt. Nur die Proxies an den Tunnelausgängen sehen das WAN, das durchtunnelte Netzwerk.
Entweder konfigurierst du die Proxy-Einstellungen des Webclients oder du gibst einen URL dieser Form an:
[Proxyserver-Protokoll]://[Proxy-Server]/[Weiterleitungs-Script]?url=[Dienstserver-Protokoll]%3A%2F%2F[Dienst-Server_im_VPN]%2F[Dienst-Applikation]
wobei %3A und %2F die URL-"Maskierungen" für : und / sind (und die Ausdrücke in eckigen Klammern natürlich entsprechend ersetzt werden müssen).
Mir geht es nicht um Webserver - ich will Gameserver hosten - über IPv4, denn diese sind nicht IPv6 fähig....
und ich Tunnele mit die IPv4 über IPv6 zu mir nach Hause...
das geht, sowie man es bei Goole findet - ohne Proxy, denn
macht es auch...
Du sagtest doch, dass du nach außen nur eine IPv6-Adresse hast, der Dienstserver (muss ja kein Server für Webseiten sein, kann irgendein Dienst sein, auch ein Spiel) aber nur über IPv4 erreichbar ist.
Du müsstest also eine der - knappen - IPv4-Adressen mieten.
die miete ich mittels der VM bei Hetzner... das mache ich ja schon... und die soll getunnelt zu mir kommen... per VPN...
Serverseitig erhältst du ja nach deinem hochgeladenen Log eine Erfolgsmeldung.
Clientseitig musst du dann so vorgehen, wie es bei deinem Provider beschrieben ist.
Bei meinem Provider ist nichts beschrieben - die haben selbst keinen Plan von ihrer Technik... der schlechteste Service neben Host Unlimited ;)
aber sie haben gute Leitungen - aber man muss alles selbst machen...
Also, nach langem forschen und Suchen habe ich es doch endlich geschafft. Ich war auch schon nah dran...
Der Weg mittels VPN Server bei einem Hoster meiner Wahl (Hetzner momentan) ist der richtige...
Man setzt also in der Ferne einen VPN Server auf und konfiguriert ihn so, dass man sich verbinden kann...
Das verlinkte Script allein reicht.
Das was dann noch nötig ist, ist ein Portforwarding im VPN, was bisher leider niemand angesprochen hat...
Ein Prerouting des Ports von der externen IP auf die interne mit Angabe des Ports und des Protokolls
Und die eigentliche Portfreischaltung des Ports und Protokolls auf die interne IP...
Ich hänge die beiden Befehle noch an, sobald ich wieder am Rechner sitze..
Nur wem geb ich jetzt den Stern ? Echt schwierig, die Wahl..