Everybody runs the IP check, sees the exit address and calls it done. Fair enough, but a site can ask a lot more than that, and these are the ones that bite:

IPv6. Your device has a public v6 address, your proxy only carries v4, and some traffic just walks around it. Turn IPv6 off in the browser profile or on the adapter.

DNS. Resolver in your own country while the exit is in another one? That’s a leak. On SOCKS5, use socks5h:// so names resolve at the proxy.

WebRTC can hand out another public address. Via, Forwarded and X-Forwarded-For can carry your real IP. And your browser clock saying one time zone while the IP says another is a flag all by itself.

Also, easy to forget: a system proxy only covers apps that bother to read it, and an extension only covers its own browser.

We put all seven checks on one page. Your browser asks a few public services the questions directly and we store nothing: https://proxymint.com/tools/proxy-check/

Disclosure: it’s our tool, we run a proxy service.