GitHunt
BD

BDadmehr0/gfw_resist_HTTPS_proxy_gui

HTTPS proxy with Fragment and DoH + GUI

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

DoH Stealth Proxy GUI

The main GUI showing status, live log, and traffic monitoring.


Windows proxy settings

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

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 upstream pyprox_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 from doh_server.py (via listen_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.py in this GUI edition is the same code path as the upstream pyprox_HTTPS_v3.0.py logic (unless you intentionally patched it).
  • The GUI imports and starts the server via start_server() and monitors it via get_status() (upload/download counters) and start_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 port

Windows auto-proxy integration

Implemented by writing to the current user's registry key:

HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings

The GUI sets:

  • ProxyEnable = 1
  • ProxyServer = "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:

    • customtkinter
    • Pillow
    • pystray
    • Any dependencies required by doh_server.py (see upstream)

Install dependencies:

python -m pip install customtkinter pillow pystray
# plus whatever doh_server.py needs

Installation & quick start (Windows)

  1. Clone this repository (or copy the files).

  2. Ensure doh_server.py is present and exports listen_PORT.

  3. Install dependencies:

    python -m pip install -r requirements.txt
  4. Run:

    python main.py
  5. 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.py and 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.py or proxy internals.

Acknowledgements

This GUI edition is a convenience wrapper using:

  • pyprox_HTTPS_v3.0.py from the upstream project
  • CustomTkinter for UI
  • pystray and Pillow for tray icon rendering
  • Windows Registry API for system proxy automation
BDadmehr0/gfw_resist_HTTPS_proxy_gui | GitHunt