6tunnel

Das konventionelle VPN bezeichnet ein virtuelles privates (in sich geschlossenes) Kommunikationsnetz

Benötigt wird ein Linux Root Server (oder V-server) der eine Feste IPV4 Adresse hat.
Mehr zum Root Server gibt es im entsprechenden Blogpost.

Anschließend per SSH auf den Server einloggen (Putty / Terminal etc.)

Root Server Updaten

Bevor Sie 6tunnel installieren können müssen die Paket quellen aktualisiert werden.

apt-get update

IPV6 Test

IPV6 Funktionalität kann mit folgendem Befehl getestet werden.

ping -c 5 ipv6.google.com

Installation

Wenn der Root Server bereit ist, kann 6tunnel mit folgendem Befehl installiert werden

 apt install 6tunnel

Beispiel:

6tunnel IPV4-PORT Ziel-IPv6-Adresse IPV6-PORT

Syntax von 6tunnel

 6tunnel 8801  2001:4860:0:2001::68 8801
 6tunnel 80    2001:4860:0:2001::68 80
 6tunnel 8001  2001:4860:0:2001::68 5001  

Auch ein Portmapping von Port A auf B ist möglich, somit kann ein Root Server für mehrere Ziele mit dem gleichen Port genutzt werden.

Beispiel:

6tunnel 8801  2001:4860:0:2001::68 8801
6tunnel 8802  2001:4754:0:2002::47 8801

Weitere Befehle

killall 6tunnel         Alle 6tunnel Instanzen beeden

Externer Aufruf

Der Externe Aufruf erfolgt nun von über die IP-Adresse des Root Servers und Port.
172.217.22.67:8801 wird nun weitergeleitet auf 2001:4860:0:2001::68:8801

32 Gedanken zu „6tunnel“

  1. Hallo,

    ich habe einen DS-Lite Router (Connect Box) daheim. Das heißt: Mein Router ist extern nur über eine öffentiche Ipv6-Adresse erreichbar, die ihr der Provider zugewiesen hat.
    Bevor ich meinen Raspberry Pi als VPN-Server umwandeln will, will ich meinen Router extern über eine Ipv4-Adresse erreichbar machen.

    Dafür brauche ich einen Portmapper, der auf einem VPS-Server oder root-Server aufgesetzt wird. Der Server muss sich dabei außerhalb des eigenen Netzwerkes befinden und über eine öffentliche Ipv4- und Ipv6 Adresse verfügen. Am besten in einen Rechenzentrum.

    Mit dem Programm „6tunnel“ setzte ich diesen Portmapper auf dem Server auf. So sieht der Befehl aus:

    6tunnel port_eingabe Ipv6:adresse port_eingabe

    1. Frage: Trage ich bei dem Befehl von 6tunnel als Ipv6-Adresse, die öffentliche Ipv6-Adresse meines Routers ein, die ich extern per Ipv4 erreichbar machen will?
    2. Frage: Für was steht der erste und zweite Port, den ich beim 6tunnel-Befehl eingebe?
    3. Frage: Muss ich am Heimrouter Portfreigaben für beide Ports einrichten? Wenn ja, was ist die Ziel-Ipv6 bei der Portfreigabe?
    4. Frage: Kann ich nach erfolgreicher Einrichtung des Portmappers sagen, dass mein Router extern über die Ipv4-Adresse des vServers erreichbar ist?

    Vielen Dank.

    1. Hallo,

      Zu 1. Hier kommt die öffentliche IP v6 des Gerätes rein, welches man erreichen will, anders als bei ipv4 hat bei IPv6 jedes Gerät eine eigene öffentliche IP

      Zu 2. im Normalfall gibt man beides den gleichen Port an, Beispiel, wenn man für OpenVPN den Port 1194 freigeben will, sieht der befehlt so aus: 6tunnel 1194 (ipv6 des raspi) 1194
      Alternativ, wenn man den Port Mappen will, kann man auch den Port „verstelcken“ beispielsweise

      6tunnel 2000 (IPv6 des Raspi) 1194 jetzt muss man von Extern den Port 2000 nutzen, und er wird über den Portmapper zu 1194 gemappt.

      Zu 3. im Router muss die Kombbnation aus Port und IPv6 Adresse freigegeben werden, also wenn man den Raspi erreichen will, dann diesen freigeben, die Ip kann man am Raspi rausfinden oder in der Oberfläche des Routers
      Wichtig, jede Netzwerkschnittstelle (auch Virtuelle) haben eine eigenen IPv6 Adresse, es kann also sein, dass ein Gerät 5 IPv6 Adressen hat.

      Zu 4. wenn man alles korrekt einstellt, geht das, natürlich, der Portmapper leitet ja nur weiter.

  2. Danke für den guten Beitrag. Jedoch habe ich da noch eine Frage. Ändern sich die öffentlichen IPv6s der Geräte nicht? Kann / muss ich hier noch ein DynDNS zwischen schalten? Freue mich auf deine Antwort!

    1. Hallo, ich habe das schon sowohl so als auch so erlebt, ich bin aktuell bei der Deutschen Glasfaser, hier bleibt die IPV6 Adresse der Geräte gleich, mein NAS hat schon seit ca. einem Jahr die gleiche IPV6 Adresse, egal ob das NAS / der Router / der HÜP neu startet. Gleiches hatte ich aber auch bei einem Freund bei Unitymedia, hier war die IPV6 in unregelmäßigen Abständen anders. Also liegt das hier am Anbieter und nicht an deinem Netzwerk.

  3. Hallo, vielen Dank für den toll erklärten Beitrag. Ich habe bei Ionos einen VServer für 1 Euro gemietet und dort 6tunnel installiert und erfolgreich eingerichtet. Ich kann per ssh auch die IPv6 meines Ubuntu servers im Deutsche Glasfaser Heimnetz anpingen. Rufe ich aber die ipv4 des Routers mit dem getunnelten Port (8123) auf, erscheint immer dass der Server nicht erreicht werden kann. Portfreigabe in der F!B ist eingerichtet und über die IPv6 komme ich auch auf meinen Server. Nur eben nicht er die IPv4 des Ionos-Servers mit 6tunnel.

    Woran kann das liegen? MfG

    1. Kurze Korrektur: „Rufe ich aber die ipv4 des Routers mit dem getunnelten Port (8123) auf, erscheint immer dass der Server nicht erreicht werden kann.“ ist so nicht korrekt, ich meinte natürlich wenn ich die ipv4 meines servers bei ionos Aufrufe

      1. Kurzes Update: ich hab mir jetzt eine gabz einfache Lösung zugelegt, bei welcher man nichts weiter braucht als einen ipv4 und ipv6 fähigen Server.
        Das Zauber Wort heißt reverse ssh (ssh – L).

        ssh (-p [ssh-port falls ihr nicht port 22 verwendet] ) -N -R [port am ipv4 server] :localhost:[port von local host] root@[server-adresse]

        Vom Chaos Computer Club gibt es ein super tutorial:

        https://blog.wirelessmoves.com/2019/06/how-to-run-a-server-at-home-without-an-ipv4-address.html
        https://media.ccc.de/v/gpn19-76-einen-server-daheim-ohne-ffentliche-ipv4-adresse

        Liebe grüsse

          1. Ja das läuft super. Nachdem ich zuvor alles mögliche versucht hatte mit 6tunnel alles zum laufen zu bekommen. uvw 8123 allow etc eingestellt… Wollte alles nicht funktionieren. Selbst 6tunnel von Port 80 zu mir nach 8123 funktionierte nicht… Mit reverse ssh vom meinem heimserver zu ionos läuft es flüssig und super!

  4. OK, danke für den Guide. Gestern hatte es bei mir nur funktioniert, wenn ich mit dem parameter -l (kleines L für ‚listen address‘) die öffentliche IPv4 des vServers angegeben habe. Heute gehts auch ohne…

    Ich bin noch nicht auf Glasfaser umgestellt aber was passiert nun, wenn meine v6-Adresse zu Hause dynamisch ist? Bekommt 6tunnel das selbsttätig mit, wenn ich den mit dyndns-v6 Domain starte oder muss ich hier einen cronjob anlgen, der 6tunnel jede Nacht neu startet?

    6tunnel 443 example.cloud 443

    zur Fehlersuche hilft übrigens der Parameter -v dann werden alle Verbindungsversuche auf der Konsole ausgegeben.

    1. Hallo Herzilein,
      ich hatte über die komplette Laufzeit hin weg eine feste IPV6 also gab es hier keine Probleme.
      Gruß
      Christian

      1. Das hatte ich vorher schon gelesen. Für alle anderen: Der Autor hat auf github geschrieben, dass 6tunnel jedes mal, wenn jemand den Eingangsport anspriicht, der Hostname zum Ziel neu aufgelöst wird. Dynamische IPv6 ist also kein Problem, wenn man einen DynDNS Dienst hat.

        1. Ist es nicht möglich die dynamische ID gleich im 6tunnel zu aktualisieren? Ich hab es im Moment so laufen: Domain -> vps mit 6tunnel > dyndns Domain -> nginx Reverse proxy per V6 hier im LAN. Das du ktioniert bisher einwandfrei. Auch komplett verschlüsselt.
          Kann man sich den Zwischenschritt zur dyndns Domain sparen wenn man die neue IP direkt dem 6tunnel mitteilt?
          Das wäre doch die eierlegende Wollmilchsau: 6tunnel mit integriertem dyndns2 so das man ihn direkt mit dem ddclient aktualisieren kann.
          Gibt’s da nicht was?
          Grüsse
          Sebastian

          1. Hallo Sebastian,

            Da sich meine IP Adresse bei der Deutschen Glasfaser nie geändert hat (ipv6) brauchte ich den Schritt nicht, ich habe im Portmapper direkt auf die IPV6 geleitet.

          2. Sebastian, ich sehe zwar keinen Grund darin, den 6tunnel nicht bei jeder Verbindung die v6-Adresse aus dem dynDNS-Hostnamen zu ermitteln, wenn du es aber dennoch so machen möchtest, könntest du natürlich hergehen und auf deinem lokalen Server ein Skript laufen lassen, dass bei änderung der IP läuft und dann via ssh und angehängtem Befehl den 6tunnel beendet und anschließend mit der neuen IPv6 neu startet. Du musst nur sicherstellen, dass der User, der per ssh auf den vserver kommt a) passwortfrei per Schlüssel anmeldet und b) die Befehle ausführen darf, respektive sudo ohne Kennwort für killall und 6tunnel nutzen darf.

  5. @Christian: Ich bin auch bei der DG, doch meine V6 IP hatte sich nach nem Router Neustart verändert wodurch ich dann auf dieses Problem gestossen bin.

    @Herzilein: Der Grund warum ich immer über den 6tunnel gehe ist weil ich auch aus V4 Netzwerken den zugriff benötige. Von daher gehe ich immer über V4 im V6 Tunnel.

    Ich hatte darüber nachgedacht das möglichst direkt auf dem VPS machen zu können, der Grund ist sich den weiteren Schritt zu sparen. Bisher gab es da noch kein Problem bei. Denkst Du das es grundsätzlich unproblematisch ist die doppelte Weiterleitung von der Domain aus zu verwenden und das einfach so zu lassen?
    Liebe Grüsse
    Sebastian

  6. nun Christian, das ist so ziemlich der einzige Grund, für einen v4-nach-v6-Tunnel über einen vServer. Das ändert aber nichts an deiner Fragestellung. Es dürfte stabiler funktionieren, wenn du 6tunnel mit einem Hostnamen deines v6-dynDNS-Dienstes deiner Wahl startest als mit der v6-IP-Adresse. Bei jedem Tunnelaufbau löst er dann auf die aktuelle IPv6 auf. Mein obiger Vorschlag hat zusätzliche Haken, die es abzufangen gilt. Ich bin kein Profi und habe auch noch gar kein Glasfaser, ich kann mir aber nicht vorstellen, dass die IP-Auflösung durch 6tunnel einen spürbaren Performanceverlust bringen würde.

  7. Hallo,

    ich habe versucht den ping -c 2 ipv6.google.com auf dem VServer (Ubuntu 20.04) auszuführen, leider ohne Erfolg.

    FireWall habe ich füt den Test deaktiviert.

    — ipv6.google.com ping statistics —
    2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1001ms

    Kannst du mir da helfen? Gruß Andre

    1. Hallo, die Firewall ist nur für eingehende Verbindungen, für den Ping brauchst du die nicht, hast du bei dem Server in der Web Konsole ipv6 aktiviert? Das ist nicht von Anfang an aktiviert.
      Gruß
      Christian

  8. Jahre später hab ich mich wieder mit homeassistant bei DG beschäftigt. Hab mir wieder nen VPS bei Ionos geholt und ratet mal was Phase ist.
    Es geht gar nichts. Weder 6tunnel noch reverse ssh funktionieren. Ping -6 vom vps zu homeassistant klappt super, auch der auffruf aus einem mobilen Netz funktioniert also der Zugriff von extern ist möglich, aber nicht über den vps. Mit watch -n 0.5 „netstat -tulpn“ wird der Port als listen angezeigt mit 0.0.0.0:8123 somit scheint es ordentlich zu funktionieren. Wenn ich die IP des vpn aufrufen kommt aber nichts… leite ich die IP auf einen Port weiter, der nicht frei gegeben ist, kommt eine permissen not allowed Warnung des browsers. UFW hab ich mal vorübergehend deaktiviert, die Ports sind im control panel in der firewall freigegeben. Ich weiß echt nicht weiter. Habt ihr noch Ideen?

    1. Funktioniert bei mir in gleicher konstalation wie bei dir einwandfrei. Wenn du durch den Tunnel nicht im dein LAN Kost vermute ich das du entweder auf die falsche ipv6 routest oder der Port nicht offen ist. Bist du zufällig auch im iobroker discord aktiv. Sonst könnten wir da Mal zusammen schauen.

      1. Hallo Sebastian,
        Vielen Dank für deine Rückmeldung.
        Wenn ich sie IPv6 von extern Aufrufe, komme ich auf meinen RPi also wie es sein sollte, pinge ich vom VPS den RPi an, klappt dies auch. nc -vz [IPv6 vom RPi] [Port] klappt auch. Also in meinem LAN sind alle ports richtig gesetzt, die firewalls ordentlich konfiguriert und die ipv6 stimmt auch. Nur 6tunnel macht auf dem vps blöd

        1. Dann muss es ja entweder an der 6tunnel konfig liegen oder am Server an sich. Da müsste man sich auch noch das v6 Manuel aktivieren. Irgendwas war da noch, ich erinnere mich aber nicht mehr genau. Eine Einstellung am Server an sich müsste man noch vornehmen.

          1. Auf der Config Seite von IONOS kannst du auf dem Server IPV6 aktivieren

            Ich habe aktuell keinen mehr, sonst würde ich dir ein Screenshot machen.

  9. Hallo Zusammen,

    also du kommst per IPV6 Verbindung auf dein System, aber über IPV4 über den Tunnel nicht?

    a) Hast du auf dem VPS Server IPV6 aktiviert?
    b) Kannst du von dem VPS Server dein System anpingen (Ping6 IPV6ADRESSE)
    c) Hast du die Firewall Anpassungen auf dem VPS durchgeführt?
    d) Das Portmapping auf dem VPS muss nach jedem Neustart neu gemacht werden (alternativ in einer Autostart Config abspeichern, aber durch jeden Reboot vergisst er die gemappten Ports)

    Alternativ empfehle ich dir, einmal den VPS zurückzusetzen und die kurze Installation nochmal zu machen, vllt hat sich etwas nicht geklappt.

    Gruß
    Christian

    1. A) ja ipv6 ist aktiviert und ich besitze eine öffentliche IPv6 Adresse, die Netzwerk config des VPS wurde auch entsprechend in Ubuntu geändert und angepasst
      B) ja, ich kann meinen Homeserver vom VPS anpingen, ebenso über nc -vz meinen direkten Port des homeservers ansprechen
      C) ja, alle ports sind eingetragen, ufw habe ich vorübergehend in Ubuntu deinstalliert
      D) watch -n 0.5 „netstat -tulpn“ gibt den entsprechenden Port (über 6tunnel Port IP Port eingerichtet) als listen aus…

Schreibe eine Antwort zu Adrian S.Antwort abbrechen