Skip to content
MikroTik RouterOS Docs

Kid Control (Parental Controls)

For the impatient: create a profile and assign a device.

# Create a kid profile with weekday evening access
/ip/kid-control/add name=homework mon=16:00-21:00 tue=16:00-21:00 wed=16:00-21:00 thu=16:00-21:00 fri=16:00-22:00
# Add a device by MAC address
/ip/kid-control/device/add name=kids-tablet mac-address=AA:BB:CC:DD:EE:FF user=homework

Verify with:

/ip/kid-control/device/print

What this does: Kid Control is a parental control feature that restricts internet access for specific devices based on time schedules and bandwidth limits. It works by creating dynamic firewall rules to block access and simple queues to limit bandwidth.

When to use this:

  • Limiting children’s internet access to specific hours
  • Restricting bandwidth for certain devices
  • Temporarily pausing internet for a device
  • Managing screen time on tablets, phones, and gaming consoles

Prerequisites:

  • Router must be the default gateway for controlled devices
  • System clock must be accurate (NTP configured)
  • Devices identified by MAC address

Important Requirement

Kid Control only works when the MikroTik router is the default gateway for the devices you want to control. If devices use a different gateway, the restrictions won’t apply.

Kid Control relies on accurate time. Ensure NTP is configured:

/system/ntp/client/set enabled=yes
/system/ntp/client/servers/add address=pool.ntp.org
/system/clock/set time-zone-name=America/New_York

Verify time is correct:

/system/clock/print

Create a profile defining when internet access is allowed:

/ip/kid-control/add name=afterschool \
mon=16:00-21:00 \
tue=16:00-21:00 \
wed=16:00-21:00 \
thu=16:00-21:00 \
fri=16:00-22:00 \
sat=09:00-22:00 \
sun=09:00-21:00

Time format: HH:MM-HH:MM (24-hour format)

Tip: Leave a day empty to block access completely for that day.

View connected devices:

/ip/kid-control/device/print

Or check the ARP table:

/ip/arp/print

Add the device with its MAC address:

/ip/kid-control/device/add name=kids-tablet mac-address=AA:BB:CC:DD:EE:FF user=afterschool

Check device status:

/ip/kid-control/device/print

Flags indicate status:

  • B = Blocked (outside allowed hours)
  • L = Rate limited
  • P = Paused
  • I = Inactive

Restrict a profile to 5 Mbps during allowed hours:

/ip/kid-control/set afterschool rate-limit=5M

Allow full speed during homework hours, limited speed otherwise:

/ip/kid-control/set afterschool rate-limit=2M \
tur-mon=16:00-18:00 \
tur-tue=16:00-18:00 \
tur-wed=16:00-18:00 \
tur-thu=16:00-18:00

The tur-* (time unlimited rate) settings override the rate-limit during those hours.

Temporarily block a device regardless of schedule:

/ip/kid-control/pause afterschool

Resume normal schedule:

/ip/kid-control/resume afterschool

Create a profile allowing access only on weekends:

/ip/kid-control/add name=weekend-only \
sat=10:00-20:00 \
sun=10:00-18:00

Weekdays (mon-fri) are left empty, blocking access completely.

For access from evening to early morning (e.g., Friday night):

# Friday 18:00 to midnight
/ip/kid-control/set weekend-only fri=18:00-1d00:00:00
# Saturday midnight to 2 AM (add to Saturday)
/ip/kid-control/set weekend-only sat=00:00-02:00,10:00-20:00

Use 1d00:00:00 to represent midnight (end of day).

Add multiple devices to the same profile:

/ip/kid-control/device/add name=tablet mac-address=AA:BB:CC:DD:EE:FF user=afterschool
/ip/kid-control/device/add name=phone mac-address=11:22:33:44:55:66 user=afterschool
/ip/kid-control/device/add name=gaming-console mac-address=77:88:99:AA:BB:CC user=afterschool

Create a script to grant 30 minutes of extra access:

/system/script/add name=bonus-time source={
/ip/kid-control/disable afterschool
:delay 30m
/ip/kid-control/enable afterschool
:log info "Bonus time ended for afterschool"
}

Run it when needed:

/system/script/run bonus-time

Check bandwidth usage per device:

/ip/kid-control/device/print stats

Reset counters:

/ip/kid-control/device/reset-counters [find name=kids-tablet]

Confirm Kid Control is working correctly:

/ip/kid-control/print

Expected: Profiles listed with correct time schedules.

/ip/kid-control/device/print

Expected: Devices listed with user showing assigned profile; flags indicate current status (B/L/P).

/ip/firewall/filter/print where comment~"kid"

Expected: Dynamic rules created by Kid Control for blocking.

/queue/simple/print where comment~"kid"

Expected: Dynamic queues created for rate limiting.

SymptomCauseSolution
Device not blocked at correct timesSystem clock incorrectConfigure NTP; verify time with /system/clock/print
Kid Control not affecting deviceRouter not default gatewayEnsure device uses router as gateway
Settings revert after changingKnown bug in some versionsTry CLI instead of GUI; update RouterOS
Time range errors in GUIMidnight representationUse 1d00:00:00 for midnight; use CLI for complex schedules
Rate limit not workingQueue not createdCheck /queue/simple/print; verify device MAC is correct
Device bypasses controlsRandom MAC enabledDisable “random MAC” on device; consider MAC filtering
”End time must be bigger” errorInvalid time formatUse 24-hour format; split ranges crossing midnight
Controls block all the timeEmpty or invalid time configVerify time values are set for allowed days
/ip/kid-control/device/print detail

Look for flags: B (blocked), L (limited), P (paused), I (inactive).

/ip/firewall/filter/print where dynamic=yes

Kid Control creates reject rules for blocked devices.

/ip/kid-control/device/print stats interval=1

Watch bandwidth usage in real-time.

Common Mistakes

  • Not configuring NTP - Without accurate time, schedules won’t work correctly
  • Router not being the default gateway - Kid Control only works for devices routing through the MikroTik
  • Using GUI for complex time ranges - CLI handles midnight-spanning times better
  • Forgetting random MAC addresses - Modern phones/tablets use random MACs; disable this feature or use static assignments
  • Expecting instant blocks - There may be a short delay before rules take effect

Kid Control creates two types of dynamic rules:

  1. Firewall Filter Rules: Block traffic when outside allowed hours

    • Creates reject rules in /ip/firewall/filter
    • Matches source/destination by IP (resolved from MAC via ARP)
  2. Simple Queue Rules: Limit bandwidth during allowed hours

    • Creates queues in /queue/simple
    • Applies the rate-limit value from the profile

The rules are automatically managed - created when restrictions apply and removed when not needed.

CommandDescription
/ip/kid-control/addCreate a new kid profile
/ip/kid-control/printView all profiles
/ip/kid-control/pauseTemporarily block a profile
/ip/kid-control/resumeResume normal schedule
/ip/kid-control/device/addAdd device by MAC address
/ip/kid-control/device/printView all devices
/ip/kid-control/device/print statsView bandwidth statistics
/ip/kid-control/device/reset-countersReset usage statistics
PropertyTypeDefaultDescription
namestring-Profile identifier (required)
mon - suntime-Daily access windows (HH:MM-HH:MM)
rate-limitstring-Bandwidth limit (e.g., 5M for 5 Mbps)
tur-mon - tur-suntime-Unlimited rate periods (override rate-limit)
disabledyes/nonoDisable the profile
PropertyTypeDefaultDescription
namestring-Device name (required)
mac-addressMAC-Device MAC address (required)
userstring-Associated kid profile
disabledyes/nonoDisable device tracking
FlagMeaning
XDisabled
DDynamic
BBlocked (outside allowed hours)
LRate limited
IInactive (device not seen)
PPaused (manually paused)