คู่มือการแก้ไขปัญหาสำหรับปัญหาเซิร์ฟเวอร์ RedM ทั่วไป รวมถึงข้อผิดพลาดของคีย์ลิขสิทธิ์ การมองเห็นในเบราว์เซอร์เซิร์ฟเวอร์ ความล้มเหลวของรีซอร์ส การเชื่อมต่อไคลเอนต์ ปัญหาฐานข้อมูล และการปรับแต่งประสิทธิภาพ สำหรับคำแนะนำการตั้งค่าเริ่มต้น ดูที่ คู่มือการตั้งค่าเซิร์ฟเวอร์ RedM ของเรา
ข้อผิดพลาดของคีย์ลิขสิทธิ์
ปัญหาเกี่ยวกับคีย์ลิขสิทธิ์เป็นปัญหาที่พบบ่อยที่สุดเมื่อเริ่มต้นเซิร์ฟเวอร์ RedM ใหม่ นี่คือข้อผิดพลาดทั่วไปและวิธีแก้ไข:
"Invalid license key" หรือ "Could not authenticate"
| สาเหตุ | วิธีแก้ไข |
|---|---|
| คีย์ลิขสิทธิ์พิมพ์ผิดหรือมีช่องว่างเกิน | คัดลอกคีย์โดยตรงจาก Keymaster ลบช่องว่างนำหน้า/ต่อท้ายออกจากตัวแปรการเริ่มต้น CFX_LICENSE ใน GPanel หรือบรรทัด sv_licenseKey ใน server.cfg |
| ที่อยู่ IP ไม่ตรงกัน | คีย์ถูกลงทะเบียนกับ IP ที่ต่างจาก IP จริงของเซิร์ฟเวอร์ของคุณ ไปที่ Keymaster ตรวจสอบ IP ที่ลงทะเบียนไว้ และอัปเดตให้ตรงกับ IP ของเซิร์ฟเวอร์ของคุณที่แสดงใน GPanel |
| คีย์ถูกตั้งค่าทั้งใน GPanel และ server.cfg ด้วยค่าที่ต่างกัน | ตรวจสอบให้แน่ใจว่าคีย์สอดคล้องกัน วิธีที่ดีที่สุดคือตั้งค่าในตัวแปรการเริ่มต้นของ GPanel และให้ egg จัดการการส่งคีย์ไปยังเซิร์ฟเวอร์ ลบหรือคอมเมนต์ sv_licenseKey ออกจาก server.cfg หาก GPanel จัดการมัน |
| ปัญหาบัญชี Cfx.re หรือคีย์ถูกเพิกถอน | เข้าสู่ระบบ Keymaster และตรวจสอบว่าคีย์ยังใช้งานได้อยู่ สร้างคีย์ใหม่หากคีย์เก่าถูกลบหรือหมดอายุ |
| บริการ Keymaster ล่มชั่วคราว | ตรวจสอบ หน้าสถานะ Cfx.re สำหรับการขัดข้อง รอและลองอีกครั้งในภายหลัง |
เซิร์ฟเวอร์ไม่ปรากฏในเบราว์เซอร์
หากเซิร์ฟเวอร์ของคุณกำลังทำงานอยู่แต่ผู้เล่นไม่สามารถค้นหาได้ในเบราว์เซอร์เซิร์ฟเวอร์ RedM:
รายการตรวจสอบ
- รออย่างน้อย 5 นาที หลังจากเริ่มต้น เซิร์ฟเวอร์ต้องใช้เวลาในการลงทะเบียนกับรายชื่อเซิร์ฟเวอร์ master ของ Cfx.re เซิร์ฟเวอร์ใหม่อาจใช้เวลาหลายนาทีจึงจะปรากฏ
- ตรวจสอบว่าคีย์ลิขสิทธิ์ถูกต้อง เซิร์ฟเวอร์จะไม่ถูกแสดงในรายการหากไม่มีคีย์ลิขสิทธิ์ที่ใช้งานได้ ตรวจสอบคอนโซลเซิร์ฟเวอร์สำหรับข้อผิดพลาดที่เกี่ยวข้องกับลิขสิทธิ์
- ตรวจสอบการกำหนดค่า endpoint ตรวจสอบให้แน่ใจว่า
endpoint_add_tcpและendpoint_add_udpในserver.cfgใช้พอร์ตที่ถูกต้อง:
พอร์ตต้องตรงกับพอร์ตที่กำหนดใน GPanelendpoint_add_tcp "0.0.0.0:30120" endpoint_add_udp "0.0.0.0:30120" - ตรวจสอบการตั้งค่า "sv_master1" หรือการแสดงรายการ ตรวจสอบให้แน่ใจว่าคุณไม่ได้ตั้งค่าให้เซิร์ฟเวอร์ไม่แสดงตัวเองโดยไม่ตั้งใจ ไม่ควรมี
sv_master1 ""ในการกำหนดค่าของคุณ (สิ่งนี้จะปิดการลงทะเบียนในรายชื่อ master) - ตรวจสอบว่าเซิร์ฟเวอร์กำลังทำงานจริง ตรวจสอบคอนโซล GPanel หากเซิร์ฟเวอร์ขัดข้องหรือหยุดทำงาน มันจะไม่ปรากฏในเบราว์เซอร์
- ลองเชื่อมต่อโดยตรง แม้ว่าเซิร์ฟเวอร์จะไม่อยู่ในเบราว์เซอร์ การเชื่อมต่อโดยตรงควรทำงานได้ ให้ผู้เล่นกด F8 ใน RedM และพิมพ์:
connect YOUR_SERVER_IP:PORT
http://YOUR_SERVER_IP:PORT/info.json ในเว็บเบราว์เซอร์ หากเซิร์ฟเวอร์กำลังทำงานและเข้าถึงได้ มันจะส่งคืนการตอบสนอง JSON พร้อมข้อมูลเซิร์ฟเวอร์
ความล้มเหลวในการโหลดรีซอร์ส
ข้อผิดพลาดของรีซอร์สเป็นเรื่องปกติเมื่อเพิ่มสคริปต์หรือเฟรมเวิร์กใหม่ไปยังเซิร์ฟเวอร์ของคุณ นี่คือปัญหาที่พบบ่อยที่สุด:
"Could not find resource [resource_name]"
- โฟลเดอร์รีซอร์สไม่มีอยู่ในไดเรกทอรี
resources/หรืออยู่ในตำแหน่งที่ผิด - ชื่อโฟลเดอร์ไม่ตรงกับชื่อที่ใช้ใน
ensureชื่อรีซอร์สแยกความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก - วิธีแก้: ตรวจสอบว่าโฟลเดอร์รีซอร์สมีอยู่และชื่อใน
server.cfgตรงกันทุกประการ ใช้ file manager ของ GPanel หรือ SFTP เพื่อตรวจสอบ
"Failed to load resource [resource_name]: manifest error"
fxmanifest.luaหรือ__resource.luaของรีซอร์สมีข้อผิดพลาดทางไวยากรณ์- manifest อ้างอิงไฟล์ที่ไม่มีอยู่ในโฟลเดอร์รีซอร์ส
- วิธีแก้: เปิดไฟล์ manifest และตรวจสอบการพิมพ์ผิด เครื่องหมายจุลภาคที่ขาดหายไป หรือการอ้างอิงไปยังไฟล์ที่ไม่มีอยู่ ตรวจสอบคอนโซลเซิร์ฟเวอร์สำหรับหมายเลขบรรทัดเฉพาะของข้อผิดพลาด
"Error loading script [filename]: [error details]"
- ไฟล์ Lua, C# หรือ JavaScript ภายในรีซอร์สมีข้อผิดพลาดทางไวยากรณ์หรือรันไทม์
- วิธีแก้: อ่านข้อความแสดงข้อผิดพลาดทั้งหมดในคอนโซล มันจะรวมชื่อไฟล์และหมายเลขบรรทัด สาเหตุที่พบบ่อยได้แก่:
- การพึ่งพา (dependencies) ที่ขาดหายไป (รีซอร์สอื่นที่ต้องโหลดก่อน)
- รีซอร์สที่ล้าสมัยไม่เข้ากันได้กับเวอร์ชันเซิร์ฟเวอร์ RedM ปัจจุบัน
- ค่าการกำหนดค่าที่ไม่ถูกต้องในไฟล์ config ของรีซอร์ส
ปัญหาลำดับการโหลดรีซอร์ส
รีซอร์สใน server.cfg ถูกโหลดตามลำดับที่ปรากฏ หากรีซอร์สหนึ่งพึ่งพาอีกตัวหนึ่ง (เช่น vorp_inventory พึ่งพา vorp_core) การพึ่งพานั้นต้องถูกระบุไว้ก่อน:
# Correct order - dependencies first
ensure oxmysql
ensure vorp_core
ensure vorp_inventory
ensure vorp_stores
# Wrong order - will cause errors
# ensure vorp_inventory <-- depends on vorp_core
# ensure vorp_core <-- loaded too late
ปัญหาการเชื่อมต่อไคลเอนต์
เมื่อผู้เล่นไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ของคุณ:
"Connection timed out" / "Failed to connect"
| สาเหตุ | วิธีแก้ไข |
|---|---|
| เซิร์ฟเวอร์ไม่ได้ทำงานอยู่ | ตรวจสอบคอนโซล GPanel เพื่อยืนยันว่าเซิร์ฟเวอร์ออนไลน์และไม่ได้ขัดข้อง |
| IP หรือพอร์ตผิด | ตรวจสอบว่าผู้เล่นใช้ IP และพอร์ตที่ถูกต้องจาก GPanel ดูที่ วิธีค้นหา IP และพอร์ตของเซิร์ฟเวอร์ |
| การกำหนดค่า endpoint ผิดพลาด | ตรวจสอบให้แน่ใจว่า endpoint_add_tcp และ endpoint_add_udp ใน server.cfg ใช้พอร์ต 0.0.0.0:PORT โดยที่ PORT ตรงกับ GPanel |
| เซิร์ฟเวอร์เต็ม | ตรวจสอบว่าถึง sv_maxclients แล้วหรือไม่ เพิ่มค่าหากแผนโฮสติ้งของคุณอนุญาต |
"Connection rejected by server"
- รหัสผ่านเซิร์ฟเวอร์: หากตั้งค่า
sv_passwordไว้ ผู้เล่นต้องป้อนรหัสผ่านที่ถูกต้อง - รีซอร์ส whitelist/allowlist: หากคุณเปิดใช้งานรีซอร์ส whitelist ผู้เล่นต้องได้รับการอนุมัติก่อนเชื่อมต่อ
- การแบน: ผู้เล่นอาจถูกแบน ตรวจสอบรายการแบนหรือฐานข้อมูลของคุณสำหรับตัวระบุของพวกเขา
ไคลเอนต์ขัดข้องเมื่อเชื่อมต่อ
- รีซอร์สบนเซิร์ฟเวอร์กำลังส่งข้อมูลที่ไม่ดีหรือมีข้อผิดพลาดสคริปต์ฝั่งไคลเอนต์ที่ทำให้ไคลเอนต์ขัดข้อง
- วิธีแก้: ปิดใช้งานรีซอร์สที่เพิ่งเพิ่มทีละตัวเพื่อระบุตัวที่มีปัญหา ตรวจสอบคอนโซลเซิร์ฟเวอร์สำหรับข้อผิดพลาดระหว่างการเชื่อมต่อไคลเอนต์
- ตรวจสอบให้แน่ใจว่าไคลเอนต์ RedM ของผู้เล่นเป็นเวอร์ชันล่าสุด
ข้อผิดพลาด "Could not download file"
- เซิร์ฟเวอร์กำลังพยายามส่งไฟล์ขนาดใหญ่ (เช่น สตรีมมิ่ง asset) ที่เกินขีดจำกัดการถ่ายโอน หรือการเชื่อมต่อไม่เสถียร
- วิธีแก้: ลดขนาดของ asset ที่สตรีม ใช้ CDN/โฮสติ้งภายนอกสำหรับไฟล์ขนาดใหญ่หากรองรับ หรือให้ผู้เล่นลองเชื่อมต่อใหม่
ปัญหาฐานข้อมูล (MySQL / oxmysql)
เฟรมเวิร์กบทบาทสมมติ RedM ส่วนใหญ่ใช้ MySQL สำหรับการจัดเก็บข้อมูลแบบถาวร ตัวเชื่อมต่อฐานข้อมูลที่พบบ่อยที่สุดคือ oxmysql
ข้อผิดพลาดการเชื่อมต่อล้มเหลว
หาก oxmysql (หรือตัวเชื่อมต่อ MySQL อื่น) เชื่อมต่อไม่สำเร็จ ให้ตรวจสอบสิ่งต่อไปนี้:
# Typical oxmysql connection string in server.cfg
set mysql_connection_string "mysql://user:password@host:3306/database_name?charset=utf8mb4"
| ข้อผิดพลาด | วิธีแก้ไข |
|---|---|
ECONNREFUSED หรือ "Connection refused" |
เซิร์ฟเวอร์ MySQL ไม่ได้ทำงานอยู่ host/port ผิด หรือเซิร์ฟเวอร์ MySQL ไม่ยอมรับการเชื่อมต่อจากภายนอก ตรวจสอบ host, port และว่าเซิร์ฟเวอร์ฐานข้อมูลของคุณออนไลน์อยู่ |
ER_ACCESS_DENIED_ERROR |
ชื่อผู้ใช้หรือรหัสผ่านใน connection string ผิด ตรวจสอบข้อมูลรับรองในแผงโฮสติ้งฐานข้อมูลของคุณอีกครั้ง |
ER_BAD_DB_ERROR |
ชื่อฐานข้อมูลไม่มีอยู่ สร้างฐานข้อมูลก่อนผ่านแผงจัดการฐานข้อมูลของคุณ (phpMyAdmin ฯลฯ) |
ETIMEDOUT |
ไม่สามารถเข้าถึงเซิร์ฟเวอร์ฐานข้อมูลได้ ตรวจสอบว่ามีกฎไฟร์วอลล์ที่บล็อกการเชื่อมต่ออยู่หรือไม่ หรือว่า host ฐานข้อมูลถูกต้อง |
| "Too many connections" | ฐานข้อมูลถึงขีดจำกัดการเชื่อมต่อสูงสุดแล้ว สิ่งนี้อาจเกิดขึ้นได้หากรีซอร์สไม่ปิดการเชื่อมต่ออย่างถูกต้อง หรือหากขีดจำกัดต่ำเกินไป รีสตาร์ทเซิร์ฟเวอร์และตรวจสอบการตั้งค่า max_connections ของ MySQL ของคุณ |
localhost หรือ 127.0.0.1 เป็น host หากอยู่บนเซิร์ฟเวอร์ที่ต่างกัน ให้ใช้ที่อยู่ IP ของเซิร์ฟเวอร์ฐานข้อมูลและตรวจสอบให้แน่ใจว่าผู้ใช้ MySQL มีสิทธิ์การเชื่อมต่อจากระยะไกล
ตารางที่ขาดหายไปหรือข้อผิดพลาด Schema
เฟรมเวิร์กบทบาทสมมติมักต้องการให้ตั้งค่าตารางฐานข้อมูลก่อนจึงจะทำงานได้:
- ตรวจสอบเอกสารหรือ GitHub repository ของเฟรมเวิร์กสำหรับไฟล์ import SQL (มักตั้งชื่อว่า
database.sql,schema.sqlหรือคล้ายกัน) - นำเข้าไฟล์ SQL ลงในฐานข้อมูลของคุณโดยใช้ phpMyAdmin หรือไคลเอนต์ MySQL
- เฟรมเวิร์กบางตัวสร้างตารางอัตโนมัติในการเริ่มต้นครั้งแรก ตรวจสอบให้แน่ใจว่าผู้ใช้ฐานข้อมูลมีสิทธิ์
CREATE TABLE
ปัญหาประสิทธิภาพ
หากเซิร์ฟเวอร์ RedM ของคุณประสบกับความหน่วง tick rate ต่ำ หรือประสิทธิภาพแย่โดยทั่วไป:
การระบุปัญหาประสิทธิภาพ
ตรวจสอบคอนโซลเซิร์ฟเวอร์สำหรับคำเตือนด้านประสิทธิภาพ เซิร์ฟเวอร์ RedM มี tick rate เป้าหมายอยู่ที่ประมาณ 30-64 ticks ต่อวินาที คุณสามารถตรวจสอบสิ่งนี้ได้ด้วย:
- แดชบอร์ด txAdmin: หากมี txAdmin ให้ใช้งาน มันจะแสดงตัวชี้วัดประสิทธิภาพเซิร์ฟเวอร์แบบเรียลไทม์
- คอนโซลเซิร์ฟเวอร์: เฝ้าดูคำเตือน "slow tick" หรือ "resource hitch"
- คำสั่ง resmon: พิมพ์
resmon 1ในคอนโซลเซิร์ฟเวอร์ (หรือคอนโซล F8) เพื่อเปิดใช้งานตัวตรวจสอบรีซอร์ส ซึ่งแสดงเวลา CPU ต่อรีซอร์ส
วิธีแก้ไขปัญหาประสิทธิภาพทั่วไป
| ปัญหา | วิธีแก้ไข |
|---|---|
| การใช้งาน CPU สูงจากรีซอร์สเฉพาะ | ใช้ resmon 1 เพื่อระบุรีซอร์ส พิจารณาแทนที่ด้วยทางเลือกที่ปรับแต่งดีกว่า หรือติดต่อผู้พัฒนารีซอร์ส |
| โหลดรีซอร์สมากเกินไป | แต่ละรีซอร์สใช้ทรัพยากรเซิร์ฟเวอร์ ตรวจสอบรายการรีซอร์สของคุณและลบรายการที่ไม่ได้ใช้หรือซ้ำซ้อนออก |
| คอขวดการ query ฐานข้อมูล | การ query ฐานข้อมูลที่ช้าหรือไม่มี index อาจทำให้เซิร์ฟเวอร์สะดุด ตรวจสอบคำเตือน slow query ของ oxmysql ในคอนโซล เพิ่ม index ให้กับคอลัมน์ที่ถูก query บ่อย |
| จำนวนผู้เล่นสูงทำให้เกิดความหน่วง | ลด sv_maxclients ลงสู่ระดับที่ฮาร์ดแวร์เซิร์ฟเวอร์ของคุณรองรับได้ พิจารณาอัปเกรดแผนโฮสติ้งของคุณเพื่อทรัพยากรเพิ่มเติม |
| ขีดจำกัด entity ของ OneSync | entity ที่ spawn มากเกินไป (peds, ยานพาหนะ, วัตถุ) อาจทำให้ประสิทธิภาพลดลง ใช้รีซอร์สที่ทำความสะอาด entity ที่ไม่ได้ใช้ |
| หน่วยความจำรั่ว (Memory leaks) | รีซอร์สที่เขียนโค้ดไม่ดีบางตัวทำให้หน่วยความจำรั่วเมื่อเวลาผ่านไป ตรวจสอบการใช้งาน RAM ของเซิร์ฟเวอร์ใน GPanel การรีสตาร์ทเซิร์ฟเวอร์เป็นประจำ (ทุก 6-12 ชั่วโมง) สามารถบรรเทาปัญหานี้ได้ |
แนวทางปฏิบัติที่แนะนำ
- กำหนดเวลาการรีสตาร์ทอัตโนมัติ ทุก 6-12 ชั่วโมงโดยใช้ฟีเจอร์การกำหนดเวลาของ GPanel หรือ txAdmin เพื่อล้างปัญหาหน่วยความจำและ entity ที่สะสม
- อัปเดตรีซอร์สอยู่เสมอ เพื่อรับประโยชน์จากการแก้ไขประสิทธิภาพและการปรับแต่ง
- หลีกเลี่ยงฟังก์ชันการทำงานที่ซ้ำกัน — อย่ารันรีซอร์สสองตัวที่ทำสิ่งเดียวกัน (เช่น ระบบสภาพอากาศสองตัว)
- ทดสอบรีซอร์สใหม่บนเซิร์ฟเวอร์ staging (หรือกับจำนวนผู้เล่นน้อย) ก่อนนำไปใช้งานบนเซิร์ฟเวอร์หลักของคุณ
- ตรวจสอบตัวชี้วัดเซิร์ฟเวอร์ เป็นประจำผ่าน GPanel หรือ txAdmin เพื่อตรวจจับปัญหาตั้งแต่เนิ่นๆ
เคล็ดลับการแก้ไขปัญหาทั่วไป
- อ่านเอาต์พุตคอนโซลเซิร์ฟเวอร์เสมอ ข้อผิดพลาดเกือบทุกอย่างมีข้อความในคอนโซลที่บอกคุณว่าเกิดอะไรผิดพลาดและที่ไหน
- รีสตาร์ทเซิร์ฟเวอร์หลังการเปลี่ยนแปลงการกำหนดค่า การเปลี่ยนแปลงส่วนใหญ่ใน
server.cfgต้องการการรีสตาร์ทเซิร์ฟเวอร์เต็มรูปแบบเพื่อให้มีผล - ปิดใช้งานรีซอร์สทีละตัว เพื่อแยกปัญหา คอมเมนต์บรรทัด
ensureในserver.cfgด้วย# - เก็บข้อมูลสำรอง ของการกำหนดค่าที่ใช้งานได้ก่อนทำการเปลี่ยนแปลง ดาวน์โหลด
server.cfgและฐานข้อมูลของคุณก่อนการอัปเดตครั้งใหญ่ - ตรวจสอบฟอรัมและเอกสารของ Cfx.re ที่ docs.fivem.net สำหรับเอกสารอย่างเป็นทางการที่ใช้ได้กับทั้ง FiveM และ RedM
- ตรวจสอบความเข้ากันได้ของรีซอร์ส กับเวอร์ชันเซิร์ฟเวอร์ของคุณ รีซอร์สที่สร้างขึ้นสำหรับเวอร์ชันเก่าอาจไม่ทำงานกับบิลด์ RedM ปัจจุบัน
บทความที่เกี่ยวข้อง
- คู่มือการตั้งค่าเซิร์ฟเวอร์ RedM — คีย์ลิขสิทธิ์ การกำหนดค่า server.cfg การจัดการรีซอร์ส และการเชื่อมต่อ
- วิธีค้นหา IP และพอร์ตของเซิร์ฟเวอร์
- วิธีอัปโหลดไฟล์ผ่าน SFTP
- เริ่มต้นใช้งานเซิร์ฟเวอร์ใหม่ของคุณ
ต้องการความช่วยเหลือ?
ยังคงประสบปัญหากับเซิร์ฟเวอร์ RedM ของคุณอยู่ใช่ไหม? เปิดทิกเก็ตสนับสนุน และระบุข้อความแสดงข้อผิดพลาดใดๆ จากคอนโซลเซิร์ฟเวอร์ของคุณ ทีมงานของเราจะช่วยคุณวินิจฉัยและแก้ไขปัญหา