Skip to content

Instantly share code, notes, and snippets.

@nickboucher
Created July 19, 2023 13:54
Show Gist options
  • Save nickboucher/3da1c01fe47a8b03a36bea40d53a40b4 to your computer and use it in GitHub Desktop.
Save nickboucher/3da1c01fe47a8b03a36bea40d53a40b4 to your computer and use it in GitHub Desktop.
Toggle Cloudflare DNS on MacOS
#!/usr/bin/env zsh
if networksetup -getdnsservers Wi-Fi | grep -q '1.1.1.1'; then
networksetup -setdnsservers Wi-Fi "Empty"
echo "Cloudflare DNS: \033[1mDisabled\033[0m"
else
networksetup -setdnsservers Wi-Fi 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001
echo "Cloudflare DNS: \033[1mEnabled\033[0m"
fi
@nickboucher
Copy link
Author

To make this command generally accessible via CLI, run:

sudo mv dns-cloudflare-toggle /usr/local/bin/dns-cloudflare-toggle
sudo chown $(whoami):admin /usr/local/bin/dns-cloudflare-toggle
sudo chmod 755 /usr/local/bin/dns-cloudflare-toggle

Then, to toggle Cloudflare DNS run:

dns-cloudflare-toggle

This is helpful for consenting to captive portals for public wifi that are not configured to support private DNS servers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment