discord privacy hardening · windows

DcDNS

fetching latest…

Enforces strict DNS-over-HTTPS, blocks WebRTC IP leaks, disables telemetry, and strips tracking headers — all before Discord touches the network.

DcDNS Banner
sha256
DoH DNS-only, no plaintext
17+ telemetry endpoints blocked
0 network calls from DcDNS
1-click full restore & uninstall

what_it_does

Privacy where
Electron cuts corners

Discord runs on Chromium. That means plaintext DNS, WebRTC IP leaks, and fingerprinting headers — unless you patch it at the source.

Strict DNS-over-HTTPS

All DNS queries forced through Mullvad's encrypted DoH resolver. Plain DNS fallback removed — queries fail securely rather than silently downgrade.

WebRTC Leak Protection

Blocks non-proxied UDP via disable_non_proxied_udp. Your local LAN IP is never exposed to Discord's voice servers or other call participants.

Telemetry Blocking

Cancels requests to /science, /track, /analytics, Sentry, Mixpanel, Segment, and Amplitude at the Electron network layer.

User-Agent Cleaning

Strips Electron/x.x.x and DiscordApp/x.x.x from all outgoing headers so servers cannot fingerprint your exact Electron build.

TLS 1.2+ Enforced

Minimum TLS enforced via setSSLConfig. Connections to servers using outdated, insecure TLS are blocked entirely.

Geolocation Blocked

All geolocation requests denied at the Electron layer via both setPermissionRequestHandler and setPermissionCheckHandler.

Spellcheck Disabled

Chromium's spellchecker — which can send typed text to remote cloud APIs — disabled via setSpellCheckerEnabled(false).

X-Client-Data Removed

Google's Chromium ID header plus X-Goog-Visitor-Id and X-Firebase-Client stripped from every request via webRequest.onBeforeSendHeaders.

Crash Reports Blocked

Breakpad crash reporting disabled and upload endpoints blocked independently. Your crash data stays on your machine, not Discord's servers.


how_it_works

Patches Discord's core
before it boots

DcDNS injects a JS payload into Discord's index.js. All protections activate before any network connection is established.

01
Close Discord completely
DcDNS can do this automatically — all running Discord processes are terminated before patching to avoid file lock errors.
02
Run DcDNS.exe as Administrator
Portable executable — no installation needed. Admin rights required to write to Discord's installation directory.
03
Configure settings
Toggle each protection on or off. Set a custom DoH resolver or pick a preset — Mullvad, Cloudflare, Quad9, or OpenDNS.
04
Click Install — select your client
Supports Discord Stable, PTB, Canary, and Development. Original index.js is automatically backed up as index.js.dcdns.bak.
05
Restart Discord
The title bar shows "Encrypted By DcDNS" when active. All protections are live before the first network request.
06
After every Discord update
Discord updates overwrite the patched file. Re-run DcDNS and click Install to re-apply your saved settings.
Discord update notice: Discord auto-updates overwrite the patched index.js. After any Discord update, re-run DcDNS and click Install to re-apply the patch with your saved settings.

settings_panel

Every protection
is toggleable

Saved to dcdns_conf.json in Discord's userData directory. Applied at startup — no code editing required.

DNS-over-HTTPS
Block Telemetry
WebRTC Leak Protection
Block Crash Reports
Block Geolocation
Disable Spellcheck
Clean User-Agent
Harden TLS (1.2 min)
Show "Encrypted by DcDNS" label
Custom DoH resolver

why_trust_it

Transparent by design

DcDNS improves network-level privacy within Discord. It does not make you anonymous — you are still logged into your account.

Fully open source

Every line — Python launcher, JS payload, and UI — is visible in the public GitHub repository. No compiled black boxes.

No network calls

DcDNS transmits zero data. The only external call is a read-only GitHub API check for update notifications.

Fully reversible

One-click Uninstall restores original index.js from backup. If no backup exists, the payload is cleanly stripped without corrupting the file.

Hash verification

SHA-256 of the target file displayed before and after patching so integrity can be verified independently at every step.


release_history

Changelog

Full release history — latest always at the top. Fetched live from GitHub.

fetching releases from GitHub…

Download latest