How to Block All Websites Except One
To allow only one website while blocking everything else, you must restrict outbound traffic at the network or device level using a combination of allow-listing and broad blocking rules. The exact method depends on whether you are configuring a home router, a work device, or a child's phone.
More from this site
Keep reading the latest coverage
Method 1: Use Your Router's DNS Settings
Most home routers let you change the DNS server to a family or parental-control service that supports whitelisting. You set a single allowed domain and enable a block-all-other mode. This protects every device on the network without installing software on each one.
- Open your router admin page (often 192.168.1.1).
- Locate DNS or Parental Controls.
- Enter the allowed domain and turn on strict filtering.
Method 2: Edit the Hosts File (Single Device)
On Windows, macOS, or Linux you can edit the hosts file to redirect all unresolved traffic, then add a single exception. This method only works on the device where the file is edited.
- Find the hosts file: Windows at C:\Windows\System32\drivers\etc\hosts, macOS and Linux at /etc/hosts.
- Add a line for the allowed site: 127.0.0.1 isn't needed; instead use the site's real IP if you want to pin it, or rely on your DNS resolver.
- Use a firewall or DNS filter to block all other outbound port 80 and 443 traffic.
Method 3: Use a Firewall or Network Tool
Applications like Little Snitch (macOS), OpenDNS Family Shield, or a full-feature firewall let you create an explicit allow rule for one domain and a default deny rule for all others. This gives the tightest control, but it requires ongoing management if the allowed site changes IP addresses.
| Approach | Scope | Difficulty |
|---|---|---|
| Router DNS filtering | Whole network | Medium |
| Hosts file + firewall | Single device | High |
| Third-party DNS service | Whole network | Low |
Things to Watch For
Allow-listed sites that use multiple domains or CDNs (such as Cloudflare or AWS) may break if you block by domain alone. Check the site's base domain and any CDN ranges if you are using IP-based rules. Also, HTTPS means your router or DNS filter can see the domain but not the full URL, so you must allow the entire domain to avoid breaking subpaths.