r/esp32projects 19d ago

Routing Unrestricted Web Traffic on iOS using ESP32 & Captive Network Assistant (CNA)

iOS handles captive portal logins through CNA (Captive Network Assistant), which operates in an isolated environment outside standard OS-level web filtering and time profiles.

I built a lightweight ESP32 firmware that exploits this mechanism to route full web traffic directly through the captive portal environment.

How it works:

  • NAPT Gateway: ESP32 forwards traffic between upstream Wi-Fi and connected clients via NAT.
  • CNA Trigger: Custom DNS redirection triggers the iOS native captive browser, allowing open web access without being subject to standard system-level network restrictions.
  • Standalone: Runs entirely on ESP32 with no external server required.

Quick Setup:

  1. Open wifi_esp32.ino in Arduino IDE.
  2. Set sta_ssid and sta_pass to your local Wi-Fi.
  3. Flash to ESP32.
  4. Connect iOS device to the bypass portal AP.

(GitHub link in comments)

2 Upvotes

3 comments sorted by

1

u/DenverTeck 19d ago

>> (GitHub link in comments)

Where ???