Skip to content

Troubleshooting

Witawat edited this page Aug 30, 2026 · 1 revision

การแก้ปัญหา (Troubleshooting)

รวบรวมปัญหาที่พบบ่อย + วิธีแก้ — ถ้าหาไม่เจอ ให้ดู log ที่ rdpguard.log (ตำแหน่งตามโหมด: ข้าง exe หรือ %ProgramData%\RDPGuard\) และพาเนล สถานะระบบ ใน Web UI ซึ่งบอกได้ว่าส่วนประกอบไหนทำงานไม่ได้

service ติดตั้งแล้วแต่ไม่ทำงาน (status ไม่ใช่ running)

  1. เปิด services.msc → หา RDPGuard Service → อ่านข้อความ error
  2. ดู log: ตรวจตำแหน่งจาก Web UI พาเนล Log การทำงาน หรือ %ProgramData%\RDPGuard\rdpguard.log ในโหมด source
  3. สาเหตุพบบ่อย: ติดตั้ง Python แบบ "just for me" (service มองไม่เห็น user profile) → ติดตั้ง Python แบบ All Users ใหม่ หรือใช้ exe build แทน

ตรวจอะไรก่อน ถ้าระบบไม่บล็อก IP

เปิด Web UI → พาเนล สถานะระบบ แล้วดู:

อาการ สาเหตุที่เป็นไปได้ วิธีแก้
Security event log ✘ อ่านไม่ได้ รันแบบ user ธรรมดา ไม่ใช่ admin รันด้วย admin หรือติดตั้งเป็น service (รันเป็น LocalSystem)
Firewall ✘ เข้า COM ไม่ได้ / ○ ไม่มีสิทธิ์ สิทธิ์ไม่พอ รันด้วย admin / service
สิทธิ์โปรแกรม ✘ รันแบบ user ธรรมดา ใช้ service หรือ python run.py run ใน admin terminal
header ขึ้น "เฝ้าระวังปิดอยู่" สวิตช์เฝ้าระวังถูกปิด กดสวิตช์ "การตรวจจับ" ให้เปิด
engine เป็น ⊘ (ปิด) chip engine ถูกปิด กด chip ให้เปิด
engine เป็น ✘ / ○ แหล่งข้อมูลยังไม่พร้อม ดูว่าบริการ/ไฟล์ log ของโปรโตคอลนั้นมีจริงไหม (เช่น IIS ยังไม่ได้ติดตั้ง)

ปุ่ม "ทดสอบบล็อกจริง (firewall)" และ "ทดสอบระบบทั้งหมด (self-test)" ช่วยพิสูจน์ได้ทันทีว่าระบบบล็อกได้จริงทั้งสาย (ต้อง admin/service)

ถูกล็อกตัวเอง (IP ผู้ดูแลโดนบล็อกโดยไม่ตั้งใจ) ทำไง?

RDPGuard มีกัน 3 ชั้นอัตโนมัติ: ไม่บล็อก IP ที่มี session ล็อกอินสำเร็จล่าสุด (active_session_grace_minutes), ปลดบล็อกอัตโนมัติเมื่อ IP นั้นล็อกอินสำเร็จ, และปลดบล็อก IP ที่อยู่ใน whitelist/never_block_ips ทุก 60 วินาที

ถ้ายังโดนล็อกจริง ให้ใช้วิธีนี้ (เรียงตามความสะดวก):

วิธี ขั้นตอน
Web UI เข้า http://127.0.0.1:8123 (ถ้าเข้าได้) → หน้า "IP ที่ถูกบล็อก" → ปลดบล็อกทั้งหมด (ฉุกเฉิน) หรือปลดเฉพาะ IP
CLI จาก console จริง ไปที่เครื่อง (จอ/คีย์บอร์ดจริง, iDRAC, VM console — ไม่ต้องพึ่ง RDP) → รัน rdpguard.exe unblock-all หรือ rdpguard.exe unblock <IP> หรือ rdpguard.exe allow <IP> (เพิ่ม whitelist + ปลดบล็อก)
แก้ config แก้ config.ini เพิ่ม IP ตัวเองใน never_block_ips = 1.2.3.4 → รอ ≤60 วิ ระบบปลดให้เอง (service รีโหลด config อัตโนมัติ)

แนะนำ: เตรียม allow ไว้ล่วงหน้า — จด IP ที่ใช้เข้าประจำไว้ใน never_block_ips หรือ whitelist ตั้งแต่แรก

มี IP โดนบล็อกเยอะมาก (>50) ทำอย่างไร?

RDPGuard บล็อกได้ไม่จำกัด (1 rule ต่อ IP — Windows Firewall รองรับเป็นร้อยได้สบาย) แต่เมื่อจำนวนเยอะ หน้าจอ/rules จะรก ถ้าเกินหลักพันอาจเริ่มหน่วง แนวทางจัดการ:

วิธี ทำยังไง
บล็อกแบบ CIDR ถ้า IP โจมตีมาจาก subnet เดียวกัน (เช่น 203.0.113.5, 203.0.113.9) → บล็อก 203.0.113.0/24 rule เดียวครอบหมด (ช่อง "บล็อกด้วยมือ" รับ CIDR ได้)
Blacklist ด้วย CIDR ใส่ subnet ที่โจมตีประจำใน blacklist → บล็อกทันทีทั้งวง
ลด block_hours ตั้ง block_hours = 6 (หน้า ตั้งค่า) — IP หมดอายุเร็ว ไม่สะสมเยอะ (IP ขาประจำยังถูก escalation ขยายให้)
ปลดล้าง ปลดรายตัวในตาราง / "ปลดบล็อกทั้งหมด (ฉุกเฉิน)" / CLI rdpguard.exe unblock-all

Web UI จะแสดงคำเตือนอัตโนมัติเมื่อมี IP ถูกบล็อกเกิน 50 (และเตือนแรงขึ้นเมื่อเกิน 200) พร้อมคำแนะนำข้างต้น

Telegram ขึ้น CERTIFICATE_VERIFY_FAILED

เกิดจาก proxy/โปรแกรมกันไวรัสที่ intercept HTTPS (เช่น self-signed certificate):

  1. เปิด Web UI → หน้า ตั้งค่า → แจ้งเตือน
  2. ปิด "ตรวจสอบ SSL ของ Telegram" (telegram_verify_ssl = false)
  3. กดบันทึก

ควรใช้เฉพาะบนเครือข่ายที่เชื่อถือได้ — การปิดตรวจสอบ SSL = ไม่ตรวจใบรับรอง

IP หายจาก firewall ทั้งที่ DB ยังบอก blocked

ระบบมี firewall reconcile (self-heal) อยู่แล้ว — cleanup ตรวจทุก 60 วิ ถ้า DB บอก blocked แต่ rule ใน firewall หาย (ถูกลบ/รีเซ็ตจากภายนอก) จะสร้าง rule กลับให้อัตโนมัติ รอ ≤60 วิ แล้วตรวจใหม่

ถ้าไม่หายจริง ให้ดูใน Web UI ว่า rule ถูกสร้างใน wf.msc (ชื่อ RDPGuard Block หรือ RDPGuard Block <IP> ตามโหมด) หรือไม่ และสถานะระบบ Firewall เป็นอย่างไร

โปรแกรมกันไวรัสฟลาก exe (Packed executable)

exe ที่ build ด้วย PyInstaller + UPX อาจถูก AV ฟลาก:

  1. ตรวจสอบว่าไฟล์มาจากแหล่งที่เชื่อถือได้ (เทียบ SHA256 กับ release บน GitHub)
  2. เพิ่มโฟลเดอร์ที่เก็บ exe ใน exclusion ของโปรแกรมกันไวรัส
  3. ถ้าต้องการเลี่ยง UPX: แก้ rdpguard.spec ตั้ง upx=False แล้ว build ใหม่

เปิด Web UI ไม่ได้ / จำ IP อื่นเข้าถึงไม่ได้

  • ค่าเริ่มต้นผูก 127.0.0.1 — เข้าได้เฉพาะเครื่องนั้น (ปลอดภัยสุด)
  • ถ้าต้องการเข้าจากเครื่องอื่น: ตั้ง webui.host = 0.0.0.0 + ตั้งรหัสผ่านที่แข็งแรง + เปิดพอร์ต firewall เอง: netsh advfirewall firewall add rule name="RDPGuard WebUI" dir=in action=allow protocol=TCP localport=8123
  • เปลี่ยน host/พอร์ตแล้วต้อง restart โปรแกรม/service จึงจะมีผล

เปลี่ยนพอร์ต / ค่าใน [general] แล้วไม่เห็นผล

  • ค่า [general] (log_level, log_max_mb, log_backups) และ retention ต้อง restart โปรแกรม/service
  • webui.host / webui.port ต้อง restart เช่นกัน

เจอไฟล์ .db-wal / .db-shm ค้างอยู่ข้าง rdpguard.db

เป็นไฟล์ชั่วคราวของ SQLite (WAL mode) — ถ้าโปรแกรมถูกปิดแบบกระทันหัน (เช่น kill ตรง ๆ) ไฟล์อาจยังค้างอยู่ ลบได้ ไม่กระทบข้อมูล — ระบบทำ checkpoint ให้เองตอนปิดปกติ และเวอร์ชันใหม่จับ Ctrl+Close handler เพื่อทำความสะอาดให้แล้ว

เหตุการณ์ "หาย" จากตาราง

UI แสดงแค่ 80 รายการล่าสุด (ข้อมูลไม่ถูกลบ) — ใช้ตัวกรอง/CSV export เพื่อดูข้อมูลย้อนหลัง; ข้อมูลเก่าอาจถูกลบตาม retention (event_retention_days ค่าเริ่มต้น 90 วัน)

ต้องการรู้ว่า Web UI / API ใช้ยังไงสำหรับนักพัฒนา

ดู API.md และ DESIGN.md ใน repo — วิธีทดสอบ API: login ผ่าน http://127.0.0.1:8123 (ได้ cookie rdpguard_session) แล้วเรียก /api/*

คำแนะนำค่าตามสถานการณ์

สถานการณ์ คำแนะนำ
Server ถูกโจมตีหนักมาก (log เต็ม 4625) max_attempts = 3, window_minutes = 5 (บล็อกไว แต่เสี่ยง false positive)
RDP มีคนใช้จริงหลายคน max_attempts = 8–10, window_minutes = 15 (ลดการบล็อกผู้ใช้ที่พิมพ์รหัสผิดเป็นครั้งคราว)
ต้องการกันระยะยาว block_hours = 72 หรือ 0 (ถาวร) + auto_extend = true
Office ใช้ IP ปลายทางคงที่ เพิ่ม IP นั้นใน Whitelist ผ่าน Web UI
เจอ "ยิงสั้น ๆ แล้วหนี" (IP แทบไม่ซ้ำ ทีละ 1-2 ครั้ง) accumulate_threshold = 5, accumulate_window_hours = 24 — ถ้า network มี NAT/ISP shared เยอะ เก็บค่าเริ่มต้นไว้

ยังแก้ไม่ได้?

  1. เปิด Web UI → พาเนล Log การทำงาน (หรือ rdpguard.log) แล้วอ่านข้อความ error ล่าสุด
  2. ลองกด "ทดสอบระบบทั้งหมด (self-test)" เพื่อดูว่าขั้นไหนพัง
  3. เปิด issue ที่ https://github.com/Witawat/rdpGuard/issues พร้อมแนบ log (ลบข้อมูลอ่อนไหวออก) และเวอร์ชัน RDPGuard/Windows

Clone this wiki locally