I already looked at all related questions, and also at the Chromium project. I have a working hostapd access point, and a working Captive Portal (works perfectly on ios and mac osx, windows and linux).

BUT - on Android I get no automatic detection, even though I see the request for client3.google.com/generate_204, where I changed the contents of the page and the response code.

Any ideas?

p.s - My software works by doing iptables redirect to port 53 and 80, if the user didn't log in to my captive portal - I respond with "" for each response - that is my Apache server. If I manually go on the android to clients3... I get 302 and redirect to my captive as it should be, but the popup is not triggered. If you go to a place with a captive portal, it does recognize. What can I possibly be missing?

1 Answer 1


Answer to an old question but anyway.. I think you shouldn't answer to client3.google.com/generate_204 with a 302 code.

Just leave the usual behavior redirecting people to for every request, also for client3.google.com/generate_204

If Android find 302 http response on client3.google.com/generate_204 it supposes you are connected to internet and so, it doesn't show you the captive portal popup.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .