Allowlist
The allowlist creates exceptions to blocking, allowing specific domains to remain accessible.
Basic Entry
Section titled “Basic Entry”{ "allowlist": [ { "domain": "aws.amazon.com", "description": "Work resource - always accessible" } ]}Entry Fields
Section titled “Entry Fields”domain (required)
Section titled “domain (required)”The domain to allow.
{"domain": "aws.amazon.com"}description (optional)
Section titled “description (optional)”Human-readable note.
{ "domain": "aws.amazon.com", "description": "AWS Console for work"}schedule (optional)
Section titled “schedule (optional)”When the allowlist entry is active. Default is null (always allowed).
{ "domain": "youtube.com", "description": "Entertainment - evenings only", "schedule": { "available_hours": [ { "days": ["monday", "tuesday", "wednesday", "thursday", "friday"], "time_ranges": [{"start": "20:00", "end": "22:00"}] } ] }}Allowlist Behavior
Section titled “Allowlist Behavior”Without Schedule (null)
Section titled “Without Schedule (null)”Always in NextDNS allowlist:
| State | Always |
|---|---|
| NextDNS | In allowlist 24/7 |
| Access | Always allowed |
With Schedule
Section titled “With Schedule”Time-based allowlist membership:
| Time | Within Schedule | Outside Schedule |
|---|---|---|
| NextDNS | In allowlist | Not in allowlist |
| Access | Allowed | Subject to other blocks |
Note: This is the inverse of blocklist behavior.
Use Cases
Section titled “Use Cases”Subdomain Exceptions
Section titled “Subdomain Exceptions”Block parent domain, allow specific subdomain:
{ "blocklist": [ {"domain": "amazon.com", "schedule": null} ], "allowlist": [ {"domain": "aws.amazon.com", "description": "Work resource"} ]}Result:
amazon.com→ Blockedwww.amazon.com→ Blocked (inherits from parent)aws.amazon.com→ Allowedconsole.aws.amazon.com→ Allowed (inherits from allowlist)
Override Category Blocks
Section titled “Override Category Blocks”When NextDNS blocks a domain via category (e.g., “Streaming”):
{ "allowlist": [ { "domain": "youtube.com", "description": "Allow during evenings despite streaming category", "schedule": { "available_hours": [ { "days": ["monday", "tuesday", "wednesday", "thursday", "friday"], "time_ranges": [{"start": "19:00", "end": "22:00"}] } ] } } ]}Work Resources
Section titled “Work Resources”Always-accessible work domains:
{ "allowlist": [ {"domain": "github.com", "description": "Code hosting"}, {"domain": "stackoverflow.com", "description": "Development help"}, {"domain": "docs.google.com", "description": "Documentation"} ]}Educational Resources
Section titled “Educational Resources”{ "allowlist": [ {"domain": "wikipedia.org", "description": "Reference"}, {"domain": "khanacademy.org", "description": "Learning"}, {"domain": "coursera.org", "description": "Courses"} ]}Priority Rules
Section titled “Priority Rules”NextDNS processes lists with these priorities:
| Priority | Source | Result |
|---|---|---|
| 1 (Highest) | Allowlist | ALLOWED |
| 2 | Blocklist/Denylist | BLOCKED |
| 3 | Category/Service blocks | BLOCKED |
| 4 | Default | ALLOWED |
Key point: Allowlist always wins.
Managing Allowlist
Section titled “Managing Allowlist”Add via CLI
Section titled “Add via CLI”nextdns-blocker allow aws.amazon.comCreates a permanent (no schedule) entry.
Remove via CLI
Section titled “Remove via CLI”nextdns-blocker disallow aws.amazon.comAdd with Schedule
Section titled “Add with Schedule”Edit configuration directly:
nextdns-blocker config editView Allowlist
Section titled “View Allowlist”nextdns-blocker statusOr:
nextdns-blocker config showScheduled Allowlist Examples
Section titled “Scheduled Allowlist Examples”Streaming - Evenings
Section titled “Streaming - Evenings”{ "domain": "netflix.com", "description": "Streaming - blocked by category, allow evenings", "schedule": { "available_hours": [ { "days": ["monday", "tuesday", "wednesday", "thursday", "friday"], "time_ranges": [{"start": "20:00", "end": "22:30"}] }, { "days": ["saturday", "sunday"], "time_ranges": [{"start": "14:00", "end": "23:00"}] } ] }}Social Learning - Weekdays
Section titled “Social Learning - Weekdays”{ "domain": "youtube.com", "description": "Educational content during study hours", "schedule": { "available_hours": [ { "days": ["monday", "tuesday", "wednesday", "thursday", "friday"], "time_ranges": [{"start": "09:00", "end": "15:00"}] } ] }}Late Night - Weekends
Section titled “Late Night - Weekends”{ "domain": "twitch.tv", "description": "Gaming streams on weekend nights", "schedule": { "available_hours": [ { "days": ["friday", "saturday"], "time_ranges": [{"start": "22:00", "end": "02:00"}] } ] }}Allowlist During Panic Mode
Section titled “Allowlist During Panic Mode”When panic mode is active:
allowcommand is hiddendisallowcommand is hidden- Scheduled allowlist sync is completely skipped
- Existing allowlist entries remain but aren’t updated
This prevents bypassing emergency lockdown via allowlist.
Validation Rules
Section titled “Validation Rules”No Duplicate Exact Domains
Section titled “No Duplicate Exact Domains”A domain cannot be in both lists:
// ❌ Invalid{ "blocklist": [{"domain": "reddit.com"}], "allowlist": [{"domain": "reddit.com"}]}Subdomain Relationships Allowed
Section titled “Subdomain Relationships Allowed”This is valid (with a warning):
{ "blocklist": [{"domain": "amazon.com"}], "allowlist": [{"domain": "aws.amazon.com"}]}Troubleshooting
Section titled “Troubleshooting”Domain still blocked after allow
Section titled “Domain still blocked after allow”-
Force sync:
Terminal window nextdns-blocker config push -
Clear DNS cache:
Terminal window # macOSsudo dscacheutil -flushcache# Linuxsudo systemctl restart systemd-resolved# Windowsipconfig /flushdns -
Check for category blocks in NextDNS dashboard
Scheduled allowlist not working
Section titled “Scheduled allowlist not working”-
Check timezone:
Terminal window nextdns-blocker config show | grep timezone -
Verify current time is within schedule
-
Check for panic mode:
Terminal window nextdns-blocker panic status
allow command hidden
Section titled “allow command hidden”Panic mode is active:
nextdns-blocker panic statusWait for expiration or don’t try to bypass emergency protection.