วิธีซิงค์เวลาของ Windows Server สำหรับ Sky Mission Hub
Sky Mission Hub ใช้คำขอที่มีการลงลายเซ็นพร้อมช่วงเวลาที่มีผลสั้นๆ หากนาฬิกา Windows บนเซิร์ฟเวอร์ FiveM ของคุณเร็วหรือช้าเกินไป API อาจปฏิเสธคำขอแม้ว่าข้อมูลประจำตัวของเซิร์ฟเวอร์ของคุณจะถูกต้องก็ตาม
คู่มือนี้จะแสดงวิธีซิงโครไนซ์นาฬิกา Windows ตรวจสอบว่าทำงานสำเร็จหรือไม่ และลองใช้งาน Mission Hub อีกครั้ง
ทำไม Mission Hub ถึงต้องการเวลาที่ถูกต้อง
แต่ละคำขอที่ส่งออกจาก Mission Hub จะรวมถึง Timestamp ที่มีการลงลายเซ็นจากเครื่องที่รัน FXServer โดย API จะตรวจสอบ Timestamp นั้นกับนาฬิกาของตัวเอง หากความแตกต่างมีมากเกินไป คำขอจะถูกปฏิเสธด้วย expired_signature
ใน Mission Hub คุณอาจเห็น "Unable to load mission hub." (ไม่สามารถโหลดศูนย์ภารกิจได้) โดยอาจมีข้อผิดพลาด expired_signature ที่เฉพาะเจาะจงกว่าปรากฏในเซิร์ฟเวอร์ Log ข้อความการโหลดทั่วไปนั้นอาจมีสาเหตุอื่นด้วย ดังนั้นการตรวจสอบนาฬิกาจึงเป็นขั้นตอนการแก้ไขปัญหาเบื้องต้นมากกว่าจะเป็นการแก้ไขปัญหาการเชื่อมต่อทั้งหมด
ก่อนที่คุณจะเริ่มต้น
คุณต้องมีสิทธิ์ระดับผู้ดูแลระบบสำหรับ Windows server และแหล่งที่มาของเวลาที่สามารถติดต่อได้ Windows มาพร้อมกับบริการ Windows Time และ w32tm จึงไม่จำเป็นต้องใช้ซอฟต์แวร์เพิ่มเติม
สำหรับ VPS หรือ Virtual Machine ที่จัดการโดยผู้ให้บริการ ให้ปฏิบัติตามข้อกำหนดแหล่งที่มาของเวลาของผู้ให้บริการโฮสติ้งของคุณ หากเวลาเปลี่ยนกลับไปมาซ้ำๆ ให้ขอให้พวกเขาตรวจสอบการซิงค์ของโฮสต์ด้วย
ขั้นตอนการทำงาน: การซิงค์เวลา Windows Server
รันคำสั่งเหล่านี้บน Windows server ไม่ใช่ใน FiveM console หรือ txAdmin console
เปิด PowerShell ในฐานะผู้ดูแลระบบ
เปิดเมนู Windows Start ค้นหา Windows PowerShell คลิกขวา และเลือก Run as administrator ตอบตกลงหากมีหน้าต่างขออนุญาตของ Windows ปรากฏขึ้น
เปิดใช้งานและเริ่มบริการ Windows Time
รันคำสั่งเหล่านี้ทีละคำสั่ง:
Set-Service -Name W32Time -StartupType Automatic
Start-Service -Name W32Time
สิ่งนี้จะเริ่มการทำงานของบริการเวลาและตั้งค่าให้เริ่มทำงานโดยอัตโนมัติ การเริ่มการทำงานของบริการเพียงอย่างเดียวไม่ได้เป็นการพิสูจน์ว่าเวลาได้รับการซิงค์แล้ว
ตรวจสอบแหล่งที่มาของเวลาและสถานะปัจจุบัน
w32tm /query /source
w32tm /query /status
ดูที่ Source ที่เลือกไว้ และ Last Successful Sync Time สำหรับเซิร์ฟเวอร์แบบ Standalone แหล่งที่มาอาจเป็น NTP server สาธารณะหรือของผู้ให้บริการโฮสติ้ง สำหรับเครื่องที่เป็นสมาชิกในโดเมน โดยปกติจะเป็นแหล่งที่มาของเวลาของโดเมน ส่วน Virtual machine อาจใช้ host integration provider
Local CMOS Clock หรือ Free-running System Clock ไม่มีการยืนยันการซิงค์กับแหล่งข้อมูลภายนอก การที่เวลาการซิงค์ที่สำเร็จล่าสุดหายไปหรือเก่าเกินไปก็เป็นอีกสาเหตุที่ควรตรวจสอบ
ขอการซิงค์ใหม่
w32tm /resync /rediscover
รอผลลัพธ์ จากนั้นตรวจสอบสถานะอีกครั้ง:
w32tm /query /source
w32tm /query /status
หากการซิงค์สำเร็จและสถานะแสดงแหล่งข้อมูลที่คาดหวังและเวลาการซิงค์ที่สำเร็จล่าสุดที่เพิ่งเกิดขึ้น ให้ดำเนินการต่อที่ ตรวจสอบผลลัพธ์ ด้านล่าง คุณสามารถใช้แหล่งเวลาเดิมที่ใช้งานได้ต่อไป
หากเซิร์ฟเวอร์แบบ Standalone ต้องการแหล่งเวลา
ใช้ส่วนนี้เฉพาะสำหรับเซิร์ฟเวอร์แบบ Standalone ที่ไม่มีแหล่งเวลาแบบจัดการที่ใช้งานได้ เซิร์ฟเวอร์แบบ Standalone คือเซิร์ฟเวอร์ที่ไม่ได้เข้าร่วมโดเมน Active Directory
หากผู้ให้บริการโฮสติ้งของคุณระบุเซิร์ฟเวอร์ NTP ให้ใช้การตั้งค่าตามที่ระบุไว้ในเอกสาร มิฉะนั้น คุณสามารถกำหนดค่า Windows ให้ใช้เซิร์ฟเวอร์เวลาสาธารณะของ Microsoft ได้:
w32tm /config /manualpeerlist:"time.windows.com,0x8" /syncfromflags:manual /update
Restart-Service -Name W32Time
w32tm /resync /rediscover
แฟล็ก 0x8 จะเลือกโหมด NTP client การรีสตาร์ท W32Time ในที่นี้คือการรีสตาร์ทบริการเวลาของ Windows ไม่ใช่การรีสตาร์ท FXServer
ตรวจสอบผลลัพธ์:
w32tm /query /source
w32tm /query /status
Microsoft ระบุตัวเลือกการกำหนดค่าเหล่านี้ไว้ใน เครื่องมือและการตั้งค่าบริการ Windows Time
ตรวจสอบผลลัพธ์
ก่อนกลับเข้าสู่เกม โปรดยืนยันว่า:
- คำสั่งรีซิงค์เสร็จสมบูรณ์และสำเร็จ
- Source แสดงแหล่งเวลาที่คุณคาดหวังสำหรับเซิร์ฟเวอร์นี้
- Last Successful Sync Time เป็นเวลาที่เพิ่งเกิดขึ้น
คุณยังสามารถเปรียบเทียบนาฬิกากับแหล่ง NTP ที่คุณกำหนดค่าไว้ได้:
w32tm /stripchart /computer:time.windows.com /samples:5 /dataonly
หากคุณใช้ NTP server อื่น ให้แทนที่ time.windows.com ด้วยที่อยู่ของเซิร์ฟเวอร์นั้น ระบบจะเก็บตัวอย่างค่า offset จำนวนห้าตัวอย่างแล้วหยุดทำงาน ค่า offset จะแสดงเป็นวินาที; นาฬิกาที่ซิงค์แล้วควรมีค่าใกล้เคียงศูนย์ แทนที่จะห่างกันเป็นนาทีหรือหลายชั่วโมง Windows สามารถแก้ไขความแตกต่างบางอย่างได้ทีละน้อย ดังนั้นหากค่า offset ยังไม่คงที่ ให้ตรวจสอบอีกครั้ง
/stripchart ทำการเปรียบเทียบนาฬิกา แต่ไม่ได้ทำการซิงค์นาฬิกา นอกจากนี้ยังใช้ UDP source port ที่แตกต่างจากบริการ Windows Time ดังนั้นการเปรียบเทียบที่สำเร็จเพียงอย่างเดียวไม่ได้พิสูจน์ว่า W32Time สามารถซิงค์ได้ ให้ตรวจสอบผลการซิงค์ใหม่และสถานะของบริการด้วยลองใช้งาน Mission Hub อีกครั้ง
กลับไปที่ Mission Hub และคลิก "ลองอีกครั้ง" หรือปิดแล้วเปิดใหม่อีกครั้ง การร้องขอครั้งถัดไปจะใช้ Timestamp ใหม่จากนาฬิกาเซิร์ฟเวอร์ที่ได้รับการแก้ไขแล้ว
โดยปกติแล้วไม่จำเป็นต้องรีสตาร์ท FiveM หรือทรัพยากร เพียงเพื่อให้รับรู้เวลาระบบที่แก้ไขแล้ว
หาก Hub ยังคงล้มเหลว ให้ตรวจสอบเซิร์ฟเวอร์ log ล่าสุด หากเกิด expired_signature อย่างต่อเนื่อง แสดงว่านาฬิกาเซิร์ฟเวอร์ยังคงต้องได้รับการตรวจสอบ ข้อผิดพลาดอื่นๆ รวมถึง invalid_signature จำเป็นต้องได้รับการวินิจฉัยแยกต่างหาก การซิงค์นาฬิกาไม่ได้แก้ปัญหาการยืนยันตัวตนทุกอย่าง
การแก้ไขปัญหา
การเข้าถึงถูกปฏิเสธ
ปิดหน้าต่าง PowerShell ปัจจุบันและเปิดใหม่ด้วย รันในฐานะผู้ดูแลระบบ จำเป็นต้องใช้บัญชีที่มีสิทธิ์ผู้ดูแลระบบในเครื่องเพื่อเปลี่ยนการตั้งค่าบริการเวลา
บริการยังไม่ได้ถูกเริ่มทำงาน
รันคำสั่งบริการอีกครั้งในหน้าต่าง PowerShell ที่มีสิทธิ์ระดับสูง:
Set-Service -Name W32Time -StartupType Automatic
Start-Service -Name W32Time
Get-Service -Name W32Time
สถานะของบริการควรเป็น Running (กำลังทำงาน) จากนั้นให้ทำคำสั่งซิงค์ใหม่ซ้ำอีกครั้ง หากนโยบายที่จัดการไว้ได้ปิดใช้งานบริการหรือเขียนทับการตั้งค่า ให้ติดต่อผู้ดูแลระบบหรือผู้ให้บริการโฮสติ้งของคุณเพื่อตรวจสอบนโยบายดังกล่าว
ไม่มีข้อมูลเวลาที่ใช้งานได้
โดยปกติหมายความว่า Windows ไม่สามารถรับการตอบสนองที่ถูกต้องจากแหล่งที่มาของเวลาได้ ตรวจสอบดังนี้:
- ชื่อโฮสต์ NTP ที่กำหนดไว้นั้นสะกดถูกต้องและสามารถระบุผ่าน DNS ได้
- แหล่งที่มาของเวลาพร้อมใช้งานและให้การตอบสนอง NTP
- Windows Firewall, ไฟร์วอลล์ของผู้ให้บริการ และเครือข่าย อนุญาตให้คำขอ NTP และการตอบสนองผ่านพอร์ต UDP 123
ตัวอย่างเช่น ในเซิร์ฟเวอร์แบบ Standalone ที่กำหนดค่าให้ใช้ time.windows.com ให้ตรวจสอบการแปลงชื่อ DNS ด้วย:
Resolve-DnsName time.windows.com
การค้นหา DNS ที่สำเร็จเป็นการยืนยันเพียงการระบุชื่อเท่านั้น ไม่ได้พิสูจน์ว่าทราฟฟิก NTP สามารถผ่านไปได้ ให้แจ้งผู้ให้บริการให้ตรวจสอบ UDP 123 หากการซิงค์ยังล้มเหลว การปิดไฟร์วอลล์ไม่ใช่สิ่งที่จำเป็น
ดูคู่มือของ Microsoft เกี่ยวกับ ข้อผิดพลาด "no time data was available" สำหรับการตรวจสอบเพิ่มเติม
เวลาไม่ถูกต้องอีกครั้ง
ตรวจสอบว่าบริการ Windows Time ยังคงทำงานอยู่และสามารถเชื่อมต่อกับแหล่งที่มาได้ ในเครื่องเสมือน (Virtual Machine) ไฮเปอร์ไวเซอร์หรือผู้ให้บริการโฮสติ้งอาจมีอิทธิพลต่อเวลาของเครื่อง Guest ด้วย ให้ผู้ให้บริการตรวจสอบเวลาของเครื่อง Host หากมีการเขียนทับเวลาที่แก้ไขแล้วของเครื่อง Guest ซ้ำๆ
รักษาการซิงค์อัตโนมัติให้ใช้งานได้ แทนที่จะปรับเวลาด้วยตนเองทุกครั้งที่ Hub ล้มเหลว
คู่มือที่เกี่ยวข้อง
ดู Scenario Creator และ Hub สำหรับเวิร์กโฟลว์การสร้างและแชร์ภารกิจของระบบ Fire System
ESX, QBCore และ Qbox: ตั้งค่า Framework ของคุณและสร้างอาชีพ
คู่มือเริ่มต้น FiveM ที่ใช้งานได้จริง: ติดตั้ง framework ของคุณ, สร้างอาชีพและระดับตำแหน่งอย่างถูกต้อง, ทำความเข้าใจเรื่องการเข้าเวรและสิทธิ์การเข้าถึงของหัวหน้า และตรวจสอบว่าทุกอย่างมีการบันทึกข้อมูล
ใช้ GitHub Desktop เพื่อทำให้การอัปเดต FiveM ง่ายขึ้นและตรวจพบทุกการเปลี่ยนแปลง
คู่มือแบบไม่ต้องใช้คำสั่งสำหรับเจ้าของเซิร์ฟเวอร์ FiveM: ใช้ GitHub Desktop เพื่อดูว่ามีการเปลี่ยนแปลงอะไรบ้างในการอัปเดต, รักษาการตั้งค่าที่คุณแก้ไขไว้เอง และย้อนกลับได้ทันทีเมื่อมีบางอย่างผิดพลาด