ระงับ/คืนสัญญาณเน็ตลูกค้าค้างจ่าย แบบอัตโนมัติ

·

งานที่กิน "กระแสเงินสด" ของ ISP มากที่สุดคือ ลูกค้าค้างจ่ายแต่ยังใช้เน็ตอยู่ เพราะลืมตัด หรือไม่มีเวลาตามทีละราย บทความนี้จะทำให้วงจร "ครบกำหนด→ตัด / จ่ายแล้ว→คืน" ทำงานเองโดยไม่ต้องนั่งเฝ้า ทั้งแบบใช้ RADIUS (แนะนำ) และแบบไม่มี RADIUS สำหรับ ISP เล็ก

เหมาะกับ: คนที่มี PPPoE Server แล้ว และอยากเลิกตัด-ต่อเน็ตด้วยมือ • ต่อยอดได้ดีถ้าทำ RADIUS ไว้แล้ว

ตัดขาด vs "หน้าแจ้งเตือน" — เลือกแบบไหน

มี 2 แนวคิดในการระงับ:

  • ตัดขาด (disconnect) — เตะออกจากเน็ตเลย ลูกค้าใช้ไม่ได้ทันที ง่ายสุด แต่ลูกค้า "งง ว่าเน็ตเสียหรือค้างจ่าย" → โทรถล่ม support
  • Walled garden (แนะนำ) — ลูกค้ายังต่อเน็ตได้ แต่ทุกเว็บถูกพาไป หน้าแจ้งเตือน "กรุณาชำระเงิน" และเปิดทางเฉพาะช่องจ่ายเงิน (LINE/พร้อมเพย์) → ลูกค้าเข้าใจ + จ่ายได้เลย ลด support ได้เยอะ

บทนี้เน้น walled garden เพราะได้ทั้งการระงับและบอกเหตุผลในตัว

⚠️ เว็บสมัยนี้เป็น HTTPS ส่วนใหญ่ จะ redirect แบบโปร่งใสไม่ได้ (ขึ้น cert error) — เทคนิคที่ได้ผลคือ บล็อกทั้งหมด ยกเว้น walled garden แล้วแจ้งลูกค้าผ่าน LINE/SMS ควบคู่ ส่วน redirect HTTP ใช้เป็นตัวเสริม

วิธีที่ 1 — ใช้ RADIUS ขับ (แนะนำ, ต่อจากบท RADIUS)

ถ้าทำ RADIUS ไว้แล้ว การระงับจะกลายเป็นแค่ "เปลี่ยนสถานะในบิลลิ่ง" ที่เหลือ Mikrotik จัดการเอง

1) เตรียม firewall ฝั่ง Mikrotik (ทำครั้งเดียว)

เปิดทางเฉพาะ walled garden (เซิร์ฟเวอร์จ่ายเงิน/พอร์ทัล/LINE) แล้ว drop ที่เหลือสำหรับคนที่อยู่ใน address-list overdue:

# รายชื่อปลายทางที่ "ค้างจ่ายก็ยังเข้าได้" (พอร์ทัลจ่ายเงิน, ธนาคาร/พร้อมเพย์, LINE)
/ip firewall address-list
add list=walled-garden address=203.0.113.10   comment="payment portal"
add list=walled-garden address=125.0.0.0/8     comment="LINE (ตัวอย่าง)"

# ลูกค้าค้างจ่าย: ดึง HTTP ไปหน้าแจ้งเตือน + บล็อกที่เหลือ
/ip firewall nat
add chain=dstnat protocol=tcp dst-port=80 src-address-list=overdue \
    dst-address-list=!walled-garden action=dst-nat to-addresses=203.0.113.10 to-ports=80
/ip firewall filter
add chain=forward src-address-list=overdue dst-address-list=!walled-garden action=drop

2) ให้ RADIUS ใส่ลูกค้าค้างจ่ายเข้า address-list

บน RADIUS ส่ง attribute นี้กลับมาเฉพาะลูกค้าที่สถานะ "ค้างจ่าย":

Mikrotik-Address-List = "overdue"

ผลคือพอลูกค้าค้างจ่าย dial เข้ามา IP จะถูกหย่อนเข้า list overdue อัตโนมัติ → เจอ firewall ข้อ 1 ทันที โดยไม่ต้องไปแตะ Mikrotik

3) ตัดทันทีไม่ต้องรอ reconnect — CoA/Disconnect

ถ้าลูกค้าออนไลน์อยู่แล้วเพิ่งครบกำหนด ใช้ CoA/Disconnect (พอร์ต 3799 ที่เปิดไว้ในบท RADIUS) สั่งให้ apply เดี๋ยวนั้น:

echo "User-Name=cust001" | radclient -x 10.0.0.1:3799 disconnect THAIISP_SECRET

พอ reconnect รอบใหม่ ก็จะได้สถานะ overdue แทน — และพอ จ่ายเงิน บิลลิ่งเปลี่ยนสถานะกลับ ส่ง CoA อีกที ลูกค้าก็คืนความเร็วปกติเอง วงจรครบโดยไม่ต้องมีคนกด

วิธีที่ 2 — ไม่มี RADIUS (ISP เล็ก, ใช้ scheduler)

ยังไม่ได้ทำ RADIUS ก็ทำกึ่งอัตโนมัติด้วย address-list + scheduler ได้ แนวคิดคือผูก "วันครบกำหนด" กับสคริปต์ที่ย้ายลูกค้าเข้า-ออก list overdue

# ตัวอย่าง: ตั้งระงับลูกค้า cust001 เวลาเที่ยงคืนวันที่ครบกำหนด
/system scheduler
add name=suspend-cust001 start-date=2026-07-01 start-time=00:00:00 interval=0 \
    on-event="/ip firewall address-list add list=overdue address=10.10.0.25 comment=cust001"
  • ใช้ firewall ชุดเดียวกับวิธีที่ 1 (address-list overdue)
  • พอลูกค้าจ่าย → ลบออกจาก list: /ip firewall address-list remove [find comment=cust001]
  • ข้อจำกัด: ต้องผูก IP/สคริปต์รายคนเอง พอเกินหลักสิบจะเริ่มไม่ไหว → ถึงจุดนั้นค่อยขยับไป RADIUS/บิลลิ่ง

💡 อีกทางคือใช้ address-list แบบมี timeout (หมดอายุเองตามรอบบิล) แต่จัดการวันจ่ายจริงไม่ยืดหยุ่นเท่าผูกกับบิลลิ่ง

ทำหน้า "กรุณาชำระเงิน" ให้ดูน่าเชื่อถือ

หน้าแจ้งเตือนควรมี: ยอดค้าง • ปุ่มจ่ายผ่าน พร้อมเพย์ QR / LINE • เบอร์ติดต่อ • วันที่จะคืนสัญญาณหลังจ่าย ยิ่งจ่ายง่ายเท่าไร เงินเข้าเร็วเท่านั้น (และลด support)

หน้านี้ควรโฮสต์บนเซิร์ฟเวอร์เดียวกับ walled-garden (ที่เปิดทางไว้) ไม่งั้นลูกค้าค้างจ่ายจะเข้าหน้าจ่ายเงินไม่ได้เอง

แก้ปัญหาที่เจอบ่อย

อาการ สาเหตุ/วิธีแก้
จ่ายเงินแล้ว แต่เน็ตยังไม่คืน บิลลิ่งยังไม่ส่ง CoA / ยังไม่ลบออกจาก list overdue • ลูกค้ายังถือเซสชันเก่า → สั่ง disconnect ให้ reconnect
ลูกค้าค้างจ่ายเข้าหน้าจ่ายเงินไม่ได้ ลืมใส่ IP พอร์ทัล/พร้อมเพย์/LINE ใน walled-garden • DNS ถูกบล็อก → เปิด DNS (53) ให้ list overdue ด้วย
redirect แล้วขึ้น cert error นั่นคือเว็บ HTTPS (ปกติ) — พึ่ง บล็อก + แจ้งผ่าน LINE เป็นหลัก redirect ใช้ได้เฉพาะ HTTP
ลูกค้าปกติโดนระงับด้วย RADIUS ส่ง Mikrotik-Address-List=overdue ผิดเงื่อนไข • scheduler ใส่ IP ผิดคน
ตัดแล้วแต่ลูกค้ายังเล่นได้ ลูกค้ายังถือเซสชัน/IP เดิม — ต้อง disconnect ให้หลุดก่อน address-list ถึงมีผลกับ IP ใหม่

สรุป

การระงับ-คืนสัญญาณอัตโนมัติคือสิ่งที่เปลี่ยน "การทวงหนี้" ให้กลายเป็นระบบ: ครบกำหนดก็เข้าหน้าแจ้งเตือนเอง จ่ายแล้วคืนเอง คุณแทบไม่ต้องแตะ — หัวใจคือผูก สถานะการจ่ายเงิน เข้ากับ address-list/RADIUS บน Mikrotik นี่คือชิ้นส่วนสำคัญของ "เน็ตหมู่บ้านที่เก็บเงินเองได้"

แต่การประกอบเองทั้ง firewall + RADIUS + หน้าจ่ายเงิน + จับคู่สลิปกับรอบบิล ก็เป็นงานที่พลาดนิดเดียวลูกค้าด่าได้ —

💡 อยากให้ตัด-คืนสัญญาณทำงานเองตามการจ่ายเงิน? thaiISP ผูกบิลลิ่งกับ Mikrotik/RADIUS ให้อัตโนมัติ — ลูกค้าค้างจ่ายเด้งเข้าหน้าแจ้งเตือน จ่ายผ่านไลน์/พร้อมเพย์ + ตรวจสลิปแล้วคืนสัญญาณเองทันที ไม่ต้องนั่งกดเอง — ดูระบบ →

← กลับหน้าคลังความรู้