Konfiguracja serwera·

Jak zsynchronizować czas serwera Windows dla Sky Mission Hub

Zsynchronizuj zegar systemu Windows na swoim serwerze FiveM, zweryfikuj źródło czasu i napraw błędy odrzuconych żądań Mission Hub spowodowane nieaktualną datą i godziną.

Sky Mission Hub korzysta z podpisanych żądań z krótkim oknem ważności. Jeśli zegar systemu Windows na Twoim serwerze FiveM znacząco wyprzedza aktualny czas lub jest opóźniony, API może odrzucić żądanie, nawet gdy poświadczenia serwera są poprawne.

Ten przewodnik pokazuje, jak zsynchronizować zegar systemu Windows, sprawdzić, czy operacja się powiodła, i ponownie spróbować użyć Mission Hub.

Dlaczego Mission Hub wymaga poprawnego czasu

Każde wychodzące żądanie Mission Hub zawiera podpisany znacznik czasu z maszyny uruchamiającej FXServer. API sprawdza ten znacznik czasu względem własnego zegara. Jeśli różnica jest zbyt duża, żądanie zostaje odrzucone z błędem expired_signature.

W Mission Hub możesz zobaczyć "Unable to load mission hub." (w polskim interfejsie: „Nie udało się wczytać centrum misji.”). W logach serwera może pojawić się bardziej szczegółowy błąd expired_signature. Ten ogólny komunikat o ładowaniu może mieć również inne przyczyny, więc sprawdzenie zegara jest krokiem diagnostycznym, a nie rozwiązaniem każdego problemu z połączeniem.

Zsynchronizuj serwer Windows, na którym działa FXServer, używając Pulpitu zdalnego, jeśli to konieczne. Zmiana zegara w komputerze gamingowym lub czasu w grze GTA nie skoryguje znaczników czasu żądań serwera. Twój serwer może zachować swoją standardową strefę czasową. Znacznik czasu reprezentuje absolutny punkt w czasie, więc nie wymaga tego samego wyświetlanego czasu lokalnego ani strefy czasowej co serwery Sky.

Zanim zaczniesz

Potrzebujesz uprawnień administratora do serwera Windows oraz dostępnego źródła czasu. Windows zawiera usługę Windows Time oraz narzędzie w32tm, więc nie jest wymagane żadne dodatkowe oprogramowanie.

Jeśli Twój serwer należy do domeny Active Directory, zachowaj zarządzane przez domenę źródło czasu. Skorzystaj z poniższych kroków dotyczących usługi, statusu i ponownej synchronizacji, ale pomiń ręczną konfigurację publicznego NTP. Jeśli synchronizacja domeny nie powiodła się, poproś administratora domeny o sprawdzenie hierarchii czasu i zasad Grupy (Group Policy).

W przypadku VPS lub maszyny wirtualnej zarządzanej przez dostawcę, postępuj zgodnie z wymaganiami dostawcy hostingu dotyczącymi źródła czasu. Jeśli zegar wielokrotnie cofa się do poprzedniej godziny, poproś ich również o sprawdzenie synchronizacji hosta.

Krok po kroku: synchronizacja czasu serwera Windows

Uruchom te polecenia na serwerze Windows, a nie w konsoli FiveM ani w konsoli txAdmin.

Otwórz PowerShell jako administrator

Otwórz menu Start w systemie Windows, wyszukaj Windows PowerShell, kliknij prawym przyciskiem myszy i wybierz Uruchom jako administrator. Zaakceptuj komunikat o uprawnieniach systemu Windows, jeśli się pojawi.

Włącz i uruchom usługę Windows Time

Uruchom te polecenia jedno po drugim:

Set-Service -Name W32Time -StartupType Automatic
Start-Service -Name W32Time

To uruchamia usługę czasu i konfiguruje ją tak, aby uruchamiała się automatycznie. Samo uruchomienie usługi nie stanowi dowodu na to, że zegar został zsynchronizowany.

Sprawdź aktualne źródło czasu i status

w32tm /query /source
w32tm /query /status

Sprawdź wybrane Source (źródło) oraz Last Successful Sync Time (czas ostatniej udanej synchronizacji). Na serwerze samodzielnym źródłem może być publiczny serwer NTP lub serwer dostawcy hostingu. Na członku domeny będzie to zazwyczaj źródło czasu domeny. Maszyna wirtualna może korzystać z dostawcy integracji hosta.

Local CMOS Clock (lokalny zegar CMOS) lub Free-running System Clock (samodzielnie działający zegar systemowy) nie potwierdza synchronizacji z zewnętrznym źródłem. Brakujący lub nieaktualny czas ostatniej udanej synchronizacji to również powód do sprawdzenia problemu.

Poproś o nową synchronizację

w32tm /resync /rediscover

Poczekaj na wynik, a następnie ponownie sprawdź status:

w32tm /query /source
w32tm /query /status

Jeśli synchronizacja zakończy się sukcesem, a status pokazuje oczekiwane źródło i niedawny czas ostatniej udanej synchronizacji, przejdź do sekcji Zweryfikuj wynik poniżej. Możesz zachować swoje dotychczasowe działające źródło czasu.

Jeśli serwer samodzielny wymaga źródła czasu

Użyj tej sekcji tylko w przypadku serwera samodzielnego bez działającego zarządzanego źródła czasu. Serwer samodzielny to taki, który nie jest dołączony do domeny Active Directory.

Jeśli Twój dostawca hostingu określa serwer NTP, użyj jego udokumentowanych ustawień. W przeciwnym razie możesz skonfigurować system Windows tak, aby korzystał z publicznego serwera czasu Microsoftu:

w32tm /config /manualpeerlist:"time.windows.com,0x8" /syncfromflags:manual /update
Restart-Service -Name W32Time
w32tm /resync /rediscover

Flaga 0x8 wybiera tryb klienta NTP. Ponowne uruchomienie W32Time w tym miejscu restartuje usługę czasu systemu Windows; nie restartuje ona FXServer.

Sprawdź wynik:

w32tm /query /source
w32tm /query /status

Microsoft dokumentuje te opcje konfiguracji w Narzędzia i ustawienia usługi czasu systemu Windows.

Zweryfikuj wynik

Przed powrotem do gry upewnij się, że:

  • Polecenie ponownej synchronizacji zakończyło się pomyślnie.
  • Source (źródło) pokazuje źródło czasu, którego oczekujesz dla tego serwera.
  • Last Successful Sync Time (czas ostatniej udanej synchronizacji) jest aktualny.

Możesz również porównać zegar z skonfigurowanym przez Ciebie źródłem NTP:

w32tm /stripchart /computer:time.windows.com /samples:5 /dataonly

Jeśli używasz innego serwera NTP, zastąp time.windows.com adresem tego serwera. Proces ten zbiera pięć próbek przesunięcia, a następnie się zatrzymuje. Przesunięcie jest wyświetlane w sekundach; zsynchronizowany zegar powinien być bliski zeru, a nie oddalony o minuty lub godziny. System Windows może stopniowo korygować niektóre różnice, więc sprawdź ponownie, jeśli przesunięcie wciąż się ustala.

/stripchart porównuje zegary; nie synchronizuje ich. Używa również innego źródłowego portu UDP niż usługa czasu Windows, więc samo pomyślne porównanie nie dowodzi, że W32Time może synchronizować. Sprawdź również wynik ponownej synchronizacji oraz status usługi.

Spróbuj ponownie w Mission Hub

Wróć do Mission Hub i kliknij "Spróbuj ponownie", lub zamknij go i otwórz ponownie. Kolejne żądanie wykorzystuje świeży znacznik czasu z poprawionego zegara serwera.

Restart FiveM lub zasobów zazwyczaj nie jest wymagany tylko po to, aby pobrać poprawiony czas systemowy.

Jeśli Hub nadal nie działa, sprawdź ostatni log serwera. Powtarzający się błąd expired_signature oznacza, że zegar serwera nadal wymaga sprawdzenia. Inne błędy, w tym invalid_signature, wymagają własnej diagnostyki; synchronizacja zegara nie rozwiązuje wszystkich problemów z uwierzytelnianiem.

Rozwiązywanie problemów

Dostęp odmówiony

Zamknij bieżące okno PowerShell i otwórz je ponownie za pomocą Uruchom jako administrator. Do zmiany ustawień usługi czasu wymagane jest konto z uprawnieniami administratora lokalnego.

Usługa nie została uruchomiona

Ponownie uruchom polecenia usługi w oknie PowerShell z podwyższonymi uprawnieniami:

Set-Service -Name W32Time -StartupType Automatic
Start-Service -Name W32Time
Get-Service -Name W32Time

Status usługi powinien brzmieć Running (uruchomiona). Następnie powtórz polecenie ponownej synchronizacji. Jeśli polityka zarządzana wyłącza usługę lub nadpisuje jej ustawienia, poproś administratora lub dostawcę hostingu o sprawdzenie tej polityki.

Brak dostępnych danych czasowych

Zazwyczaj oznacza to, że system Windows nie mógł uzyskać poprawnej odpowiedzi ze swojego źródła czasu. Sprawdź:

  • Czy skonfigurowana nazwa hosta NTP jest poprawnie zapisana i rozwiązuje się przez DNS.
  • Źródło czasu jest dostępne i przesyła odpowiedzi NTP.
  • Zapora Windows, zapora dostawcy oraz sieć zezwalają na żądanie NTP i jego odpowiedź przez port UDP 123.

Na przykład, na samodzielnym serwerze skonfigurowanym do korzystania z time.windows.com, sprawdź rozwiązanie DNS za pomocą:

Resolve-DnsName time.windows.com

Pomyślne wyszukanie DNS potwierdza jedynie rozwiązanie nazwy. Nie dowodzi to, że ruch NTP może przechodzić. Poproś dostawcę o sprawdzenie UDP 123, jeśli synchronizacja nadal nie działa; wyłączanie zapory sieciowej nie jest konieczne.

Zobacz przewodnik Microsoftu dotyczący błędu „no time data was available” w celu wykonania dalszych kontroli.

Czas ponownie staje się nieprawidłowy

Sprawdź, czy usługa czasu Windows (Windows Time) działa i może połączyć się ze swoim źródłem. Na maszynie wirtualnej hiperwizor lub dostawca hostingu również mogą wpływać na czas gościa. Poproś dostawcę o sprawdzenie czasu hosta, jeśli wielokrotnie nadpisuje on poprawiony czas gościa.

Utrzymuj działającą automatyczną synchronizację, zamiast ręcznie ustawiać zegar za każdym razem, gdy Hub ulegnie awarii.

Zobacz Scenario Creator i Hub w celu zapoznania się z procesami tworzenia i udostępniania misji w systemie straży pożarnej.