Como Sincronizar o Horário do Servidor Windows para o Sky Mission Hub
O Sky Mission Hub utiliza solicitações assinadas com uma janela de validade curta. Se o relógio do Windows no seu servidor FiveM estiver muito adiantado ou atrasado, a API pode rejeitar uma solicitação mesmo quando as credenciais do seu servidor estiverem corretas.
Este guia mostra como sincronizar o relógio do Windows, verificar se funcionou e tentar o Mission Hub novamente.
Por que o Mission Hub precisa do horário correto
Cada solicitação de saída do Mission Hub inclui um timestamp assinado da máquina que está executando o FXServer. A API verifica esse timestamp em relação ao seu próprio relógio. Se a diferença for muito grande, a solicitação é rejeitada com expired_signature.
No Mission Hub, você pode ver "Unable to load mission hub." (na interface em português: "Não foi possível carregar o centro de missões.") O erro expired_signature mais específico pode aparecer no log do servidor. Essa mensagem de carregamento genérica também pode ter outras causas, portanto, verificar o relógio é um passo de solução de problemas e não uma correção para todos os problemas de conexão.
Antes de começar
Você precisa de acesso de administrador ao servidor Windows e uma fonte de tempo acessível. O Windows inclui o serviço Horário do Windows e a ferramenta w32tm, portanto nenhum software adicional é necessário.
Para um VPS ou máquina virtual gerenciada por um provedor, siga os requisitos de fonte de tempo do seu provedor de hospedagem. Se o relógio mudar repetidamente de volta, peça a eles para verificar a sincronização do host também.
Passo a passo: sincronizar o horário do Windows Server
Execute estes comandos no servidor Windows, não no console FiveM ou no console txAdmin.
Abra o PowerShell como administrador
Abra o menu Iniciar do Windows, pesquise por Windows PowerShell, clique com o botão direito e selecione Executar como administrador. Aceite o aviso de permissão do Windows se ele aparecer.
Habilite e inicie o serviço Horário do Windows
Execute estes comandos um por um:
Set-Service -Name W32Time -StartupType Automatic
Start-Service -Name W32Time
Isso inicia o serviço de tempo e o configura para iniciar automaticamente. Iniciar apenas o serviço não prova que o relógio foi sincronizado.
Verifique a fonte de tempo atual e o status
w32tm /query /source
w32tm /query /status
Procure pela Source (Fonte) selecionada e pelo Last Successful Sync Time (horário da última sincronização bem-sucedida). Em um servidor independente, a fonte pode ser um servidor NTP público ou do provedor de hospedagem. Em um membro de domínio, normalmente será uma fonte de tempo do domínio. Uma máquina virtual pode usar um provedor de integração do host.
Local CMOS Clock ou Free-running System Clock não confirma a sincronização com uma fonte externa. Um tempo de sincronização bem-sucedida ausente ou antigo também é um motivo para investigar.
Solicitar uma nova sincronização
w32tm /resync /rediscover
Aguarde o resultado e, em seguida, consulte o status novamente:
w32tm /query /source
w32tm /query /status
Se a sincronização for bem-sucedida e o status mostrar a fonte esperada e um tempo de sincronização bem-sucedida recente, continue para Verificar o resultado abaixo. Você pode manter sua fonte de tempo atual, se ela estiver funcionando.
Se um servidor independente precisar de uma fonte de tempo
Use esta seção apenas para um servidor independente sem uma fonte de tempo gerenciada funcional. Um servidor independente é aquele que não está conectado a um domínio Active Directory.
Se o seu provedor de hospedagem especificar um servidor NTP, use as configurações documentadas por eles. Caso contrário, você pode configurar o Windows para usar o servidor de tempo público da Microsoft:
w32tm /config /manualpeerlist:"time.windows.com,0x8" /syncfromflags:manual /update
Restart-Service -Name W32Time
w32tm /resync /rediscover
A flag 0x8 seleciona o modo cliente NTP. Reiniciar o W32Time aqui reinicia o serviço de tempo do Windows; não reinicia o FXServer.
Verifique o resultado:
w32tm /query /source
w32tm /query /status
A Microsoft documenta essas opções de configuração em Ferramentas e configurações do serviço de Tempo do Windows.
Verificar o resultado
Antes de voltar ao jogo, confirme que:
- O comando de resincronização foi concluído com sucesso.
- Source (Fonte) mostra a fonte de tempo que você espera para este servidor.
- Last Successful Sync Time (horário da última sincronização bem-sucedida) é recente.
Você também pode comparar o relógio com a fonte NTP que você configurou:
w32tm /stripchart /computer:time.windows.com /samples:5 /dataonly
Se você usar um servidor NTP diferente, substitua time.windows.com pelo endereço desse servidor. Isso coleta cinco amostras de deslocamento e então para. O deslocamento é mostrado em segundos; um relógio sincronizado deve estar próximo de zero em vez de minutos ou horas de diferença. O Windows pode corrigir algumas diferenças gradualmente, então verifique novamente se o deslocamento ainda está se estabilizando.
/stripchart compara relógios; ele não os sincroniza. Ele também usa uma porta de origem UDP diferente do serviço Windows Time, portanto, uma comparação bem-sucedida por si só não prova que o W32Time pode sincronizar. Verifique também o resultado da resincronização e o status do serviço.Tente o Mission Hub novamente
Retorne ao Mission Hub e clique em "Tentar novamente", ou feche-o e abra-o novamente. A próxima requisição usará um novo timestamp do relógio do servidor corrigido.
Normalmente, não é necessário reiniciar o FiveM ou o recurso apenas para que a correção do horário do sistema seja reconhecida.
Se o Hub ainda falhar, verifique o log mais recente do servidor. Um expired_signature persistente significa que o relógio do servidor ainda precisa de investigação. Outros erros, incluindo invalid_signature, requerem seu próprio diagnóstico; sincronizar o relógio não resolve todos os problemas de autenticação.
Solução de problemas
Acesso negado
Feche a janela atual do PowerShell e reabra-a com Executar como administrador. Uma conta com direitos de administrador local é necessária para alterar as configurações do serviço de tempo.
O serviço não foi iniciado
Execute os comandos de serviço novamente em uma janela do PowerShell elevada:
Set-Service -Name W32Time -StartupType Automatic
Start-Service -Name W32Time
Get-Service -Name W32Time
O status do serviço deve ser Running (em execução). Então repita o comando de resincronização. Se uma política gerenciada desabilitar o serviço ou sobrepor suas configurações, peça ao seu administrador ou provedor de hospedagem para verificar essa política.
Nenhum dado de tempo estava disponível
Isso geralmente significa que o Windows não conseguiu obter uma resposta válida de sua fonte de tempo. Verifique:
- O hostname NTP configurado está escrito corretamente e é resolvido via DNS.
- A fonte de tempo está disponível e fornece respostas NTP.
- O Windows Firewall, o firewall do provedor e a rede permitem a requisição NTP e sua resposta através da porta UDP 123.
Por exemplo, em um servidor independente configurado para usar time.windows.com, verifique a resolução de DNS com:
Resolve-DnsName time.windows.com
Uma busca de DNS bem-sucedida apenas confirma a resolução de nomes. Isso não prova que o tráfego NTP pode passar. Peça ao seu provedor para verificar a UDP 123 se a sincronização ainda falhar; desativar o firewall não é necessário.
Consulte o guia da Microsoft sobre o erro "no time data was available" para verificações adicionais.
O relógio fica incorreto novamente
Verifique se o serviço Windows Time permanece em execução e se consegue alcançar sua fonte. Em uma máquina virtual, o hypervisor ou o provedor de hospedagem também podem influenciar o relógio do guest. Peça ao provedor para verificar a hora do host se ela sobrescrever repetidamente a hora corrigida do guest.
Mantenha a sincronização automática funcionando em vez de ajustar o relógio manualmente sempre que o Hub falhar.
Guia relacionado
Consulte Scenario Creator e Hub para os fluxos de trabalho de criação e compartilhamento de missões do Sistema de Incêndio.
ESX, QBCore e Qbox: Configure seu Framework e Crie Empregos
Um guia inicial prático de FiveM: instale seu framework, crie empregos e cargos corretamente, entenda o status de serviço e o acesso de chefia, e verifique se tudo está salvando.
Usando o GitHub Desktop para simplificar as atualizações do FiveM e identificar cada mudança
Um guia sem linha de comando para proprietários de servidores FiveM: use o GitHub Desktop para ver exatamente o que mudou em uma atualização, mantenha suas próprias edições de configuração e faça o rollback instantaneamente quando algo quebrar.