Zurück zur Server-Übersicht
FsRdpServer unter Windows installieren
Vollständige Anleitung von einem frisch aufgesetzten Windows-Server bis zur ersten funktionierenden Client-Verbindung. Jeder Schritt ist einzeln erklärt – Vorkenntnisse zu Zertifikaten oder DNS sind nicht nötig.
Ohne Lizenz testen:
Sie brauchen für die Installation keine Lizenz. Ein Server ohne Lizenzdatei läuft
30 Tage als Testinstallation mit vollem Funktionsumfang – Einzelheiten in
Abschnitt 6. Erst wenn er in Ihrer Umgebung läuft, stimmen wir Servername und Lizenz gemeinsam ab.
Sie brauchen Hilfe bei der Einrichtung?
Befragen Sie einfach einen AI-Chatbot Ihrer Wahl mit folgendem Prompt:
Bitte hilf mir beim Einrichten meines FSRdpServers für Windows anhand folgender Anleitung:
https://www.fssoft.de/FsRdp/InstallingServerWindows.md
Führe mich Schritt für Schritt durch, immer nur ein Schritt pro Antwort, und
warte nach jedem Befehl auf meine Rückmeldung. Frage mich nie nach einem Passwort.
Der Link zeigt auf die reine Textfassung dieser Seite – die liest ein Chatbot vollständig, während er eine HTML-Seite oft nur gekürzt erfasst.
1. Was am Ende laufen soll
FsRdpServer ist ein Vermittlungsserver. Er nimmt keine Bildschirminhalte auf und speichert keine Sitzungsinhalte – er verbindet lediglich die Teilnehmer eines Raums miteinander. Alle Clients verbinden sich zum Server, nie direkt zueinander. Deshalb muss ausschließlich der Server erreichbar sein, kein einziger Client.
Nach der Installation lauscht der Dienst auf diesen TCP-Ports:
| Port | Wofür | Pflicht? |
8888 | Hauptverbindung: Steuerung, Bildschirmbild, Dateien, Fernsteuerung | ja |
8889 | Sprachübertragung (eigener Kanal) | ja |
8890 | Browser-Viewer für Zuschauer ohne installierten Client | optional, lizenzpflichtig (in der Testphase frei) |
80 | Nur zeitweise, falls Sie Zertifikate über Let's Encrypt beziehen | optional |
Der Server bindet seine Ports dual-stack, nimmt also IPv4- und IPv6-Verbindungen über denselben Port entgegen. Dafür müssen Sie nichts einstellen.
2. Den frischen Windows-Server vorbereiten
Geeignet sind Windows Server 2019, 2022 und 2025 sowie Windows 10/11 x64. Eine separate .NET-Installation ist nicht nötig – das Programm bringt alles Benötigte mit.
1
Windows vollständig aktualisieren
Einstellungen → Windows Update → Nach Updates suchen, bis keine Updates mehr angeboten werden; zwischendurch neu starten. Ein Server, der später aus dem Internet erreichbar ist, sollte von Anfang an aktuell sein.
2
Uhrzeit und Zeitzone kontrollieren
Das ist wichtiger, als es klingt: Zertifikate und Lizenzen haben Gültigkeitszeiträume. Geht die Serveruhr mehrere Minuten falsch, scheitern Verbindungen mit scheinbar unerklärlichen Fehlern. Öffnen Sie PowerShell als Administrator:
Get-Date
w32tm /resync
3
Feste lokale IP-Adresse vergeben
Der Router muss die Ports später an eine gleichbleibende
Adresse weiterleiten. Vergeben Sie dem Server deshalb eine feste IPv4-Adresse – entweder statisch in den Netzwerkeinstellungen oder, bequemer und weniger fehleranfällig, als feste Zuordnung im DHCP-Server Ihres Routers („diesem Gerät immer dieselbe IPv4-Adresse zuweisen“).
Aktuelle Adressen anzeigen:
Get-NetIPAddress -AddressFamily IPv4,IPv6 |
Where-Object { $_.PrefixOrigin -ne 'WellKnown' } |
Format-Table IPAddress, InterfaceAlias, PrefixOrigin, SuffixOrigin
4
Prüfen, ob Port 80 belegt ist
Nur wichtig, wenn Sie Ihr Zertifikat über Let's Encrypt beziehen wollen. Ist auf dem Server IIS oder ein anderer Webserver installiert, belegt dieser Port 80 – dann müssen Sie ihn während der Zertifikatsausstellung kurz stoppen oder das Zertifikat auf einem anderen Weg beschaffen.
Get-NetTCPConnection -State Listen -LocalPort 80 -ErrorAction SilentlyContinue
5
Arbeitsordner anlegen und Dateien sammeln
Legen Sie z. B. C:\FsRdp-Setup an und sammeln Sie dort nach und nach: Setup_FSRdpServer.exe, später
cert.pfx und license.fsrdp. Notieren Sie das PFX-Passwort in einem Passwortmanager – Sie brauchen es bei jeder Neuinstallation und bei jeder Zertifikatserneuerung wieder.
3. Der Servername: DNS mit A- und AAAA-Record
3.1 Warum ein Name und keine IP-Adresse?
Clients verbinden sich immer über einen DNS-Namen, zum Beispiel server.ihrefirma.de, niemals über eine IP-Adresse. Dafür gibt es zwei zwingende Gründe:
-
Das TLS-Zertifikat ist auf einen Namen ausgestellt. Verbindet ein Client über eine IP-Adresse, passt der Name nicht zum Zertifikat und die Verbindung wird abgelehnt.
-
Ihre Lizenz ist ebenfalls an genau diesen Namen gebunden (
LicensedServerHost).
Merksatz: Lizenzierter Hostname = Name im Zertifikat = Name, den der Client einträgt. Diese drei müssen zeichengenau übereinstimmen. Weichen sie ab, funktioniert nichts – und die Fehlermeldung nennt oft nur eines der drei.
3.2 A-Record und AAAA-Record – was ist das?
Ein DNS-Eintrag übersetzt einen Namen in eine Adresse. Es gibt zwei Sorten, weil es zwei Adressarten im Internet gibt:
| Eintrag | Zeigt auf | Beispiel |
A |
eine IPv4-Adresse (vier Zahlen mit Punkten) |
203.0.113.45 |
AAAA |
eine IPv6-Adresse (Hexadezimalblöcke mit Doppelpunkten) |
2a02:810d:7087:8800::159 |
Gesprochen wird AAAA als „Quad-A“. Beide Einträge dürfen für denselben Namen gleichzeitig existieren – das ist sogar der Normalfall. Der Client nimmt dann, was sein eigener Anschluss unterstützt, und bevorzugt in der Regel IPv6.
Wichtig: Ein AAAA-Record zeigt auf die IPv6-Adresse
des Servers selbst, nicht auf die des Routers. Bei IPv6 hat jedes Gerät im Heim- oder Firmennetz eine eigene, weltweit gültige Adresse – es gibt keine Adressumsetzung wie bei IPv4.
3.3 Ihre öffentlichen Adressen herausfinden
Führen Sie das auf dem Server selbst aus:
# Öffentliche IPv4-Adresse Ihres Anschlusses (die des Routers)
(Invoke-WebRequest -Uri "https://api.ipify.org" -UseBasicParsing).Content
# Öffentliche IPv6-Adresse dieses Servers
(Invoke-WebRequest -Uri "https://api6.ipify.org" -UseBasicParsing).Content
Kommt beim ersten Befehl eine Adresse zurück, haben Sie öffentliches IPv4. Kommt beim zweiten eine Adresse zurück, haben Sie IPv6. Schlägt einer der beiden fehl, unterstützt Ihr Anschluss dieses Protokoll nicht oder es ist nicht freigeschaltet.
3.4 Sonderfall DS-Lite: kein öffentliches IPv4
Viele Kabel- und Glasfaseranschlüsse in Deutschland (verbreitet bei Vodafone Kabel, teils auch bei anderen Anbietern) laufen mit
DS-Lite. Dabei bekommt Ihr Anschluss überhaupt keine eigene öffentliche IPv4-Adresse mehr, sondern teilt sich eine mit vielen anderen Kunden. Die Folge ist eindeutig:
-
Eine IPv4-Portweiterleitung im Router bleibt wirkungslos.
Sie können sie einrichten, sie wird nie erreicht – von außen führt kein Weg zu Ihrem Anschluss.
-
Nur IPv6 funktioniert. Der Name bekommt also ausschließlich einen AAAA-Record und keinen A-Record.
-
Clients in reinen IPv4-Netzen kommen dann nicht heran.
Das betrifft in der Praxis manche Firmennetze und einige Mobilfunk-Zugänge. Wer aus dem Internet zuschauen können muss, braucht entweder IPv6 oder Sie brauchen einen anderen Anschluss.
So erkennen Sie DS-Lite:
- Der Router zeigt unter „Internet → Online-Monitor“ keine öffentliche IPv4-Adresse, sondern nur IPv6 – oder eine IPv4-Adresse aus dem Bereich
100.64.x.x bis 100.127.x.x.
- Der Abruf von
https://api.ipify.org (siehe 3.3) schlägt fehl, der von api6.ipify.org gelingt.
- In der FRITZ!Box steht unter „Internet → Zugangsdaten → IPv6“ häufig ausdrücklich „DS-Lite“.
Bei vielen Anbietern lässt sich auf Anfrage kostenlos auf einen Anschluss mit echter IPv4-Adresse umstellen (Stichwort „Dual-Stack statt DS-Lite“). Wenn Ihre Clients aus beliebigen Netzen kommen sollen, ist dieser Anruf die einfachste Lösung.
3.5 Wechselnde Adressen: Dynamic DNS
Privat- und kleine Geschäftsanschlüsse bekommen meist keine feste Adresse. Bei IPv4 ändert sich die öffentliche Adresse; bei IPv6 ändert sich das Präfix, also die vordere Hälfte der Adresse. In beiden Fällen zeigt Ihr DNS-Eintrag irgendwann ins Leere und niemand erreicht den Server mehr.
Es gibt drei Wege:
-
Feste Adresse beim Anbieter buchen. Der sauberste Weg, kostet meist einen kleinen Aufschlag im Monat. Dann tragen Sie A- und AAAA-Record einmal ein und sind fertig.
-
Dynamic-DNS-Dienst nutzen (DynDNS, No-IP, deSEC, dynv6 und andere). Der Router meldet jede Adressänderung an den Dienst. Sie bekommen dort einen Namen wie
ihrname.dynv6.net und verweisen Ihren eigenen Namen per CNAME darauf.
Achtung: Nicht jeder Dienst aktualisiert auch AAAA-Records – bei DS-Lite ist genau das die entscheidende Fähigkeit.
-
Nur im lokalen Netz betreiben – dann brauchen Sie weder Dynamic DNS noch eine Portfreigabe (siehe 3.8).
Bei IPv6 zusätzlich beachten: Wechselt das Präfix, ändert sich die Adresse des Servers – und damit sowohl der AAAA-Record
als auch die Freigaberegel im Router. Sorgen Sie dafür, dass der Server wenigstens seinen hinteren Adressteil (die „Interface-ID“) behält, damit die Router-Regel einen Präfixwechsel übersteht. In der FRITZ!Box geschieht das automatisch, wenn Sie die Freigabe am Gerät statt an einer eingetippten Adresse festmachen.
3.6 Die Einträge beim DNS-Anbieter setzen
Melden Sie sich bei der Stelle an, die Ihre Domain verwaltet (Ihr Registrar oder Hoster) und legen Sie einen Eintrag für den gewünschten Namen an:
| Feld | Wert (Beispiel) | Anmerkung |
| Typ | A | nur wenn Sie öffentliches IPv4 haben |
| Name / Host | server | ergibt server.ihrefirma.de |
| Wert | 203.0.113.45 | öffentliche IPv4-Adresse des Anschlusses |
| TTL | 600 | 10 Minuten – niedrig halten, solange Sie testen |
| Feld | Wert (Beispiel) | Anmerkung |
| Typ | AAAA | wenn Sie IPv6 haben – bei DS-Lite zwingend |
| Name / Host | server | derselbe Name wie oben |
| Wert | 2a02:810d:7087:8800::159 | IPv6-Adresse des Servers, nicht des Routers |
| TTL | 600 | |
Änderungen brauchen bis zu einer TTL-Länge, bis sie überall ankommen. Setzen Sie die TTL erst wieder hoch (z. B. 3600), wenn alles läuft.
3.7 Kontrollieren, ob der Name stimmt
Führen Sie das von einem anderen Rechner aus aus, nicht auf dem Server:
Resolve-DnsName server.ihrefirma.de -Type A
Resolve-DnsName server.ihrefirma.de -Type AAAA
Erwartet wird genau die Adresse, die Sie eingetragen haben. Kommt „DNS name does not exist“, ist der Eintrag noch nicht verbreitet oder falsch geschrieben. Kommt eine andere Adresse, liefert Ihnen wahrscheinlich ein zwischengespeicherter Eintrag alte Daten – dann hilft
Clear-DnsClientCache.
3.8 Nur im lokalen Netz betreiben
Wenn alle Teilnehmer im selben Firmennetz sitzen, brauchen Sie weder öffentliches DNS noch Portfreigaben. Der Name muss aber trotzdem existieren, weil Zertifikat und Lizenz daran hängen. Zwei Möglichkeiten:
Ein hosts-Eintrag ändert nur die Namensauflösung. Er ersetzt weder die Namensprüfung des Zertifikats noch die Lizenzbindung – das Zertifikat muss weiterhin auf server.ihrefirma.de lauten.
4. Router, Portfreigaben und Firewall
Zwischen einem Client im Internet und Ihrem Server stehen zwei Hindernisse: der Router und die Windows-Firewall. Um die Windows-Firewall kümmert sich das Setup automatisch; den Router müssen Sie selbst einstellen.
4.1 IPv4: Portweiterleitung
Bei IPv4 hat Ihr Netz nur eine öffentliche Adresse, die sich alle Geräte teilen. Der Router muss deshalb wissen, an welches Gerät er ankommende Verbindungen weiterreichen soll. Legen Sie für jeden Port eine Regel an:
| Protokoll | Port von außen | Ziel-Gerät | Port am Gerät |
| TCP | 8888 | Ihr Server | 8888 |
| TCP | 8889 | Ihr Server | 8889 |
| TCP | 8890 | Ihr Server | 8890 |
In der FRITZ!Box: Internet → Freigaben → Portfreigaben → Gerät für Freigaben hinzufügen, dort den Server wählen und je eine Freigabe anlegen.
4.2 IPv6: Freigabe statt Weiterleitung
Bei IPv6 gibt es keine Adressumsetzung – jedes Gerät ist schon von außen adressierbar. Der Router leitet also nichts um, sondern öffnet
nur seine Firewall für dieses Gerät und diesen Port. In der Oberfläche heißt das trotzdem meist „Portfreigabe“, mit einer Auswahl wie „Internetzugriff über IPv6“.
Legen Sie die Freigabe am Gerät an, nicht an einer eingetippten IPv6-Adresse. Nur dann folgt die Regel dem Server, wenn sich das Präfix ändert. Bei DS-Lite ist ausschließlich die IPv6-Freigabe wirksam; die IPv4-Weiterleitung können Sie sich sparen.
4.3 Port 80 – nur für Let's Encrypt
Beziehen Sie Ihr Zertifikat über Let's Encrypt, muss die Zertifizierungsstelle prüfen, dass Ihnen der Name wirklich gehört. Der einfachste Prüfweg läuft über Port 80. Sie brauchen dafür eine Freigabe auf Port 80 zu Ihrem Server – und zwar dauerhaft, weil die Erneuerung alle 60 Tage automatisch abläuft.
Router warnen an dieser Stelle gern vor Sicherheitsrisiken. Die Warnung zielt auf einen dauerhaft laufenden Webserver. Wenn auf Port 80 nur während der wenigen Sekunden einer Zertifikatsausstellung ein Programm lauscht und sonst nichts, ist das Risiko gering.
4.4 Die Windows-Firewall
Darum kümmert sich das Setup: Es legt die eingehenden Regeln
FSRdpServer Main, FSRdpServer Audio und – wenn Sie den Browser-Viewer aktivieren – FSRdpServer WebGateway
an. Die Regeln gelten nur für das Serverprogramm selbst, nicht für den Port allgemein. Verwenden Sie eine zusätzliche Sicherheitssoftware, müssen Sie die Ports dort gegebenenfalls von Hand freigeben.
5. Das TLS-Zertifikat (PFX-Datei) im Detail
5.1 Was ist eine PFX-Datei?
cert.pfx ist ein passwortgeschützter Behälter im Format PKCS#12. Darin stecken drei Dinge:
- das Serverzertifikat – der öffentliche Ausweis für Ihren Servernamen;
- der private Schlüssel – das Geheimnis, das beweist, dass der Ausweis Ihnen gehört;
- meist zusätzlich die Zwischenzertifikate der ausstellenden Stelle.
FsRdpServer verschlüsselt damit alle Verbindungen, genau wie ein Webserver sein HTTPS-Zertifikat verwendet. Ohne gültiges Zertifikat startet der Dienst nicht.
Die PFX-Datei ist ein Geheimnis. Wer sie und ihr Passwort hat, kann sich als Ihr Server ausgeben. Verschicken Sie sie nicht per unverschlüsselter E-Mail, legen Sie sie nicht auf Netzlaufwerke mit weiten Rechten und laden Sie sie niemals in ein öffentliches Repository.
5.2 Welchen Namen muss das Zertifikat tragen?
Das Zertifikat muss den lizenzierten Servernamen als Subject Alternative Name (SAN) enthalten. Zwei Varianten sind zulässig:
-
Ein Wildcard-Zertifikat für
*.ihrefirma.de
– deckt server.ihrefirma.de mit ab und lässt sich später für weitere Server wiederverwenden.
-
Ein Zertifikat nur für diesen einen Namen, also
server.ihrefirma.de. Günstiger, aber nicht übertragbar.
Die PFX-Datei darf genau ein Zertifikat mit privatem Schlüssel enthalten. Enthält sie mehrere, verweigert der Server den Start mit einer eindeutigen Meldung.
5.3 Weg A: Zertifikat kaufen und als PFX exportieren
Der übliche Weg, wenn Sie ohnehin eine Domain bei einem Hoster haben. Sie bestellen dort ein Zertifikat, bekommen es ausgestellt und exportieren es unter Windows als PFX.
1
Zertifikat beim Anbieter bestellen
Bei Ihrem Domain-Anbieter (z. B. HostEurope, IONOS, GoDaddy) ein Zertifikat für server.ihrefirma.de oder
*.ihrefirma.de bestellen. Der Anbieter führt Sie durch die Eigentumsprüfung, meist per E-Mail oder DNS-Eintrag.
2
Zertifikat installieren
Der Anbieter liefert entweder eine fertige PFX-Datei – dann sind Sie hier fertig – oder Zertifikatsdateien, die Sie in den Windows-Zertifikatspeicher importieren. Doppelklick auf die Datei, Speicherort Lokaler Computer, Ablage unter
Eigene Zertifikate.
3
Als PFX exportieren
certlm.msc starten (Zertifikate für den lokalen Computer). Unter Eigene Zertifikate → Zertifikate
das Zertifikat suchen, rechte Maustaste → Alle Aufgaben → Exportieren. Dann:
- Ja, privaten Schlüssel exportieren – ohne ihn ist die Datei wertlos.
- Format: PKCS#12 (.PFX).
- Wenn möglich, alle Zertifikate im Zertifizierungspfad einbeziehen ankreuzen – damit landen die Zwischenzertifikate mit in der Datei.
- Ein Passwort vergeben (Verschlüsselung
AES256-SHA256 wählen, falls angeboten).
- Als
cert.pfx speichern.
5.4 Weg B: Kostenlos über Let's Encrypt
Funktioniert nur, wenn Ihr Servername öffentlich im DNS steht und die Zertifizierungsstelle Ihren Server erreichen kann. Unter Windows ist
win-acme das gängige Werkzeug (kostenlos, von
win-acme.com).
1
win-acme herunterladen und starten
ZIP entpacken, wacs.exe als Administrator ausführen. Es erscheint ein Menü im Konsolenfenster.
2
Zertifikat mit allen Optionen anlegen
Den Punkt für ein Zertifikat mit vollständigen Optionen wählen, als Quelle die manuelle Eingabe und dort
server.ihrefirma.de eintragen. Als Prüfverfahren die HTTP-Validierung wählen, bei der win-acme selbst kurz auf Port 80 lauscht.
3
Als PFX-Datei ablegen lassen
Bei der Frage nach dem Speicherort die PFX-Datei
wählen (nicht nur den Windows-Zertifikatspeicher), einen Zielordner wie C:\FsRdp-Setup\certs und ein Passwort angeben. win-acme richtet anschließend selbst eine geplante Aufgabe für die automatische Erneuerung ein.
Die genaue Bezeichnung der Menüpunkte hängt von der win-acme-Version ab. Entscheidend sind drei Dinge: der Name muss exakt Ihr lizenzierter Servername sein, das Ergebnis muss eine PFX-Datei mit privatem Schlüssel sein, und Port 80 muss von außen erreichbar sein.
Haben Sie das Zertifikat auf anderem Weg als fullchain.pem
und privkey.pem vorliegen, bündeln Sie es mit OpenSSL:
openssl pkcs12 -export -out cert.pfx ^
-inkey privkey.pem -in fullchain.pem
Das Passwort fragt OpenSSL danach interaktiv ab – so landet es nicht im Verlauf der Eingabeaufforderung.
5.5 Weg C: Zertifikat der eigenen Firmen-CA
Nur für rein interne Installationen sinnvoll. Sie stellen das Zertifikat selbst aus – dann muss aber jeder Client Ihrer Firmen-CA ausdrücklich vertrauen, sonst schlägt jede Verbindung fehl. Für den Browser-Viewer ist dieser Weg unbrauchbar, weil jeder Browser eine Warnseite zeigen würde.
5.6 Die PFX-Datei vor der Installation prüfen
Machen Sie das unbedingt vorher – ein falsches Zertifikat merkt man sonst erst, wenn das Setup abbricht:
$pfx = Get-PfxCertificate -FilePath C:\FsRdp-Setup\cert.pfx
$pfx | Format-List Subject, NotBefore, NotAfter, HasPrivateKey, Thumbprint
$pfx.Extensions |
Where-Object { $_.Oid.FriendlyName -eq 'Subject Alternative Name' } |
ForEach-Object { $_.Format($true) }
Achten Sie auf drei Punkte:
HasPrivateKey muss True sein.
NotAfter muss in der Zukunft liegen.
- In der SAN-Liste muss Ihr lizenzierter Name stehen – bei einem Wildcard-Zertifikat entsprechend
*.ihrefirma.de.
5.7 Ablauf im Kalender eintragen
Zertifikate laufen ab: gekaufte meist nach einem Jahr, die von Let's Encrypt nach 90 Tagen. Läuft das Zertifikat ab, verbindet sich kein Client mehr – und zwar schlagartig. Tragen Sie sich eine Erinnerung zwei Wochen vor NotAfter ein, oder richten Sie eine automatische Erneuerung ein (win-acme macht das selbst; der Dienst muss danach neu gestartet werden, siehe Abschnitt 11).
6. Testphase oder Lizenz
Die ersten 30 Tage brauchen keine Lizenz
Finden Sie keine Lizenzdatei neben der Konfiguration, startet der Server trotzdem und läuft 30 Tage als Testinstallation. Dafür ist nichts einzuschalten: installieren, Zertifikat hinterlegen, Dienst starten. Die Testphase ist in Zeit und Menge begrenzt, nicht im Funktionsumfang:
| Testphase | Mit Lizenz |
| Räume gleichzeitig | 1, feste Nummer 123456789 | laut Lizenz |
| Laufzeit je Sitzung | bis zu 24 Stunden | laut Lizenz |
| Wartezeit danach | keine | laut Lizenz |
| Teilnehmer je Raum | 5 | laut Lizenz |
| Funktionen im Raum | alle | alle |
| Gesamtdauer | 30 Tage ab der Installation | Laufzeit der Lizenz |
| Wasserzeichen | ja | nein |
„Alle Funktionen" heißt wörtlich: Bildschirmfreigabe, Fernsteuerung, Kamera, Sprache, Chat, Dateiübertragung, Sitzungsaufnahme, Live-Untertitel und der Browser-Viewer. Deren technische Voraussetzungen gelten weiter – Untertitel brauchen einen eigenen API-Schlüssel, der Browser-Viewer seinen Port und ein Zertifikat (Abschnitt 9).
Alle Teilnehmer sehen während der Testphase ein Wasserzeichen
über dem geteilten Bild. Das ist Absicht: Ein unlizenzierter Server soll als solcher erkennbar sein.
Was in der Testphase fehlt, sind die Supporter-Schlüssel – und damit die Funktionen, die an einem solchen Schlüssel hängen: reservierte Raumnamen und das Raum-Passwort, mit dem ein Kunde seinen Dauerraum im Browser selbst eröffnet. Das ist keine Sperre; ein Server ohne Lizenz gibt schlicht keine Schlüssel aus.
Die Raumnummer 123456789 ist allgemein bekannt.
Ist Ihr Testserver aus dem Internet erreichbar, vergeben Sie eine
Raum-PIN: Das Feld steht in beiden Desktop-Clients direkt neben der Raumnummer. Wer den Raum eröffnet, setzt sie, alle anderen brauchen sie zum Beitreten.
Nach 30 Tagen läuft der Dienst weiter und lauscht weiter, beantwortet aber jede Verbindung mit der Bitte um eine Lizenz – er verweigert nicht
den Start. Eine Lizenzdatei können Sie jederzeit nachträglich einspielen, ohne neu zu installieren (Abschnitt 11).
Die Lizenz anfordern
Für den Dauerbetrieb ist die Lizenzdatei license.fsrdp nötig. Sie ist an zwei Dinge gebunden: an Ihren Servernamen und an eine dauerhafte Installations-ID, die auf dem Server erzeugt wird.
Teilen Sie mir für die Ausstellung mit:
- den exakten DNS-Namen, den die Clients verwenden werden;
- wie viele Räume gleichzeitig laufen sollen;
- wie viele Teilnehmer pro Raum;
- die gewünschte Laufzeit;
- ob Sie den Browser-Viewer, die Sitzungsaufnahme oder Live-Untertitel nutzen möchten – diese Funktionen müssen in der Lizenz freigeschaltet sein.
Bei einer Windows-Erstinstallation ist das bequem gelöst:
Sie bekommen die Lizenz mitsamt der passenden Installations-ID von mir, und das Setup übernimmt und speichert die ID automatisch. Sie müssen vorher nichts erzeugen. Nur wenn Sie eine bestehende
Installation weiterverwenden – etwa die aus der Testphase –, gilt deren vorhandene ID; lesen Sie sie dann mit dem Befehl unten aus und teilen Sie sie mit.
Bereits installierte Server zeigen ihre ID so an:
& "$env:ProgramFiles\FsRdpServer\FsRdpServer.exe" --installation-id
7. Das Setup ausführen
Sie brauchen jetzt: Setup_FSRdpServer.exe und
cert.pfx samt Passwort. Die Lizenzdatei
license.fsrdp nur dann, wenn Sie schon eine haben – ohne sie installieren Sie die 30-tägige Testphase.
1
Als Administrator starten
Setup_FSRdpServer.exe mit der rechten Maustaste anklicken und Als Administrator ausführen wählen. Ohne Administratorrechte kann das Setup weder den Dienst noch die Firewallregeln anlegen.
2
Ports festlegen
Die Vorschläge 8888 und 8889 passen fast immer. Auf derselben Seite finden Sie das Kontrollkästchen für den
Browser-Viewer samt zugehörigem Port (8890). Kreuzen Sie es nur an, wenn Ihre Lizenz diese Funktion enthält. Der ebenfalls dort angebotene Demo-Modus
ist für Interessenten ohne Lizenzschlüssel gedacht und im Normalbetrieb aus.
3
Zertifikat und Passwort angeben
Die cert.pfx auswählen und auf der nächsten Seite ihr Passwort eingeben.
4
Lizenzdatei auswählen – oder die Seite leer lassen
Haben Sie eine Lizenz, wählen Sie die gelieferte
license.fsrdp aus. Andernfalls lassen Sie die Seite leer: Das Setup fragt dann einmal nach, ob es die 30-tägige Testphase einrichten soll (Abschnitt 6), und installiert danach ganz normal weiter.
5
Prüfung abwarten
Bevor irgendetwas kopiert wird, prüft das Setup:
- Signatur und Gültigkeit der Lizenz;
- die Installations-ID;
- den lizenzierten Hostnamen;
- das PFX-Passwort und den privaten Schlüssel;
- Gültigkeitszeitraum, Verwendungszweck und Namen des Zertifikats;
- die Zertifikatskette;
- ob sich der lizenzierte Hostname per DNS auflösen lässt.
Ohne Lizenz entfallen die drei Prüfungen, die eine Lizenz voraussetzen – geprüft werden weiterhin Passwort, privater Schlüssel, Gültigkeit, Verwendungszweck und Kette des Zertifikats. Einen lizenzierten Hostnamen, gegen den sich der Name im Zertifikat abgleichen ließe, gibt es in der Testphase noch nicht.
Wenn eine DNS-Warnung erscheint: Das Setup lässt Sie fortfahren, wenn der Name (noch) nicht auflösbar ist. Tun Sie das nur, wenn Sie wissen, dass Sie DNS oder die hosts-Einträge vor der ersten Client-Verbindung noch einrichten. Andernfalls brechen Sie ab und korrigieren erst den DNS-Eintrag.
Was das Setup danach einrichtet:
| Programmdateien | C:\Program Files\FsRdpServer |
| Daten und Geheimnisse | C:\ProgramData\FsRdpServer mit appsettings.json, cert.pfx, license.fsrdp, server-instance-id.txt und Logs\ |
| Dienst | FsRdpServer, verzögerter Autostart, läuft als LocalSystem, startet nach Fehlern automatisch neu |
| Firewall | eingehende Regeln für die konfigurierten Ports |
| Zugriffsrechte | der Datenordner wird auf SYSTEM und lokale Administratoren beschränkt |
Zum PFX-Passwort: Es steht im Klartext in
C:\ProgramData\FsRdpServer\appsettings.json. Geschützt wird es nicht durch Verschlüsselung, sondern durch die Zugriffsrechte des Ordners. Geben Sie normalen Benutzern deshalb niemals
Zugriff auf diesen Ordner, und nehmen Sie ihn nicht in eine Sicherung auf, die breiter lesbar ist als der Ordner selbst.
8. Prüfen, ob alles läuft
PowerShell als Administrator öffnen und der Reihe nach durchgehen.
Läuft der Dienst?
Get-Service -Name FsRdpServer
Der Status muss Running sein.
Lauschen beide Ports?
Get-NetTCPConnection -State Listen -LocalPort 8888,8889
Sind die Firewallregeln da?
Get-NetFirewallRule -DisplayName "FSRdpServer Main","FSRdpServer Audio"
Was sagt die Lizenz?
& "$env:ProgramFiles\FsRdpServer\FsRdpServer.exe" --license-status
In der Testphase steht dort statt der Kundendaten:
License state: trial
Trial state file: C:\ProgramData\FsRdpServer\trial-state.json
Trial period: 2026-09-11 through 2026-10-11 (30 day(s) left)
Trial room: 123456789
Die 30 Tage hängen am ersten Start dieser Installation, festgehalten in trial-state.json. Sie werden gegen den höchsten jemals gesehenen Zeitpunkt gerechnet – die Systemuhr zurückzustellen verlängert sie also nicht.
Die vollständige Selbstprüfung:
& "$env:ProgramFiles\FsRdpServer\FsRdpServer.exe" `
--validate-installation `
--validation-data-dir "$env:ProgramData\FsRdpServer"
Rückgabewert 0 heißt: alles in Ordnung. Rückgabewert
3 heißt: Warnungen, etwa weil DNS noch nicht auflöst oder die Zertifikatskette lokal nicht vollständig prüfbar ist. Lesen Sie die Warnung vollständig und fahren Sie nur fort, wenn Sie ihre Ursache verstanden haben. Jeder echte Fehler muss vor der Inbetriebnahme behoben werden.
Die letzten Protokolldateien ansehen:
Get-ChildItem "$env:ProgramData\FsRdpServer\Logs" |
Sort-Object LastWriteTime -Descending |
Select-Object -First 10
9. Browser-Viewer auf Port 8890 mit eigenem Zertifikat
Der Browser-Viewer erlaubt Zuschauern, ohne installierten Client teilzunehmen – sie öffnen einfach
https://server.ihrefirma.de:8890/. Die Funktion ist standardmäßig aus und braucht zwei Schalter: die Freigabe
in der Lizenz und die Aktivierung
in der Konfiguration.
9.1 Warum ein zweites Zertifikat sinnvoll ist
Für die nativen Clients genügt jedes Zertifikat, dem die Clients vertrauen – auch eines aus Ihrer eigenen Firmen-CA. Ein
Browser ist strenger: Er zeigt jedem Besucher eine Warnseite, wenn das Zertifikat nicht von einer öffentlich anerkannten Stelle stammt. Genau dafür können Sie dem Browser-Viewer ein eigenes, öffentlich vertrauenswürdiges Zertifikat geben, ohne das Zertifikat der nativen Kanäle anzufassen.
Lassen Sie die beiden Einstellungen leer, verwendet der Browser-Viewer automatisch dieselbe cert.pfx wie die Ports 8888/8889. Das ist völlig in Ordnung, solange diese von einer öffentlichen Zertifizierungsstelle stammt.
9.2 Einrichten
1
Öffentlich vertrauenswürdiges Zertifikat besorgen
Zum Beispiel über win-acme (siehe 5.4) als
C:\FsRdp-Setup\certs\webgateway.pfx. Es muss auf denselben Namen lauten, unter dem Besucher die Seite aufrufen.
2
Konfiguration ergänzen
C:\ProgramData\FsRdpServer\appsettings.json als Administrator im Editor öffnen und die beiden Werte eintragen:
"WebGatewayEnabled": true,
"WebGatewayPort": 8890,
"WebGatewayCertificatePath": "C:\\FsRdp-Setup\\certs\\webgateway.pfx",
"WebGatewayCertificatePassword": "IhrPasswort",
Beachten Sie die doppelten Backslashes – in JSON muss jeder Backslash verdoppelt werden. Ein Pfad mit einfachem Backslash macht die Datei ungültig und der Dienst startet nicht mehr.
3
Dienst neu starten und prüfen
Restart-Service -Name FsRdpServer
Get-NetTCPConnection -State Listen -LocalPort 8890
Danach https://server.ihrefirma.de:8890/ im Browser aufrufen. Erscheint keine Zertifikatswarnung, ist alles richtig.
Vergessen Sie die Portfreigabe für 8890 im Router nicht (Abschnitt 4). Ohne aktivierten Browser-Viewer legt das Setup auch keine Firewallregel für diesen Port an – die können Sie im Setup nachträglich aktivieren, indem Sie es erneut ausführen.
9.3 Erneuerung nicht vergessen
Der Server liest seine Zertifikate nur beim Start. Wird das Zertifikat erneuert – etwa automatisch durch win-acme alle 60 Tage – übernimmt der laufende Dienst die neue Datei nicht von selbst. Er muss danach neu gestartet werden. Ein Neustart trennt alle laufenden Sitzungen, planen Sie ihn also in eine ruhige Zeit. Am einfachsten hängen Sie an die Erneuerungsaufgabe von win-acme einen Aufruf von
Restart-Service -Name FsRdpServer an.
10. Der erste Verbindungstest
1
Client auf einem anderen Rechner installieren
Nicht auf dem Server selbst testen – damit übersehen Sie jedes Router- und Firewall-Problem. Die
Client-Anleitung
beschreibt die Installation.
2
Im Client den Servernamen eintragen
Exakt den lizenzierten Namen, keine IP-Adresse, und die Ports
8888 und 8889.
3
Mit zwei Geräten in denselben Raum verbinden
Erst mit zwei Teilnehmern zeigt sich, ob Bild und Ton tatsächlich durchlaufen.
Testen Sie nicht mit telnet oder
Test-NetConnection in der Schleife. Wiederholte Verbindungsversuche ohne gültiges Protokoll wertet der Server als Angriffsversuch und sperrt die IP-Adresse des Testrechners vorübergehend. Ein einzelner Verbindungstest ist unproblematisch, Dauerschleifen sperren Sie aus.
11. Laufender Betrieb
Sicherung
Sichern Sie C:\ProgramData\FsRdpServer – aber an einen Ort mit ebenso engen Zugriffsrechten, denn dort liegen PFX und Passwort.
server-instance-id.txt darf niemals verloren gehen. Ihre Lizenz ist an diese ID gebunden. Ist sie weg, ist die Lizenz für diese Installation wertlos und muss neu ausgestellt werden. Deshalb bleibt der Datenordner auch bei einer Deinstallation absichtlich bestehen.
Server aktualisieren
Eine neuere Setup_FSRdpServer.exe als Administrator ausführen. Konfiguration, Zertifikat, Lizenz, Installations-ID, Raumreservierungen und Protokolle bleiben erhalten – auch die Einstellungen für das Browser-Viewer-Zertifikat.
Lizenz einspielen oder austauschen
Derselbe Weg für die erste Lizenz nach der Testphase wie für eine erneuerte: Datei hinein, prüfen, Dienst neu starten. Den Neustart braucht es nicht für die Lizenz selbst (die liest der Dienst von allein neu ein), wohl aber für die Funktionsschalter Browser-Viewer, Untertitel und Demo-Modus, die beim Start einmal gelesen werden.
Stop-Service -Name FsRdpServer
Copy-Item ".\license.fsrdp" "$env:ProgramData\FsRdpServer\license.fsrdp" -Force
& "$env:ProgramFiles\FsRdpServer\FsRdpServer.exe" `
--validate-installation `
--validation-data-dir "$env:ProgramData\FsRdpServer"
Start-Service -Name FsRdpServer
Starten Sie den Dienst nicht, wenn die Validierung fehlschlägt. Wurde die Lizenz mit einer geänderten Supporter-Anzahl neu erzeugt, können sich alle Supporter-Schlüssel geändert haben – verteilen Sie die neuen Schlüssel dann zeitnah.
Zertifikat austauschen
Stop-Service -Name FsRdpServer
Copy-Item ".\cert.pfx" "$env:ProgramData\FsRdpServer\cert.pfx" -Force
# Falls sich das Passwort geändert hat: appsettings.json anpassen
Start-Service -Name FsRdpServer
Danach die Selbstprüfung aus Abschnitt 8 wiederholen.
12. Häufige Probleme
Der Name im Zertifikat passt nicht
Client-Name, Zertifikatsname und lizenzierter Hostname sind unterschiedlich. Prüfen Sie alle drei und verbinden Sie sich immer mit dem lizenzierten Namen.
RevocationStatusUnknown
Die ausstellende Stelle veröffentlicht keine erreichbare Sperrliste. Typisch bei einer eigenen Firmen-CA. Für öffentliche Installationen sollten Sie ein Zertifikat mit regulärer Sperrprüfung verwenden. Die Zertifikatsprüfung global abzuschalten ist keine Lösung.
Falsches PFX-Passwort oder fehlender Schlüssel
Prüfen Sie mit Get-PfxCertificate (Abschnitt 5.6), ob
HasPrivateKey auf True steht und das Passwort stimmt. Die Datei darf genau ein Zertifikat mit privatem Schlüssel enthalten.
Die Lizenz gehört zu einer anderen Installation
Die server-instance-id.txt wurde ersetzt oder gelöscht. Stellen Sie die ursprüngliche Datei aus der Sicherung wieder her oder fordern Sie eine neue Lizenz für die aktuelle ID an. Die signierte Lizenzdatei darf nie von Hand bearbeitet werden.
Jeder Client meldet „Testphase abgelaufen"
Die 30 Tage sind vorbei. Der Dienst läuft weiter, nimmt aber keine Verbindung mehr an, bis eine Lizenz installiert ist (Abschnitt 11). --license-status zeigt in diesem Fall trial-expired samt Enddatum.
Der Server läuft in der Testphase, obwohl eine Lizenz installiert ist
Dann wurde die Lizenzdatei nicht gefunden oder nicht akzeptiert. Das Startbanner im Protokoll nennt beides nebeneinander: den erwarteten Pfad und den Grund. Typische Ursachen sind ein falscher LicensePath in der
appsettings.json, eine Lizenz für eine andere Installations-ID oder eine von Hand bearbeitete und dadurch ungültige Datei.
Der Dienst läuft, aber kein Client verbindet sich
Arbeiten Sie die Kette von außen nach innen ab:
- Löst der Name beim Client zur richtigen Adresse auf? (
Resolve-DnsName)
- Ist die Portfreigabe im Router aktiv – und bei DS-Lite auch für IPv6?
- Lauscht der Server auf beiden Ports? (
Get-NetTCPConnection)
- Existieren die Firewallregeln?
- Was steht in den Protokollen unter
C:\ProgramData\FsRdpServer\Logs?
Alles lief, seit heute nicht mehr
Zwei Klassiker: Das Zertifikat ist abgelaufen, oder die öffentliche Adresse Ihres Anschlusses hat sich geändert und der DNS-Eintrag zeigt ins Leere. Prüfen Sie zuerst NotAfter des Zertifikats und danach, ob der DNS-Eintrag noch zur aktuellen Adresse passt.