local dns control for linux with leak reduction, firewall-aware protections, and repair tools. ### what it does - routes system dns through local `dnsmasq` -> `unbound` - keeps dns easier to monitor and control - helps reduce dns leak risk - adds rollback and repair workflows for safer network changes ### local chain - `dnsmasq` on `127.0.0.1:53` - `unbound` on `127.0.0.1:5335` ### includes - localhost-only dns listeners - blocklist and whitelist support - upstream dns presets and custom upstreams - vpn-aware firewall rules - lockdown mode on disconnect - dns-only fallback mode - route and wireguard checks - one-click repair and dns repair - ipv4-only `unbound` - gui and headless command support > [!NOTE] > optional proton cli supported- if unavailable, local dns, firewall, and repair features can still be used normally. ### install ```bash tar -xzf dns-linux-amd64.tar.gz cd dns chmod +x dns sudo cp dns /usr/local/bin/dns sudo chmod +x /usr/local/bin/dns sudo cp app.ico /usr/share/pixmaps/dns.ico sudo tee /usr/share/applications/dns.desktop >/dev/null <<'EOF' [Desktop Entry] Version=1.0 Type=Application Name=dns Comment=dns manager Exec=/usr/local/bin/dns Icon=/usr/share/pixmaps/dns.ico Terminal=false Categories=Network;Security;System; StartupNotify=true EOF sudo update-desktop-database /usr/share/applications 2>/dev/null || true dns --headless status ``` ### run ```bash dns ``` ### cmds ```bash dns --headless status dns --headless tests dns --headless startup-report ``` ### admin ```bash sudo dns --headless apply sudo dns --headless confirm-apply sudo dns --headless repair sudo dns --headless repair-dns sudo dns --headless revert ``` ### build ```bash chmod +x install.sh build.sh package-install.sh ./install.sh ./build.sh onefile ``` ### uninstall ```bash sudo rm -f /usr/local/bin/dns sudo rm -f /usr/share/pixmaps/dns.ico sudo rm -f /usr/share/applications/dns.desktop sudo rm -rf /opt/dns sudo update-desktop-database /usr/share/applications 2>/dev/null || true ```