Loading...

{{ tabLabels[tab] }}

{{ topbarStatus }}
Active Features
{{ activeFeatureCount }}/{{ features.length }}
Core capabilities
Active Upstreams
{{ config.ECS_INJECTION_ENABLED ? 1 : 0 }}/1
ECS capabilities (Upstreams)
Active Filters
{{ activeFilterCount }}/{{ filters.length }}
Query type filters
Blocklist
{{ fmt(stats.blocklistSize || ((lists.blocklist||[]).length)) }}
Blocked domains (merged)
Allowlist
{{ fmt(stats.allowlistSize || ((lists.allowlist||[]).length)) }}
Allowed domains (merged)
Private TLDs
{{ fmt((stats.privateTldsSize || 0) + ((lists.private_tlds||[]).length)) }}
Internal domains (merged)
Mullvad
{{ fmt((stats.mullvadDomainsSize || 0) + ((lists.mullvad_upstream||[]).length)) }}
Upstream domains (merged)
Redirect Rules
{{ fmt((stats.redirectRulesSize || 0) + ((lists.redirect_rules||[]).length)) }}
CNAME overrides (merged)
Feature Status
All toggleable features and filters at a glance
{{ activeCount }}/{{ totalCount }} active
{{ f.label }}
{{ f.desc }}
{{ config[f.key] ? '● ON' : '○ OFF' }}
DNS Upstreams
Resolver endpoints and timeout settings
{{ config.ECS_INJECTION_ENABLED ? 1 : 0 }}/1 active
Primary {{ config.UPSTREAM_PRIMARY || '—' }}
Fallback {{ config.UPSTREAM_FALLBACK || '—' }}
Geo-Bypass {{ config.UPSTREAM_GEO_BYPASS || '—' }}
Timeout {{ config.UPSTREAM_TIMEOUT }}ms
Refresh Interval {{ Math.round((config.ALL_LISTS_REFRESH_INTERVAL||3600000)/60000) }} min
Core Features
Enable or disable major DNS gateway capabilities
{{ activeFeatureCount }}/{{ features.length }} active
{{ f.label }}
{{ f.desc }}
Blocked Query Types
Block specific DNS record types at the edge before upstream forwarding
{{ activeFilterCount }}/{{ filters.length }} active
{{ f.label }}
{{ f.desc }}
DNS Upstream Servers
{{ config.ECS_INJECTION_ENABLED ? 1 : 0 }}/1 active
Main DNS-over-HTTPS resolver (DoH)
Used when primary times out or fails
Re-resolve without ECS for geo-blocked domains returning loopback
= {{ Math.round((config.ALL_LISTS_REFRESH_INTERVAL||3600000)/60000) }} minutes
ECS (EDNS Client Subnet)
Enable ECS Injection
Inject EDNS Client Subnet for CDN geo-optimization
/{{ config.ECS_PREFIX_V4 || 24 }} mask sent to upstream
/{{ config.ECS_PREFIX_V6 || 48 }} mask sent to upstream
🚫 Blocklist {{ (lists.blocklist||[]).length + (customUrls.blocklist||[]).length }}
✅ Allowlist {{ (lists.allowlist||[]).length + (customUrls.allowlist||[]).length }}
↪ Redirect {{ (lists.redirect_rules||[]).length }}
🔒 Private TLDs {{ (lists.private_tlds||[]).length }}
🌐 Mullvad {{ (lists.mullvad_upstream||[]).length }}
Loading lists...
Custom {{ listTabLabels[listTab] || 'Rules' }}
Matches domains exactly. Comments starting with # or ! are ignored.
Block internal domains or routers (e.g. "local" blocks domain.local). Uses raw text lines, so dots are not strictly required.
Anonymous routing (no ECS) for specific domains (e.g. Github routes better via Mullvad than Google/CF).
Custom DNS redirect/rewrite (CNAME overrides) — helps overcome network blocks by rewriting target domains.
{{ (lists[listTab]||[]).length }} active entries
Static File Source
{{ config.REDIRECT_RULES_URL }} {{ fmt((stats.redirectRulesSize || 0) + ((lists.redirect_rules||[]).length)) }} total (merged)
Static file + custom rules above are merged at runtime.
External {{ listTabLabels[listTab] }} URLs
Subscribe to remote blocklists — AdBlock, hosts file, and plain domain formats are supported. Comments starting with # are ignored.
{{ (customUrls[listTab]||[]).length }} subscriptions
Domains are auto-cleaned (AdBlock/hosts/plain formats). Fetched and merged on next list refresh.
Static File Source
{{ listTab==='blocklist' ? config.BLOCKLIST_URL : listTab==='allowlist' ? config.ALLOWLIST_URL : listTab==='private_tlds' ? config.PRIVATE_TLD_URL : config.MULLVAD_UPSTREAM_URL }} {{ listTab==='blocklist' ? fmt(stats.blocklistSize || ((lists.blocklist||[]).length)) : listTab==='allowlist' ? fmt(stats.allowlistSize || ((lists.allowlist||[]).length)) : listTab==='private_tlds' ? fmt((stats.privateTldsSize || 0) + ((lists.private_tlds||[]).length)) : fmt((stats.mullvadDomainsSize || 0) + ((lists.mullvad_upstream||[]).length)) }} total (merged)
Static file + external URLs + custom domains above are all merged at runtime.
{{ toastMsg }}