Wer NoMachine für den Fernzugriff auf verteilte Systeme einsetzt, schätzt in der Regel die Performance und die unkomplizierte Handhabung des systemeigenen NoMachine Network (Cloud Relaying). Kürzlich lief ich jedoch auf meinen Windows- und Linux-Clients systematisch in ein nerviges Problem: Sporadische Verbindungsabbrüche direkt beim Handshake, verbunden mit der Fehlermeldung:
„Could not connect to the server. Error is 5: Input/output error“
Der Fehler trat keineswegs dauerhaft auf. Manchmal ging die Verbindung beim zweiten oder dritten Versuch, manchmal brach sie direkt wieder ab. Da netzwerkseitig an den lokalen Routern keine Änderungen vorgenommen wurden, lag die Vermutung nahe, dass das Problem tiefer im Handshake oder der Socket-Behandlung des NoMachine Network Relays steckte.

In diesem Beitrag zeige ich, wie man dem Fehler über die NoMachine-Logfiles auf die Spur kommt, wo die Ursachen liegen und wie man die Verbindung stabilisiert.
1. Der Blick in die Logs (session.log)
Ein Blick in die Verbindungsprotokolle des NoMachine Enterprise Clients unter %USERPROFILE%\.nx\ verriet, dass der initiale TCP-Handshake zum STUN- und Relay-Server noch erfolgreich war, der eigentliche Datenstream aber unmittelbar danach abreisst:
Info: Network connection with key '...' established successfully.
1140 11876 2026-08-04 08:09:37 PlayerInstance: Close Network session with pid '11592'.
1140 11876 2026-08-04 08:09:38 PlayerInstance: Going to reconnect connection ...
Die GUI quittiert diesen abrupten Abreißer des Transport-Streams schließlich mit dem generischen Error 5 (Input/Output Error). Der übrigens gleich den Download der Logfiles mit anbietet!
2. Die Ursache: HTTPS-Fallback vs. Native Relaying Ports
Eine Rückfrage beim NoMachine Support brachte die für mich entscheidende Erkenntnis über die Funktionsweise des Cloud-Relays:
Wenn NoMachine feststellt, dass die eigenen nativen Protokoll-Ports (4040 für STUN/Signalisierung und 4060 für das Relay-Data-Tunneling) lokal blockiert oder durch Timeouts gestört werden, schaltet der Client automatisch auf ein HTTPS-Tunneling über Port 443 um.
Das HTTPS-Tunneling dient zwar als universelle Notlösung durch strenge Firewalls, ist jedoch extrem anfällig für Paketlaufzeiten, NAT-Keep-Alives und Re-Handshakes. Fällt der Client in diesen Modus, kommt es gehäuft zu Error 5-Abbrüchen. Parallel gab es serverseitig beim Relay-Provider ein temporäres Problem beim Verhandeln verwaister Node-Sessions, das vom Support behoben wurde.
3. Schritt-für-Schritt-Lösung auf Client-Seite
Damit der Client zuverlässig das native, performante Relaying nutzt und nicht in den instabilen HTTPS-Fallback abrutscht, sollten folgende Punkte abgearbeitet werden:
Schritt 1: Lokale Firewall-Regeln anpassen
Statt einzelne Port-Regeln zu pflegen, ist es bei NoMachine am saubersten, die Binaries des Clients vollständig in der Windows Defender Firewall für den ausgehenden Verkehr freizugeben. Dadurch werden auch dynamische High-Ports für UDP/TCP-Streams abgedeckt.
In der Windows Defender Firewall mit erweiterter Sicherheit (wf.msc):
- Eine neue Ausgehende Regel (Outbound Rule) anlegen.
- Regeltyp: Programm.
- Pfad auswählen (z. B.
C:\Program Files\NoMachine Enterprise Client\bin\nxplayer.exe). - Aktion: Verbindung zulassen (für Domäne, Privat und Öffentlich).
Schritt 2: Verwaiste Session-Caches bereinigen
Laufen die Client-Komponenten im User-Kontext (wie beim Enterprise Client üblich), können alte Session-Tokens zu Verwirrung beim Relay-Handshake führen.
Beende alle NoMachine-Prozesse und lösche die temporären Session-Ordner in der PowerShell:
# Alle aktiven NoMachine-Prozesse stoppen
Get-Process -Name "nx*" | Stop-Process -Force
# In das .nx Verzeichnis wechseln und temporäre Laufzeit-Ordner löschen
Set-Location -Path "$env:USERPROFILE\.nx"
Remove-Item -Path "R-*" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "M-*" -Recurse -Force -ErrorAction SilentlyContinue
(Hinweis: R-* steht für Remote-Sessions, M-* für lokale Machine-Instanzen. Gespeicherte .nxs-Dateien und Zugangsdaten bleiben in der player.cfg).
4. Erreichbarkeit der Native Ports mit PowerShell testen
Um ohne Erraten zu prüfen, ob der Client die erforderlichen Ports 4040 und 4060 direkt im Netz erreicht, helfen zwei kurze PowerShell-Einzeiler.
Statischer Erreichbarkeitstest (Port-Check):
# Test für Port 4040 (NoMachine Network / STUN)
Test-NetConnection -ComputerName nb.nomachine.com -Port 4040
# Test für Port 4060 (NoMachine Relay Data Transport)
Test-NetConnection -ComputerName 178.162.226.135 -Port 4060
Liefert das Ergebnis TcpTestSucceeded : True, ist der Netzwerkpfad frei.
Dynamischer Live-Test während des Verbindungsaufbaus:
Während in NoMachine eine Verbindung aufgebaut wird, lässt sich mit folgendem Befehl live auslesen, über welchen Port gestreamt wird:
Get-NetTCPConnection -State Established | Where-Object { $_.RemotePort -in 4040, 4060, 443 } | Format-Table LocalAddress, RemoteAddress, RemotePort, State
- RemotePort 4040 / 4060: Perfekt. Der Client nutzt das native NoMachine-Protokoll.
- RemotePort 443: Der Client hängt weiterhin im HTTPS-Fallback fest.
Fazit
Der Error 5 in NoMachine ist oft kein Zeichen eines defekten Zielsystems, sondern ein Symptom für ein fehlschlagendes Tunneling über das Cloud-Relay. Sobald die ausgehenden Ports 4040 und 4060 in der lokalen Firewall explizit freigegeben sind und verwaiste Session-Caches aufgeräumt wurden, läuft die Verbindung wieder gewohnt stabil und performant.























