Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Reverse SSH Tunnel von V-Server zu Unraid

Featured Replies

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

Solved by Cramp4600

  • 2 weeks later...
  • Author
  • Solution
On 6/19/2024 at 6:36 PM, alturismo said:

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.

  • Author
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"


 

  • 2 weeks later...
  • Author
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 by Cramp4600

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.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.