CallMeTechie
EN Anmelden
Home Produkte Blog Über mich Kontakt

RDP über Home-Gateway (Option B)

Remote Desktop · Updated vor 1 Monat

Alternative: Option A — L4-Gateway-Route direkt anlegen.

Was es ist

Eine RDP-Route in der Admin-UI bekommt einen neuen Access-Mode: Über Home-Gateway. Wenn du den wählst:

  • Die Verbindung wird durch einen Home-Gateway-Container ins Heimnetz geroutet (Windows-Rechner muss keine Port-Weiterleitung im Heim-Router haben und keinen eigenen WG-Peer).
  • GateControl legt im Hintergrund automatisch eine L4-TCP-Route an die public-port → gateway → LAN-RDP-Port durchschleust.
  • Alle RDP-Komfort-Features (Credential-Vault, Auflösung, Clipboard, Audio, NLA, Sharing, WoL, Maintenance-Windows, …) bleiben erhalten.
  • Die generierbare .rdp-Datei nutzt die öffentliche Adresse + den Listen-Port statt der LAN-IP.

Unterschied zu MS RD-Gateway

Am RDP-Route gibt es historisch Felder „Gateway-Host" / „Gateway-Port" — die sind für den Microsoft RD-Gateway (TSGateway), also den Windows-Rollendienst der RDP über HTTPS tunnelt. Das ist ein eigenständiges Microsoft-Produkt, kein Teil von GateControl.

Das neue „Über Home-Gateway" ist der GateControl-Weg. Beides kann kombiniert werden (z.B. Home-Gateway zum LAN-Edge, dann dort ein MS-RDG der das RDP zum finalen Host tunnelt), die UI trennt beide Sektionen klar.

Voraussetzungen

  • Home-Gateway-Peer im Admin-UI angelegt und heartbeatet
  • Pro-Lizenz (beide RDP-Feature + Home-Gateway-Routing)
  • RDP am Ziel-Gerät aktiviert

Anlegen — der Wizard

Remote Desktop → Neue RDP-Route öffnet einen 6-stufigen Wizard:

Schritt Inhalt
1 — Verbindung Name, Beschreibung, Host (LAN-IP), RDP-Port, Access-Mode, abhängig vom Mode: External-Hostname/Port oder Home-Gateway-Peer + Listen-Port, plus (optional) Microsoft RD-Gateway-Konfiguration
2 — Authentifizierung Credential-Mode (none / user_only / full), Domain, Username, Password
3 — Darstellung + Ressourcen Auflösung (Fullscreen/Fixed/Dynamic), Farbtiefe, Multi-Monitor, Redirects (Clipboard/Drucker/Drives/USB/Smartcard), Audio
4 — Netzwerk + Session Netzwerkprofil, Bandbreitenlimit, NLA, Wallpaper/Themes/Animationen deaktivieren, Session-Timeout, Remote-App, Start-Program, Admin-Session
5 — WoL + Zugriffskontrolle + Tags Wake-on-LAN, Maintenance-Window, Health-Check, Credential-Rotation, Tags, Notes
6 — Zugriff + Review Welche Benutzer sehen die Route + Zusammenfassung aller Felder vor dem Speichern

Der Wizard nutzt dasselbe Form-State wie der klassische Flat-Edit — Edit-Button auf einer bestehenden Route öffnet ebenfalls den Wizard mit allen Feldern vorbefüllt.

Was wählst du im Wizard für Home-Gateway-Routing

Schritt 1 — Verbindung:

  • Host: die LAN-IP des Windows-Rechners, z.B. 192.168.2.100. (Nicht die öffentliche Adresse — der Gateway muss ins LAN routen.)
  • Port: 3389 (der RDP-Port auf dem Ziel-Gerät)
  • Access-Mode: Über Home-Gateway
  • Home Gateway: dein registrierter Gateway-Peer (Dropdown nur mit Peers die als Gateway konfiguriert sind)
  • Öffentlicher Listen-Port: der Port unter dem die Session von außen erreichbar ist. Default: gleich wie der RDP-Port (3389). Wähle einen anderen wenn 3389 auf dem Server bereits belegt ist — z.B. 13389.
  • Microsoft RD-Gateway-Felder: leer lassen, außer du hast tatsächlich einen MS-RDG-Server hinter dem RDP-Ziel.

Datenfluss (identisch zu Option A)

RDP-Client ── TCP SYN ──▶ Server (VPS)
                             │
                             │ Caddy Layer-4-Plugin
                             │ (auto-generierte L4-Route)
                             │ forward → gateway-peer-IP : listen_port
                             ▼
                         Gateway-Container (Heim)
                             │
                             │ TcpProxyManager : listen_port
                             │ forward → host : port (aus RDP-Route)
                             ▼
                         Windows-Rechner (RDP-Server)

Unter der Haube ist es exakt das gleiche Netzwerk-Setup wie Option A — der einzige Unterschied: die L4-Route wird automatisch erzeugt und versteckt. Sie taucht mit route_type=l4, target_kind=gateway, und Description „auto-created for RDP route …" in der Routes-Tabelle auf. Wird beim Löschen / Toggle / Access-Mode-Wechsel der RDP-Route automatisch mitgepflegt — kein orphan möglich.

Edit-Fälle

Access-Mode zu gateway wechseln

  • Wizard speichern → die L4-Route wird neu angelegt, die ID in rdp_routes.gateway_l4_route_id hinterlegt.

Access-Mode weg von gateway wechseln

  • Speichern → die L4-Route wird entfernt, der Pointer wird NULL.

Listen-Port ändern, LAN-Host wechseln, etc.

  • Update → die L4-Route wird in-place aktualisiert (dual-bind overlap im Gateway-TcpProxyManager sorgt für Zero-Downtime bei Port-Change).

RDP-Route löschen

  • Cascade → L4-Route wird zuerst entfernt, dann die RDP-Route. Kein orphan.

RDP-Route deaktivieren (Toggle)

  • Die L4-Route wird ebenfalls deaktiviert → der öffentliche Listen- Port schließt sofort. User-feedback: „der Rechner ist vom Netz."

Client-Seite

Aus der Admin-UI kannst du pro RDP-Route eine .rdp-Datei herunterladen die bereits mit der öffentlichen Adresse + Listen-Port befüllt ist. Der User klickt sie an → mstsc.exe öffnet sich mit allen Einstellungen aus der Route (Auflösung, Redirects, Farbtiefe, Domain-Prefix am Username etc.).

Sicherheit

  • Credentials werden in der DB AES-256-GCM verschlüsselt (encrypted_username / encrypted_password).
  • Der Server entschlüsselt sie nur beim Generieren der .rdp-Datei oder auf expliziten Credential-Request via API.
  • Die L4-Route forwarded pures TCP — RDP-interne Verschlüsselung (NLA / TLS 1.2+) greift unverändert. Der Tunnel ist zusätzlich WG- verschlüsselt, Double-Crypto auf dem Public-zum-Gateway-Hop.
  • Keine GateControl-Komponente entschlüsselt den RDP-Stream zu irgendeinem Zeitpunkt.

Zusammenspiel mit anderen Access-Modes

Du kannst einer RDP-Route nur einen Access-Mode geben. gateway ist exklusiv — wer drauf umschaltet, verliert automatisch die Peer-Weiterleitungs- (internal) oder Port-Forwarding-Info (external). Wenn du parallel eine Fallback-Route willst, lege zwei RDP-Routes an (eine mit internal, eine mit gateway).

Relevante Dateien

Server

  • src/services/rdp.jsVALID_ACCESS_MODES + _syncLinkedL4Route(), cascade-delete, toggle-sync
  • src/routes/api/rdp.js — License-Gate vor create/update
  • src/services/license.jsCOMMUNITY_FALLBACK-Eintrag
  • src/db/migrations.js — Migration 38 (rdp_routes_gateway_link)
  • UI-Wizard: public/js/rdp.js (Step-Navigation, Review, Gateway-Peer- Dropdown), templates/pro/pages/rdp.njk (wizard-step attributes + neue Home-Gateway-Sektion)

Tests

  • tests/rdp_gateway.test.js — 5 Szenarien (create + L4-link, cascade-delete, access-mode-wechsel, validation, toggle-sync)

Troubleshooting

Beim Speichern: „Feature not available in your plan"

Dir fehlt die Pro-Lizenz für Home-Gateway-RDP-Routing. Upgrade oder nutze Option A (L4-Gateway-Route direkt) — die setzt nur gateway_tcp_routing voraus, nicht das RDP-spezifische Feature-Flag.

Beim Speichern: „Linked L4 gateway route could not be created"

Der Listen-Port kollidiert mit einer anderen L4-Route oder einem blockierten Port (z.B. 3389 schon von einer anderen RDP-Route belegt). Wähle einen anderen Listen-Port im Wizard (z.B. 13389).

RDP-Client verbindet sich, sieht aber nur schwarzen Bildschirm

  • NLA-Konflikt. Stelle im Wizard unter „Netzwerk & Verhalten" sicher dass NLA passend zum Ziel-Server ist (alte Server: aus, neue: an).
  • Multi-Monitor auf alten Servern kann ebenfalls hängen — testweise deaktivieren.

Client kriegt „Gateway-Zeitüberschreitung"

  • Home-Gateway im Admin-UI: Status-Check — ist der Gateway online?
  • WG-Tunnel auf dem Server: wg show wg0 | grep handshake — die Zeile fürs Gateway-Peer sollte < 2 Minuten alt sein.
  • Im Zweifel am Gateway docker restart gatecontrol-gateway — der TcpProxyManager kommt dann mit frischer Route-Map hoch.

Ich will den L4-Listen-Port nachträglich ändern

Im RDP-Route-Wizard, Schritt 1, „Öffentlicher Listen-Port" anpassen und speichern. Die L4-Route wird in-place aktualisiert, der Gateway-Container migriert mit Dual-Bind-Overlap (10 s beide Ports offen) auf den neuen Port. Bestehende RDP-Sessions werden nicht abgeschossen.

Cookie Settings

Wir verwenden Cookies, um Ihre Erfahrung zu verbessern. Essentielle Cookies sind immer aktiv.

Datenschutzerklärung
ESC
↑↓ navigate open esc close