| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
dnscrypt-proxy is a fantastic tool for securing DNS communications, but its power can be daunting for users who prefer a graphical interface. This project provides a user-friendly, cross-platform client that acts as a complete visual controller for the dnscrypt-proxy executable.
It allows you to fetch the latest public resolver lists, select one or more servers, and instantly activate them. It handles everything from generating the configuration file to modifying your system's DNS settings and running the proxy in the background.
You can either download the pre-compiled standalone executables (Recommended) or run the Python script directly.
We provide high-quality, pre-built executables for Windows, macOS, and Linux. No Python installation required!
If you prefer to run the Python script directly, follow these steps:
Clone this repository or download the source code:
git clone https://github.com/neohiro/dnscrypt-proxy-gui.git
cd dnscrypt-proxy-guiCreate a virtual environment and install the required libraries:
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt # requests, pystray, PillowThe system tray icon needs pystray + Pillow. Without them the GUI still works - closing the window minimises it to your taskbar instead of the tray.
Extract the dnscrypt-proxy archive you downloaded earlier and place the executable inside the cloned repository. Your directory should look like this:
dnscrypt-proxy-gui/
├── dnscrypt-proxy-gui.PY # The GUI script
└── dnscrypt-proxy.exe # The official executable (or `dnscrypt-proxy` on Linux/macOS)
Windows:
python dnscrypt-proxy-gui.PYLinux / macOS:
python3 dnscrypt-proxy-gui.PYDo not run the script through the shell directly (e.g. ./dnscrypt-proxy-gui.PY) unless you have made it executable first (chmod +x). If you see errors like from: not found, your shell is trying to interpret Python as shell script - always launch it via python3.
Activating servers changes system DNS settings, which requires elevated privileges. On Linux/macOS either start the GUI with sudo (using the same virtual environment: sudo .venv/bin/python3 dnscrypt-proxy-gui.PY) or point the Configuration tab's System Paths at a proxy/config location your user can write.
By default the GUI looks for:
| What | Windows | Linux | macOS |
|---|---|---|---|
| dnscrypt-proxy executable | next to the GUI | /usr/bin/dnscrypt-proxy or on $PATH | /usr/local/bin/dnscrypt-proxy or on $PATH |
| Configuration folder | next to the GUI | /etc/dnscrypt-proxy | /usr/local/etc/dnscrypt-proxy |
Both locations are configurable in the Configuration → System Paths section - set them once and they persist in settings.json.
Note: When you click Activate, the GUI dynamically generates a dnscrypt-proxy.toml file, launches the proxy in the background, and automatically configures your system's network adapter to route DNS queries through 127.0.0.1. Your previous DNS settings are snapshotted first (dns_backup.json) and restored exactly when you deactivate or exit. When you deactivate, it gracefully reverts your settings back to their original state.
Troubleshooting: The app writes a rotating log to %LOCALAPPDATA%\DNSCryptClientGUI\logs (Windows), ~/Library/Logs/DNSCryptClientGUI (macOS) or ~/.cache/dnscryptclientgui/logs (Linux). Include recent lines when reporting problems.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Distributed under the ISC License, in parallel with dnscrypt-proxy itself. See LICENSE for more information.
A huge thank you to the DNSCrypt team for creating and maintaining the incredible dnscrypt-proxy project.
| Back | FazBrowse Home | New Git URL |