You bought a proxy. The IP sits in the right country, every blacklist lookup comes back green, speed is fine. Then you run an anonymity checker and it flags you anyway. “Hosting provider,” maybe. Or the OS detected from your connection doesn’t match your user agent. And if a free checker can see it in half a second, the site you actually cared about saw it too.

This trips up almost everyone at first, because we tend to treat anonymity as one thing. It isn’t. It’s three separate layers, and any single one can give you away on its own: what your IP address says about you, what your network packets say, and what your browser says. Fix one, ignore the other two, and you end up “anonymous” with a bright red score.

What the IP itself tells them

Before a site looks at anything else, it looks up who owns your IP. Every address belongs to an ASN, and ASNs have types. If yours resolves to Amazon, Hetzner or OVH, you’re announcing “I am a server in a rack” no matter how clean the address is. Blacklists are almost beside the point here. A datacenter IP with zero spam history is still a datacenter IP, and plenty of sites treat that alone as reason enough for a captcha or a block.

Residential and ISP addresses sit in ranges owned by consumer carriers, so they read as someone’s home broadband. That’s the whole reason they cost more. It’s also why “how many blacklists am I on” is the wrong question. The right one is: what type of network does my IP claim to be, and does that match the story the rest of my traffic tells?

One more IP-level gotcha: geolocation databases disagree with each other. MaxMind might place your address in Warsaw while another database says Berlin, and different sites subscribe to different vendors. If precise location matters for what you’re doing, check the specific IP against more than one source before you rely on it.

The layer almost nobody checks: your packets

Here’s the part that catches even careful people. Every operating system builds TCP packets slightly differently. Initial TTL, window size, the order of TCP options, MTU. Windows does it one way, Linux another, macOS a third. Passive tools like p0f read those quirks without sending you anything, and the technique is old and well documented, there’s a whole Wikipedia article on TCP/IP stack fingerprinting if you want the details.

Now think about what happens when you connect through a typical proxy. Your browser says Windows, Chrome 138. But the packets arriving at the site were assembled by the proxy server itself, and that server almost certainly runs Linux. So the site sees a Linux network stack wearing a Windows costume. A checker will print it right on the screen: “OS mismatch.” An anti-bot system won’t print anything. It’ll just quietly raise your risk score.

Most providers do nothing about this, they move your traffic and that’s it. A few have started to address it directly. Proxya’s ISP proxies, for one, rotate the OS-level TCP fingerprint, so the packet signature can present as Windows or macOS instead of defaulting to the datacenter’s Linux stack, and the same trick runs on their datacenter line. When I first saw that on a mid-priced provider I was honestly surprised; it’s the sort of detail you normally only hear enterprise vendors talk about. It matters most on static addresses, where you keep the same IP for weeks and the packet story has to hold up over time. Residential connections mostly sidestep the issue, since traffic exits through a real home device with a genuine consumer stack.

What your browser gives away for free

The third layer is the one no proxy can fix, because it doesn’t travel through the proxy at all. WebRTC can hand out your real local address unless you rein it in. Your DNS queries may still go to your ISP’s resolver, which is how “DNS leak” ends up in red on every checker. Your system clock says UTC+3 while your IP claims Amsterdam. Your Accept-Language header says ru-RU while you’re pretending to browse from Chicago.

None of these are exotic. They’re the first things any fingerprinting script collects, and they’re entirely on you: disable or restrict WebRTC, make sure DNS goes through the tunnel, set the timezone and language to match the IP’s location. Ten minutes of setup. Skipping it wastes whatever you spent on the proxy.

There’s a deeper browser layer too, canvas rendering, installed fonts, audio context, but I’d resist the urge to fight it with random spoofing. A fingerprint that changes on every visit is itself a signal, and a rare one. For most purposes, a boring, consistent, common-looking browser beats an exotic disguise.

Putting it together

So the working order looks like this. First decide what your IP needs to claim to be: for anything that gates datacenter ranges, that means residential or ISP addresses, not a cheap server IP. Second, if you’re on a static IP, ask your provider what OS fingerprint your packets present, and expect a confused pause from most of them. Third, do the browser hygiene yourself, then verify the whole stack on a checker before pointing it at anything that matters.

To be fair about Proxya, since I named it: it’s a young brand, the pool is smaller than what Bright Data or Oxylabs run, there are no mobile proxies yet, and support is chat rather than a personal manager. But the fingerprint work is real, the ISP pool is unusually clean, and you can pay in crypto and be running in under a minute, which for this kind of testing is exactly what I want. Whatever provider you land on, ask the fingerprint question first. The answer sorts the market fast.

The uncomfortable truth

No proxy makes you anonymous by itself. What it does is make one layer of your story consistent. The packets and the browser have to back that story up, and checkers exist precisely to show you where the story cracks. Read the whole report, not just the IP line. The IP is the easy part.