Cómo sincronizar la hora del servidor Windows para Sky Mission Hub
Sky Mission Hub utiliza solicitudes firmadas con una ventana de validez corta. Si el reloj de Windows en tu servidor FiveM está muy adelantado o retrasado, la API puede rechazar una solicitud incluso cuando las credenciales de tu servidor sean correctas.
Esta guía te muestra cómo sincronizar el reloj de Windows, comprobar que ha funcionado e intentar usar Mission Hub de nuevo.
Por qué Mission Hub necesita la hora correcta
Cada solicitud saliente de Mission Hub incluye una marca de tiempo firmada de la máquina que ejecuta FXServer. La API comprueba esa marca de tiempo con su propio reloj. Si la diferencia es demasiado grande, la solicitud se rechaza con expired_signature.
En Mission Hub, es posible que veas "Unable to load mission hub." (en la interfaz española: «No se pudo cargar el centro de misiones.»). El error más específico expired_signature puede aparecer en el registro del servidor. Ese mensaje de carga general también puede tener otras causas, por lo que comprobar el reloj es un paso de resolución de problemas en lugar de una solución para todos los problemas de conexión.
Antes de empezar
Necesitas acceso de administrador al servidor Windows y una fuente de tiempo accesible. Windows incluye el servicio Windows Time y la herramienta w32tm, por lo que no es necesario software adicional.
Para un VPS o máquina virtual gestionada por un proveedor, sigue los requisitos de fuente de tiempo de tu proveedor de hosting. Si el reloj vuelve a cambiar repetidamente, pídeles que también comprueben la sincronización del host.
Paso a paso: sincronizar la hora del Windows Server
Ejecuta estos comandos en el servidor Windows, no en la consola de FiveM ni en la consola de txAdmin.
Abrir PowerShell como administrador
Abre el menú de Inicio de Windows, busca Windows PowerShell, haz clic derecho sobre él y selecciona Ejecutar como administrador. Acepta el aviso de permiso de Windows si aparece uno.
Habilitar e iniciar el servicio Windows Time
Ejecuta estos comandos uno a la vez:
Set-Service -Name W32Time -StartupType Automatic
Start-Service -Name W32Time
Esto inicia el servicio de tiempo y lo configura para que se inicie automáticamente. Iniciar solo el servicio no demuestra que el reloj se haya sincronizado.
Comprobar la fuente de tiempo actual y el estado
w32tm /query /source
w32tm /query /status
Busca la Source (fuente) seleccionada y la Last Successful Sync Time (hora de la última sincronización correcta). En un servidor independiente, la fuente puede ser un servidor NTP público o del proveedor de hosting. En un miembro del dominio, normalmente será una fuente de tiempo del dominio. Una máquina virtual puede utilizar un proveedor de integración del host.
Local CMOS Clock (reloj CMOS local) o Free-running System Clock (reloj de sistema de libre oscilación) no confirman la sincronización con una fuente externa. La falta de una hora de sincronización exitosa o que sea antigua también es un motivo para investigar.
Solicitar una nueva sincronización
w32tm /resync /rediscover
Espera al resultado y luego consulta el estado de nuevo:
w32tm /query /source
w32tm /query /status
Si la sincronización tiene éxito y el estado muestra la fuente esperada y una hora de sincronización exitosa reciente, continúa con Verificar el resultado a continuación. Puedes mantener tu fuente de tiempo actual si funciona correctamente.
Si un servidor independiente necesita una fuente de tiempo
Usa esta sección solo para un servidor independiente sin una fuente de tiempo gestionada que funcione. Un servidor independiente es aquel que no está unido a un dominio de Active Directory.
Si tu proveedor de hosting especifica un servidor NTP, usa su configuración documentada. De lo contrario, puedes configurar Windows para que use el servidor de tiempo público de Microsoft:
w32tm /config /manualpeerlist:"time.windows.com,0x8" /syncfromflags:manual /update
Restart-Service -Name W32Time
w32tm /resync /rediscover
El parámetro 0x8 selecciona el modo cliente NTP. Reiniciar W32Time aquí reinicia el servicio de tiempo de Windows; no reinicia FXServer.
Comprueba el resultado:
w32tm /query /source
w32tm /query /status
Microsoft documenta estas opciones de configuración en Herramientas y configuración del servicio de tiempo de Windows.
Verificar el resultado
Antes de volver al juego, confirma que:
- El comando de resincronización se completó correctamente.
- Source (fuente) muestra la fuente de tiempo que esperas para este servidor.
- Last Successful Sync Time (hora de la última sincronización correcta) es reciente.
También puedes comparar el reloj con la fuente NTP que configuraste:
w32tm /stripchart /computer:time.windows.com /samples:5 /dataonly
Si utilizas un servidor NTP diferente, sustituye time.windows.com por la dirección de dicho servidor. Esto recopila cinco muestras de desfase y luego se detiene. El desfase se muestra en segundos; un reloj sincronizado debería estar cerca de cero en lugar de estar a minutos u horas de diferencia. Windows puede corregir algunas diferencias gradualmente, así que vuelve a comprobarlo si el desfase aún se está estabilizando.
/stripchart compara relojes; no los sincroniza. También utiliza un puerto de origen UDP diferente al del servicio de Tiempo de Windows, por lo que una comparación exitosa por sí sola no demuestra que W32Time pueda sincronizar. Comprueba también el resultado de la resincronización y el estado del servicio.Intentar de nuevo en el Mission Hub
Vuelve al Mission Hub y haz clic en "Intentar de nuevo", o ciérralo y ábrelo de nuevo. La siguiente solicitud utilizará una marca de tiempo nueva del reloj del servidor corregido.
Normalmente no es necesario reiniciar FiveM ni el recurso solo para que se reconozca la hora del sistema corregida.
Si el Hub sigue fallando, comprueba el último registro del servidor. Un expired_signature persistente significa que el reloj del servidor aún requiere investigación. Otros errores, incluido invalid_signature, requieren su propio diagnóstico; sincronizar el reloj no resuelve todos los problemas de autenticación.
Resolución de problemas
Acceso denegado
Cierra la ventana actual de PowerShell y vuelve a abrirla con Ejecutar como administrador. Se requiere una cuenta con derechos de administrador local para cambiar la configuración del servicio de tiempo.
El servicio no se ha iniciado
Ejecuta de nuevo los comandos del servicio en una ventana de PowerShell con privilegios elevados:
Set-Service -Name W32Time -StartupType Automatic
Start-Service -Name W32Time
Get-Service -Name W32Time
El estado del servicio debería ser Running (en ejecución). Luego repite el comando de resincronización. Si una política administrada desactiva el servicio o anula su configuración, pide a tu administrador o proveedor de hosting que compruebe esa política.
No había datos de tiempo disponibles
Esto suele significar que Windows no pudo obtener una respuesta válida de su fuente de tiempo. Comprueba:
- Que el nombre de host NTP configurado esté escrito correctamente y se resuelva a través de DNS.
- La fuente de tiempo está disponible y proporciona respuestas NTP.
- El firewall de Windows, el firewall del proveedor y la red permiten la solicitud NTP y su respuesta a través del puerto UDP 123.
Por ejemplo, en un servidor independiente configurado para usar time.windows.com, compruebe la resolución DNS con:
Resolve-DnsName time.windows.com
Una resolución DNS exitosa solo confirma la resolución de nombres. No demuestra que el tráfico NTP pueda pasar. Pida a su proveedor que compruebe el puerto UDP 123 si la sincronización sigue fallando; no es necesario desactivar el firewall.
Consulte la guía de Microsoft sobre el error "no time data was available" para realizar más comprobaciones.
El reloj vuelve a ser incorrecto
Compruebe que el servicio de Tiempo de Windows siga ejecutándose y pueda alcanzar su fuente. En una máquina virtual, el hipervisor o el proveedor de alojamiento también pueden influir en el reloj del invitado. Pida al proveedor que compruebe la hora del host si sobrescribe repetidamente la hora corregida del invitado.
Mantenga funcionando la sincronización automática en lugar de ajustar manualmente el reloj cada vez que el Hub falle.
Guía relacionada
Consulte Scenario Creator y Hub para los flujos de trabajo de creación y uso compartido de misiones del Sistema de Incendios.
ESX, QBCore y Qbox: Configura tu framework y crea trabajos
Una guía práctica de inicio para FiveM: instala tu framework, crea trabajos y rangos correctamente, comprende el estado de servicio y el acceso de jefe, y comprueba que todo se guarde.
Uso de GitHub Desktop para simplificar las actualizaciones de FiveM y detectar cada cambio
Una guía sin línea de comandos para dueños de servidores de FiveM: usa GitHub Desktop para ver exactamente qué ha cambiado en una actualización, mantén tus propias ediciones de configuración y vuelve atrás instantáneamente cuando algo falle.