solip.de
Intel Channel Partner
Lancom Reseller

Von UDP abhängiger Netzwerkdienst kann nicht gestartet werden, z.B. Eye-Fi Helper

Erstellt von solip am 21. Februar 2013

Von UDP abhängige Netzwerkdienste können nicht starten, wenn ihr fest verlangter TCP/IP Port bereits in Verwendung ist. Dies kommt besonders bei Servern vor, denn deren Rollendienste erzeugen viele Ports in Benutzung und sie benutzen UDP-Ports nach dem Zufallsprinzip, was ein Sicherheitsfeature ist. Unflexible Anwendungen, die einen festen und freien Port verlangen, können das Nachsehen haben. Sicherstellen muss man natürlich auch, das keine anderen Anwendungen wie z.B. ein mDNSresponder oder Bonjour stören. Dies sind aber keine Bestandteile des Systems oder Rollen und können ja entfernt werden.

Auffällig ist dieses Verhalten z.B. beim Programm Eye-Fi Helper, welches nach dem Port 59279 verlangt und seinen Dienst mitunter wie folgt quittiert:

Failed to initialize multicast responder, Error: 10013 - Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig

Prüft man in einer Shell (mit Administrator-Rechten) was den Port verwendet mittels

netstat -abnp udp

so findet man wahrscheinlich dns.exe, welches seine Dienste im Bereich der Ports 49152 bis 65535 betreibt.

Unter Windows Server 2003 und Windows XP kann man sich behelfen indem man den Bereich der zufälligen Ports anders vergibt. Siehe Anleitung.

Bei Windows Server 2008 und Windows Vista, Windows 7 und Windows 8 sieht es schon etwas anders aus, da hier ein ganz neuer TCP/IP Stack arbeitet. Den Schlüssel ReservedPorts gibt es nicht mehr. Beeinflussen kann man den Port-Bereich jedoch direkt auf der Shell, siehe Anleitung. Sollte dies nicht gehen, so muss noch ein Hotfix eingespielt werden – den bekommt man hier.

Vorgehen zum Anzeigen der dynamischen Portrange:

netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp

Setzen der Portrange so wie sie in Windows Server 2003 verwendet wurde (1025-5000):

netsh int ipv4 set dynamicport tcp start=1025 num=3976
netsh int ipv4 set dynamicport udp start=1025 num=3976
netsh int ipv6 set dynamicport tcp start=1025 num=3976
netsh int ipv6 set dynamicport udp start=1025 num=3976

Um das Standard-Verhalten von Windows ab Vista bis Server 2008 wieder herzustellen:

netsh int ipv4 set dynamicport tcp start=49152 num=16383
netsh int ipv4 set dynamicport udp start=49152 num=16383
netsh int ipv6 set dynamicport tcp start=49152 num=16383
netsh int ipv6 set dynamicport udp start=49152 num=16383

Um den schlecht gemachten Eye-Fi Helper zwangsweise auszusparen:

netsh int ipv4 set dynamicport tcp start=59280 num=6255
netsh int ipv4 set dynamicport udp start=59280 num=6255
netsh int ipv6 set dynamicport tcp start=59280 num=6255
netsh int ipv6 set dynamicport udp start=59280 num=6255

Zwischen 1025 und 65535 ist im Grunde alles möglich. Der kleinste Bereich liegt jedoch bei 255 Ports. Eine Exchange Server Installation wird die Portrange auf über 60000 einstellen, egal was vorher gesetzt war.

Nach einem Neustart der Maschine sollten sich die Rollen und Dienste an die neue Vorgabe halten, so das die Anwendung mit fixem Port wieder erfolgreich starten kann.

Abgelegt unter Windows 7, Windows 8, Windows Server 2003, Windows Server 2008, Windows Vista, Windows XP | Keine Kommentare »