Não consigo sincronizar meu relógio no Windows 10.
Ao solicitar uma sincronização no painel de controle ou ao fazer isso, w32tm /resync
meu computador envia alguns pacotes NTPv3 para pool.ntp.org
(eu configurei manualmente esse servidor, mas não importa qual servidor eu uso) e não obtém resposta.
No entanto, se eu fizer w32tm /monitor /computers:pool.ntp.org
isso, funcionará e posso ver no Wireshark que meu computador envia pacotes NTPv1 e obtém uma resposta.
No entanto, se eu conectar meu computador ao hotspot móvel do meu telefone, a sincronização de horário funcionará com NTPv3. Além disso, outro computador Linux na mesma rede do meu Windows 10 pode sincronizar sem problemas (e vejo isso usando NTPv4).
Eu tentei:
- Reiniciando o serviço de horário do Windows
- Redefinindo o serviço de horário do Windows
- Abrindo a porta 123 no firewall do roteador
- Alterando as configurações de DNS (eu uso DNS sobre TLS)
e não consegui fazê-lo funcionar.
Meu roteador está em uma configuração NAT dupla (ou seja, Internet - Outro roteador que não controlo - Meu roteador - Meu PC), o que pode causar problemas de NTP, mas não entendo como meu laptop Linux pode sincronizar.
Conforme discutido nos comentários, a diferença é que o serviço W32time no Windows usa números de porta NTP no modo "simétrico", onde os números das portas de destino e de origem são 123, mesmo quando está se comportando apenas como um cliente e não configurado para funciona como um par simétrico (tem essa capacidade).
Isso significa que os firewalls sem estado não têm como distinguir as respostas de entrada das consultas de entrada, pois ambas chegam "à" porta 123, e se o ISP tiver um filtro que impede você de hospedar um servidor NTP, também impedirá que você use o NTP. clientes que trabalham neste modo.
O software Linux NTP geralmente segue as especificações do protocolo e usa uma porta de origem efêmera no modo cliente/servidor, como a maioria dos outros softwares UDP faria (o 123→123 é puramente para o modo simétrico). Da mesma forma, a
w32tm
ferramenta funciona porque suas opções de monitor/stripchart fazem com que ela gere suas próprias consultas NTP, usando um soquete regular vinculado a uma porta efêmera.Se você possui um sistema Linux ou BSD que está sempre online, então você pode usar esse sistema como seu servidor NTP interno (é necessária muito pouca configuração para fazer, por exemplo, Chrony ou ntpd funcionar como um servidor de qualidade média).
Isso também deve funcionar para WSL2, já que o relógio do kernel não está estritamente vinculado ao relógio do host (tanto quanto me lembro) - deveria ser possível executar o Chrony dentro do WSL2 como seu servidor NTP e apenas dizer para ele não tentar atualizar o RTC.
Se você tiver algum lugar para passar por VPN, poderá usar a conexão VPN para NTP.
Clientes Windows NTP de terceiros também devem funcionar – especialmente se a porta local 123 já estiver ocupada pelo W32time, pois eles não terão escolha a não ser usar outra porta local de qualquer maneira. Por exemplo, o NetTime parece que pode funcionar.
Clientes de terceiros para protocolos que não sejam NTP também podem funcionar, pois não usam a mesma porta UDP. A precisão não é tão boa quanto a do NTP, mas pode ser boa o suficiente para um PC. Por exemplo, o NIST publica seu cliente nistime que pode usar NTP, bem como o protocolo RFC-868 mais antigo.