Dragonica · เครื่องมือทีม CS
เว็บตรวจสอบการแบนทำงานอย่างไร
ทีม CS เปิด cs.ratj.uk ค้นด้วยไอดีหรือชื่อตัวละคร แล้วเห็นทันทีว่าใครโดนแบนถึงวันไหน
เบื้องหลังแยกเป็นสองโลก — ส่วนที่อยู่บน Cloudflare ทำงาน 24 ชั่วโมง
กับส่วนที่ต้องอยู่ในบริษัทเพราะฐานข้อมูลเกมเข้าถึงได้เฉพาะในวง VPN
สรุปใน 30 วินาที
CLOUDFLARE
หน้าเว็บและระบบล็อกอิน
ทั้งหมดอยู่บน Cloudflare ไม่ได้อยู่บนเครื่องใคร เปิดใช้ได้ตลอดเวลาจากทุกที่
CLOUDFLARE
ข้อมูลการแบน
เก็บสำเนาไว้บนคลาวด์ อัปเดตจากฐานข้อมูลเกมทุกชั่วโมง เว็บจึงค้นได้แม้เครื่องในบริษัทปิดอยู่
เครื่องในบริษัท
MAC address
ไม่เคยถูกเก็บบนคลาวด์เลย ถามสดจากในบริษัททุกครั้งที่ต้องแสดง
ภาพรวมทั้งระบบ
เส้นทึบคือทางที่ต้องทำงานเสมอ เส้นประคือทางที่ขาดได้ — ถ้าขาด เว็บยังใช้ได้ แค่ไม่มีข้อมูล MAC
ข้อมูลการแบนถูก “ก๊อปล่วงหน้า” ขึ้นคลาวด์ทุกชั่วโมง เว็บจึงตอบได้เองโดยไม่ต้องเรียกกลับมาที่บริษัท
ส่วน MAC address เป็นทางเดียวที่ยังต้องวิ่งกลับเข้ามา — และเป็นทางที่ออกแบบให้ขาดได้
แต่ละส่วนอยู่ที่ไหน
| ส่วนประกอบ |
อยู่ที่ไหน |
ทำหน้าที่อะไร |
หน้าเว็บ หน้าค้นหา + หน้าล็อกอิน |
CLOUDFLARE |
ไฟล์หน้าเว็บเก็บและส่งจากศูนย์ข้อมูล Cloudflare ที่ใกล้ผู้ใช้ที่สุด ไม่ได้อยู่บนเครื่องใครในบริษัท |
ระบบหลังบ้าน Worker |
CLOUDFLARE |
ตรวจล็อกอิน ค้นข้อมูลจาก D1 และเป็นตัวกลางไปขอ MAC — ไม่มีเซิร์ฟเวอร์ให้ดูแล ไม่ต้องอัปเดตเครื่อง |
ฐานข้อมูลของเว็บ D1 |
CLOUDFLARE |
สำเนาข้อมูลการแบน (ราว 20,000 บัญชี · 12,000 ตัวละคร) พร้อมรายชื่อผู้ใช้เว็บ |
ตัวอัปเดตข้อมูล ตั้งเวลาทุกชั่วโมง |
เครื่องในบริษัท |
อ่านฐานข้อมูลเกมแล้วส่งเฉพาะรายการที่เปลี่ยนขึ้นคลาวด์ ทุกชั่วโมงนาทีที่ 45 |
ตัวส่ง MAC เปิดค้างไว้ |
เครื่องในบริษัท |
ตอบเฉพาะคำถามว่า “บัญชีนี้ใช้ MAC อะไร และ MAC นั้นถูกบล็อกไหม” |
ฐานข้อมูลเกม ต้นฉบับจริง |
ในวง VPN |
แหล่งข้อมูลจริง เว็บนี้เข้าถึงแบบอ่านอย่างเดียว แก้ไขอะไรไม่ได้เลย |
ตอน CS กดค้นหา 1 ครั้ง เกิดอะไรขึ้น
- เบราว์เซอร์ส่งคำค้นไปที่ Worker บน Cloudflare พร้อมคุกกี้ยืนยันตัวตน
- Worker ตรวจว่าล็อกอินอยู่จริง ถ้าไม่ใช่จะเด้งไปหน้าล็อกอินทันที
- ค้นใน D1 โดยลอง “ขึ้นต้นด้วยคำนี้” ก่อน ถ้าไม่เจอจึงค่อยค้นแบบ “มีคำนี้อยู่ข้างใน”
- ส่งผลกลับไปแสดงเป็นตาราง พร้อมบอกเวลาที่ข้อมูลอัปเดตล่าสุด
- จากนั้นหน้าเว็บค่อยขอ MAC แยกอีกรอบหนึ่ง — ตารางจึงขึ้นให้อ่านได้ก่อนโดยไม่ต้องรอ
- ถ้าเครื่องในบริษัทเปิดอยู่ MAC จะโผล่มาเติมในตาราง ถ้าไม่เปิดจะขึ้นว่า “ไม่พร้อมใช้งาน” ภายในไม่กี่วินาที
ข้อมูลอัปเดตขึ้นคลาวด์อย่างไร
หัวใจคือส่งเฉพาะส่วนที่เปลี่ยน ไม่ได้ยกข้อมูลทั้งก้อนขึ้นใหม่ทุกรอบ
- ทุกชั่วโมงนาทีที่ 45 ตัวอัปเดตอ่านสถานะแบนทั้งหมดจากฐานข้อมูลเกม (ใช้เวลาราว 1 วินาที)
- เทียบกับรอบก่อนหน้าว่ามีอะไรต่างไปบ้าง — ใครโดนแบนใหม่ ใครถูกปลด ใครสมัครบัญชีใหม่
- ส่งขึ้นคลาวด์เฉพาะรายการที่ต่าง แล้วบันทึกเวลาอัปเดตล่าสุดไว้ให้เว็บแสดง
- ถ้าฐานข้อมูลตอบมาผิดปกติ ระบบจะหยุดเองและไม่แตะข้อมูลบนคลาวด์ กันข้อมูลหายโดยไม่ตั้งใจ
| รอบการทำงาน | ปริมาณข้อมูลที่ส่ง | เวลาที่ใช้ |
| ครั้งแรก (ยกทั้งก้อน) | 32,744 รายการ | 11.7 วินาที |
| รอบปกติที่ไม่มีอะไรเปลี่ยน | 0 รายการ | 1.4 วินาที |
| รอบที่มีคนโดนแบนเพิ่ม | ไม่กี่รายการ | ราว 2 วินาที |
ในเกมมีการแบนใหม่เฉลี่ยวันละราว 17 รายการ ปริมาณที่ส่งจริงต่อวันจึงน้อยมาก
— คิดเป็นไม่ถึง 1% ของโควตาฟรีที่ใช้ได้ต่อวัน
ทำไม MAC address ถึงแยกออกมา
เป็นการตัดสินใจเรื่องความปลอดภัย ไม่ใช่ข้อจำกัดทางเทคนิค — MAC address บอกได้ว่าเป็นเครื่องไหน
จึงเลือกไม่ให้ออกไปเก็บนอกบริษัท ข้อมูลชุดที่ขึ้นคลาวด์มีแค่ไอดี ชื่อตัวละคร และช่วงเวลาแบนเท่านั้น
- เว็บถาม MAC กลับมาที่เครื่องในบริษัทเป็นรายครั้ง แล้วแสดงผลทิ้งไป ไม่ได้บันทึกไว้บนคลาวด์
- ช่องทางนี้ต้องแนบรหัสลับที่ถูกต้องเท่านั้น คำขอที่ไม่มีรหัสจะถูกปฏิเสธทันที
- ถ้าเครื่องปิดหรือ VPN หลุด ระบบรอแค่ไม่กี่วินาทีแล้วแสดงว่า “ไม่พร้อมใช้งาน” — ไม่ทำให้หน้าเว็บค้าง
ถ้าอะไรดับ จะเกิดอะไรขึ้น
ตารางนี้ใช้ตอบคำถามได้เกือบทุกข้อเวลามีคนถามว่า “แล้วถ้า…”
| สถานการณ์ | ค้นหาข้อมูลแบน | คอลัมน์ MAC | ข้อมูลอัปเดตต่อไหม |
| ทุกอย่างปกติ |
ใช้ได้ | ใช้ได้ | อัปเดตทุกชั่วโมง |
| ปิดคอมในบริษัท |
ใช้ได้ | ไม่พร้อมใช้งาน | หยุดจนกว่าจะเปิดเครื่อง |
| VPN หลุด แต่เครื่องเปิดอยู่ |
ใช้ได้ | ไม่พร้อมใช้งาน | ข้ามรอบนั้น แล้วลองใหม่ชั่วโมงถัดไป |
| เน็ตบริษัทล่ม |
ใช้ได้ | ไม่พร้อมใช้งาน | หยุดชั่วคราว |
| ฐานข้อมูลเกมปิดปรับปรุง |
ใช้ได้ (ข้อมูลเดิม) | ไม่พร้อมใช้งาน | หยุดชั่วคราว |
จุดสำคัญคือไม่มีสถานการณ์ไหนที่ทำให้ CS ค้นหาไม่ได้เลย อย่างแย่ที่สุดคือข้อมูลเก่าลงเรื่อย ๆ
ซึ่งเว็บจะบอกไว้ชัดที่ด้านบนว่าอัปเดตล่าสุดเมื่อไหร่
ความปลอดภัย
- เข้าได้เฉพาะคนที่มีบัญชี — ยังไม่ล็อกอินจะไม่เห็นข้อมูลใด ๆ แม้แต่หน้าค้นหา
- ไม่ได้เก็บรหัสผ่านจริง เก็บเฉพาะค่าที่แปลงแล้วซึ่งย้อนกลับไม่ได้ ต่อให้ข้อมูลรั่วก็อ่านรหัสไม่ออก
- กันเดารหัสอัตโนมัติ — กรอกผิดถี่เกินไปจะถูกกันไว้ชั่วคราวตั้งแต่ก่อนถึงตัวเว็บ
- แก้ไขข้อมูลเกมไม่ได้ — บัญชีที่ใช้ต่อฐานข้อมูลมีสิทธิ์อ่านอย่างเดียว และโค้ดทั้งระบบไม่มีคำสั่งเขียนเลย
- เพิ่ม/ถอนผู้ใช้ได้ทันที ไม่ต้องรีสตาร์ตอะไร และคนที่ถูกถอนจะหมดสิทธิ์ภายในไม่เกิน 8 ชั่วโมง
- ไม่มีช่องทางเข้าเครื่องในบริษัทเพิ่ม — ตัวอัปเดตเป็นฝ่ายส่งข้อมูลออกไปเอง ไม่ได้เปิดพอร์ตรอรับ
ค่าใช้จ่าย
ค่าบริการ
0 บาท / เดือน
อยู่ในโควตาฟรีทั้งหมด ทั้งตัวเว็บ ฐานข้อมูล และช่องทางเชื่อมกลับเข้าบริษัท
ปริมาณการใช้
ต่ำกว่า 1% ของโควตา
ทีม CS ค้นหาวันละหลักร้อยครั้ง ขณะที่โควตาฟรีรองรับได้วันละ 100,000 ครั้ง
เครื่องในบริษัท
ใช้ทรัพยากรน้อยมาก
ทำงานจริงแค่ไม่กี่วินาทีต่อชั่วโมง ที่เหลือแทบไม่กินกำลังเครื่องเลย