
Ich kann meine Uhr unter Windows 10 nicht synchronisieren.
Wenn ich entweder in der Systemsteuerung oder auf andere Weise eine Synchronisierung anfordere, w32tm /resync
sendet mein Computer einige NTPv3-Pakete an pool.ntp.org
(ich habe diesen Server manuell eingestellt, aber es spielt keine Rolle, welchen Server ich verwende) und erhalte keine Antwort.
Wenn ich w32tm /monitor /computers:pool.ntp.org
das jedoch tue, funktioniert es und ich kann in Wireshark sehen, dass mein Computer NTPv1-Pakete sendet und eine Antwort erhält.
Wenn ich meinen Computer jedoch mit dem mobilen Hotspot meines Telefons verbinde, funktioniert die Zeitsynchronisierung mit NTPv3. Auch ein anderer Linux-Computer im selben Netzwerk wie mein Windows 10 kann problemlos synchronisieren (und ich sehe, dass er NTPv4 verwendet).
Ich habe versucht:
- Neustarten des Windows-Zeitdienstes
- Zurücksetzen des Windows-Zeitdienstes
- Öffnen von Port 123 in der Router-Firewall
- DNS-Einstellungen ändern (ich verwende DNS-over-TLS)
und habe es nicht zum Laufen gebracht.
Mein Router verfügt über eine doppelte NAT-Konfiguration (d. h. Internet – ein anderer Router, den ich nicht steuere – mein Router – mein PC), was zu NTP-Problemen führen kann, aber ich verstehe dann nicht, wie mein Linux-Laptop synchronisieren kann.
Bearbeitung 1:
Antwort1
Wie in den Kommentaren erläutert,der Unterschiedist, dass der W32time-Dienst in Windows NTP-Portnummern im "symmetrischen" Modus verwendet, wobei sowohl die Ziel-und QuelleDie Portnummern lauten 123, auch wenn es sich nur um einen Client handelt und nicht für die Arbeit als symmetrischer Peer eingerichtet ist (diese Möglichkeit ist vorhanden).
Dies bedeutet, dass zustandslose Firewalls keine Möglichkeit haben, eingehende Antworten von eingehenden Anfragen zu unterscheiden, da beide „an“ Port 123 ankommen. Wenn Ihr ISP über einen Filter verfügt, der Sie daran hindert, einen NTP-Server zu hosten, hindert er Sie auch daran, NTP-Clients zu verwenden, die in diesem Modus arbeiten.
Linux-NTP-Software hält sich normalerweise an die Protokollspezifikationen und verwendet einen temporären Quellport im Client-/Servermodus, wie dies auch die meisten anderen UDP-Programme tun würden (123→123 ist ausschließlich für den symmetrischen Modus gedacht). Ebenso w32tm
funktioniert das Tool, weil es aufgrund seiner Monitor-/Stripchart-Optionen seine eigenen NTP-Abfragen generiert und dabei einen regulären Socket verwendet, der an einen temporären Port gebunden ist.
Wenn Sie ein Linux- oder BSD-System haben, das immer online ist, können Sie dieses System als Ihren internen NTP-Server verwenden (es sind nur sehr wenige Einrichtungsschritte erforderlich, um z. B. Chrony oder ntpd als Server mittlerer Qualität zu betreiben).
Dies sollte auch für WSL2 funktionieren, da dessen Kernel-Uhr nicht streng an die Host-Uhr gebunden ist (soweit ich mich erinnere) – es sollte möglich sein, Chrony innerhalb von WSL2 als Ihren NTP-Server auszuführen und ihm einfach anzuweisen, nicht zu versuchen, die RTC zu aktualisieren.
Wenn Sie über einen Ort verfügen, über den Sie eine VPN-Verbindung herstellen können, können Sie die VPN-Verbindung möglicherweise für NTP verwenden.
Windows NTP-Clients von Drittanbietern sollten ebenfalls funktionieren – insbesondere, wenn der lokale Port 123 bereits von W32time belegt ist, da sie dann ohnehin keinen anderen lokalen Port verwenden müssen. Beispiel:Netzzeitsieht aus, als könnte es funktionieren.
Clients von Drittanbietern für Protokolle, die nicht NTP sind, können ebenfalls funktionieren, da sie nicht denselben UDP-Port verwenden. Die Genauigkeit ist nicht so gut wie die von NTP, kann aber für einen PC gut genug sein. Beispielsweise veröffentlicht NIST seineAbonnierenClient, der NTP sowie das ältere RFC-868-Protokoll verwenden kann.