Cramp4600 Posted June 19 Share Posted June 19 Moin, Ich möchte einen Docker Container über einen Reverse-Proxy von meinem V-Server aus erreichbar machen. Der DNS-Eintrag soll auf den V-Server verweisen und die Anfragen auf IP V4 und IP V6 annehmen und die dann über einen SSH-Tunnel zu meinem Unraid weiterleiten. Grund dafür ist, dass ich keine IP V6 von meinem ISP bekomme und das ich die IP-Adresse von mir zu Hause verstecken möchte. Aktuell habe ich den V-Server und Unraid über Tailscale miteinander verbunden; ich habe damit aber seit einiger Zeit massive Verbindungsabbrüche und langsame Übertragungsgeschwindigkeiten. Deswegen möchte ich das Ganze über SSH-Tunnel mit TCP organisieren. Ich hätte gerne Cloudflare Tunnel genutzt, aber da ich Daten über 100 MB damit übertrage, lässt das Cloudflare nicht zu. Jetzt bin ich mir nicht ganz sicher, wie ich diese Verbindung realisieren soll. Ich habe keine Anleitung gefunden, die mir bei meinem speziellen Fall geholfen hat. Ich hoffe, ihr könnt mir da weiter helfen. V-Server: Debian Webserver: Caddy Unraid: Webserver: Nginx Proxy Manager Quote Link to comment
alturismo Posted June 19 Share Posted June 19 4 hours ago, Cramp4600 said: Ich hoffe, ihr könnt mir da weiter helfen. hier ein Beispiel https://www.computerbase.de/forum/threads/how-to-zugriff-von-aussen-hinter-doublenat-dslite-firewall-mittels-reverse-ssh-tunnel.1883158/ funktioniert auch wunderbar von Unraid aus (hab ich früher genutzt für LTE Fallback), bin aber mittlerweile umgestiegen auf FRP 2 Quote Link to comment
Solution Cramp4600 Posted June 29 Author Solution Share Posted June 29 On 6/19/2024 at 6:36 PM, alturismo said: hier ein Beispiel https://www.computerbase.de/forum/threads/how-to-zugriff-von-aussen-hinter-doublenat-dslite-firewall-mittels-reverse-ssh-tunnel.1883158/ Die Anleitung ist schon etwas veraltet gewesen, aber im Groben hat sie funktioniert. Bis auf, dass ich autossh nicht installieren konnte und das Ganze über ein Script automatisiert habe. Eins, was beim Start von Unraid anläuft und eins was jede Stunde läuft. Quote Link to comment
Cramp4600 Posted June 29 Author Share Posted June 29 25 minutes ago, Cramp4600 said: Ganze über ein Script automatisiert habe. #!/bin/bash # SSH Tunnel Start Befehl SSH_COMMAND="ssh -N -R PORT:LOCALE-IP:PORT root@RELAY IP" # Funktion zum Überprüfen, ob der Tunnel bereits existiert function check_tunnel { # Prüfen, ob der spezifische SSH-Tunnel-Prozess läuft ps aux | grep "$SSH_COMMAND" | grep -v grep > /dev/null return $? } # Funktion zum Hinzufügen eines Zeitstempels zu den Rückmeldungen function log { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" } # Hauptlogik log "Script gestartet" # Überprüfen, ob der Tunnel existiert check_tunnel if [ $? -ne 0 ]; then log "Tunnel existiert nicht, starte Tunnel..." $SSH_COMMAND & log "Tunnel wurde gestartet" else log "Tunnel existiert bereits" fi log "Script beendet" 1 Quote Link to comment
Cramp4600 Posted July 9 Author Share Posted July 9 (edited) On 6/29/2024 at 12:06 PM, Cramp4600 said: #!/bin/bash # SSH Tunnel Start Befehl SSH_COMMAND="ssh -N -R PORT:LOCALE-IP:PORT root@RELAY IP" # Funktion zum Überprüfen, ob der Tunnel bereits existiert function check_tunnel { # Prüfen, ob der spezifische SSH-Tunnel-Prozess läuft ps aux | grep "$SSH_COMMAND" | grep -v grep > /dev/null return $? } # Funktion zum Hinzufügen eines Zeitstempels zu den Rückmeldungen function log { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" } # Hauptlogik log "Script gestartet" # Überprüfen, ob der Tunnel existiert check_tunnel if [ $? -ne 0 ]; then log "Tunnel existiert nicht, starte Tunnel..." $SSH_COMMAND & log "Tunnel wurde gestartet" else log "Tunnel existiert bereits" fi log "Script beendet" Ich habe das Script nochmal überarbeitet, dass er den Tunnel jedes Mal beendet, weil ich teilweise Probleme hatte beim täglichen IP Wechsel durch den ISP. #!/bin/bash # SSH Tunnel Start Befehl SSH_COMMAND="ssh -N -R PORT:LOCALE-IP:PORT root@RELAY IP" # Funktion zum Überprüfen, ob der Tunnel bereits existiert function check_tunnel { ps aux | grep "$SSH_COMMAND" | grep -v grep > /dev/null return $? } # Funktion zum Beenden des bestehenden Tunnels function kill_tunnel { pkill -f "$SSH_COMMAND" } # Funktion zum Hinzufügen eines Zeitstempels zu den Rückmeldungen function log { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" } # Hauptlogik log "Script gestartet" # Überprüfen, ob der Tunnel existiert check_tunnel if [ $? -eq 0 ]; then log "Tunnel existiert, beende Tunnel..." kill_tunnel log "Tunnel wurde beendet" else log "Tunnel existiert nicht" fi log "Starte Tunnel neu..." $SSH_COMMAND & log "Tunnel wurde neu gestartet" log "Script beendet" Edited July 9 by Cramp4600 2 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.