DoH Stealth Proxy โ GUI Edition
This repository contains a Windows-ported GUI wrapper for the DoH/HTTPS proxy originally based on pyprox_HTTPS_v3.0.py from the upstream project gfw_resist_HTTPS_proxy.
The GUI app embeds and controls the existing doh_server.py implementation (no functional changes to doh_server.py unless noted) and exposes convenient options for running, monitoring, and automatically configuring the Windows system proxy.
Upstream project: https://github.com/GFW-knocker/gfw_resist_HTTPS_proxy
๐ธ Screenshots
Application interface
The main GUI showing status, live log, and traffic monitoring.
Windows proxy settings
When enabled, the app automatically sets the system proxy for HTTPS connections under
Settings โ Network & Internet โ Proxy โ Manual proxy setup.
Table of contents
- Overview
- Highlights / Purpose
- Included files (important)
- GUI features & options
- Windows auto-proxy integration
- Requirements
- Installation & quick start (Windows)
- Usage
- Troubleshooting
- Security & privacy considerations
- License & credits
Overview
This is a GUI (CustomTkinter) front-end for the DoH/HTTPS proxy logic taken from pyprox_HTTPS_v3.0.py (upstream) and implemented as doh_server.py in this repo.
The GUI provides an easy on/off toggle, traffic counters, a live log panel, and an option to automatically set/clear the system proxy on Windows.
The project is packaged to run on Windows (tested on Windows 10/11).
Highlights / Purpose
- Make the DoH HTTPS proxy easy to run for non-CLI users via a modern desktop GUI.
- Keep the upstream proxy server logic intact (contained in
doh_server.py). - Add Windows conveniences: system proxy automation and system tray integration.
- Provide live feedback: logs, upload/download counters, and status indicators.
Included files (important)
main.pyโ Main GUI application (this Windows GUI wrapper).doh_server.pyโ The proxy server backend (based on upstreampyprox_HTTPS_v3.0.py). No behavioral changes to core proxy logic unless explicitly modified.screenshots/โ Contains example images (app.png,windows_proxy_setting.png).
Note: This GUI edition reuses the proxy implementation from the upstream project.
The GUI code orchestrates starting/stopping the server, logging output, tray icon, and Windows proxy registry changes.
GUI features & options
- Start / Stop proxy button (big centered toggle).
- Status LED next to proxy address (green when running, gray when stopped).
- Proxy info label showing
127.0.0.1:<PORT> (HTTPS)โ port is read fromdoh_server.py(vialisten_PORT). - Traffic monitor: live upload/download counters updated periodically.
- Live log: scrolling textbox that prints server and UI events.
- System tray icon: minimize to tray and control the app from the tray.
- Windows auto-proxy: When turning the proxy ON, the GUI attempts to set the system proxy for the current user. When turning it OFF, the GUI clears the system proxy.
- Graceful exit: clearing system proxy (if set) before quitting.
doh_server.py
doh_server.pyin this GUI edition is the same code path as the upstreampyprox_HTTPS_v3.0.pylogic (unless you intentionally patched it).- The GUI imports and starts the server via
start_server()and monitors it viaget_status()(upload/download counters) andstart_log_writer()for live logging hooks.
Expected functions
The GUI expects the following functions or variables to exist:
start_server() # returns a thread-like object with .start()
start_log_writer() # background logger to populate GUI log
get_status() # returns {"up_kb": int, "down_kb": int}
listen_PORT # integer portWindows auto-proxy integration
Implemented by writing to the current user's registry key:
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings
The GUI sets:
ProxyEnable = 1ProxyServer = "127.0.0.1:<PORT>"ProxyOverride = "<local>"
After updating the registry, the app calls InternetSetOptionW to notify Windows immediately โ browsers such as Chrome, Edge, and IE will start using the new proxy setting.
This change:
- Applies only to the current user (HKCU)
- Typically does not require admin privileges
- Can be reset when the proxy is stopped
โ ๏ธ Domain or group policyโcontrolled systems may override or block registry edits.
Requirements
-
Python 3.8+ (tested with 3.10 / 3.11 / 3.13).
-
Windows 10 or 11 for full functionality (auto-proxy).
-
Python packages:
customtkinterPillowpystray- Any dependencies required by
doh_server.py(see upstream)
Install dependencies:
python -m pip install customtkinter pillow pystray
# plus whatever doh_server.py needsInstallation & quick start (Windows)
-
Clone this repository (or copy the files).
-
Ensure
doh_server.pyis present and exportslisten_PORT. -
Install dependencies:
python -m pip install -r requirements.txt
-
Run:
python main.py
-
Click START PROXY. The GUI will start the proxy and automatically configure Windows proxy settings.
Usage notes
- The GUI writes status and errors to the Live Log panel.
- If the system proxy cannot be set (e.g., permission issues), the proxy will still run โ you can configure it manually in Windows.
- To stop the proxy, click STOP PROXY โ this will also clear system proxy settings.
Troubleshooting
- Port already in use โ change the port in
doh_server.pyand restart. - Proxy not applied โ check for GPO restrictions or registry write permissions.
- Tray icon missing โ Windows may hide it in the overflow menu.
- Startup errors โ verify all required packages are installed.
Security & privacy considerations
- The proxy handles TLS/DoH traffic โ donโt expose it to public networks.
- System proxy changes affect all Windows apps using the default proxy.
- Always review and trust the upstream DoH resolver and proxy code.
License & credits
-
GUI wrapper created for Windows, based on:
gfw_resist_HTTPS_proxy โ Original Project on GitHub -
Credits:
- Original upstream author(s)
- GUI edition author (Windows port and UI integration)
Contributing
- Open an issue or PR for bugs, UI improvements, or new features.
- Document any modification to
doh_server.pyor proxy internals.
Acknowledgements
This GUI edition is a convenience wrapper using:
pyprox_HTTPS_v3.0.pyfrom the upstream projectCustomTkinterfor UIpystrayandPillowfor tray icon rendering- Windows Registry API for system proxy automation

