# Residential proxy in the same country every session

> A residential pool moves your exit whatever you do. The checks that matter compare countries, so pin the country and let the address move inside it.

Source: https://mosaicbrowser.com/blog/pin-the-country-not-the-address

## Pin the country, not the address

A residential pool moves your exit whatever you do. The checks that matter compare countries, so pin the country and let the address move inside it.

![6 loads: Six loads, one launch: the score fell when the exit moved](https://mosaicbrowser.com/covers/pin-the-country-not-the-address.webp)

To get a residential proxy in the same country every session, put the seller's country token (`country-us`, say) in the username of every session you mint, and put it back on the replacement when one dies. Don't fight to keep one address. A residential pool moves you regardless, and Whoer's DNS row and the timezone, language and geolocation checks we ran all compare your exit by country.

We came to this while measuring detectors, not browsers. Our scores kept moving between loads of one unchanged profile, and the cause turned out to be the exit underneath it.

## The address moves whatever you do

A residential exit is a home connection: somebody's router or phone, rented through an app or SDK they installed. The gateway maps your session id to one of those devices and keeps you there until the session's lifetime runs out, the owner shuts the laptop, or the device stops answering.

Three launches of one profile, each on a fresh session, gave us three different addresses. Three more on a session we held gave `69.245.49.160`, `69.245.49.160` and `69.245.49.160`. The hold works, for a while. A session written with `-lifetime-60` kept its exit for sixty minutes, then broke without saying "expired": the browser showed `ERR_TUNNEL_CONNECTION_FAILED`, while our checker reported a healthy proxy in another city. The symptoms are listed in [what an expiring sticky session looks like](https://mosaicbrowser.com/blog/sticky-session-expiry-symptoms).

Sessions also die before their time. We went looking for a bad exit on purpose, minted forty fresh sessions on one gateway, and found it at number twenty-nine. Session 889053 answered 504 four times in a row. Two of the next three fresh sessions answered 200. Retrying a dead token gets you the same dead device.

Mosaic is a desktop app

Email yourself the link and open it on your computer.

[How it works: Provider minting](https://mosaicbrowser.com/features/proxy-providers)

## What sites actually compare

Line up what a consistency scanner reads and nearly every row is a country:

- the exit's country against the browser's timezone
- the exit's country against `navigator.language`
- the exit's country against the coordinates geolocation returns
- the country of the DNS resolver that looked up the site, against the exit's country

The fourth one cost us a measurement run. Whoer graded a single profile, in a single launch, at 100, 100, 100, 100, 35 and 30 over six page loads, and the two drops landed when the residential session rotated. Its biggest single deduction reads "Your DNS server country differs from the IP country". We ran plain `curl` through the same proxy, no browser at all: the resolver was Google's, first in Germany and then in the Netherlands, and the exit was a Verizon line in the United States. The exit node resolves whatever names the gateway hands it, so the resolver arrives with the session and no browser setting touches it. [IPHey's score moved with the address](https://mosaicbrowser.com/blog/iphey-score-moves-with-address) the same way, on an untouched Chrome.

None of those rows reads the last octet. A new address in the same country, on the same kind of network, passes all four. An address in another country can fail every one of them at once.

## A random country is a profile drawn for nowhere

For a while one of our profiles ran on a `region-random` session, and the exit it drew was in Yoshkar-Ola, Russia, for a profile drawn as Mexican. Timezone and geolocation followed the exit, which is what Mosaic does. Language did not: our locale table had no row for Russia, and the matcher would sooner leave `es-MX` in place than guess. Every request went out in Mexican Spanish from a Russian home connection.

That is the cost of leaving the country open. A profile's language, timezone and working hours were all picked for one place, and an exit that can land anywhere hands each launch a new mismatch to patch up, some of which, like the Spanish in Russia, cannot be patched at launch at all.

## How to keep a residential proxy in the same country

Sellers that support targeting take the country in the username, next to the session id: `country-de` at one, `region-de` at another, something else again at a third. Use the seller's own spelling. Get it wrong and many gateways will still let you in, quietly ignore the token, and put you wherever they like.

1. Put the country token on every session, including the one you mint after a failure. A session minted without it draws from the whole pool, which is how the `region-random` profile ended up in Russia.
2. Pick a session lifetime that covers one sitting of work, and expect it to end early now and then, as session 889053 did.
3. When a session dies, mint a new one with the same country token instead of retrying the old id.
4. Add a state or city only when the profile was drawn for one. A single city has far fewer homes to draw from than a whole country.
5. Once the session is up, read the exit's country and the resolver's country. Whoer's drops to 35 and 30 came from the second.

Holding one exact address for months takes a static ISP proxy, which you buy outright. A residential pool does not sell that.

## How Mosaic does it

In Mosaic a provider is the seller's gateway line, pasted once. Each profile mints its own session from it, with its own country, state, city and session minutes, offered only where the seller's line format has a word for them. A pick the seller cannot spell is refused by name. Every profile holds its own session, so [forty profiles get forty exits](https://mosaicbrowser.com/blog/forty-profiles-forty-exits), not one.

A session that reaches nothing gets replaced with a fresh one minted from the same pick, which keeps the country. Mosaic does that in three places: launching, checking a provider, and creating profiles from one. It never moves a session you pinned yourself; that launch stops instead, naming the session. Timezone, language and geolocation then follow the exit Mosaic measured, and the proxy check turns amber when the exit's DNS resolver sits in a different country from the exit. Setup is on [proxy providers](https://mosaicbrowser.com/features/proxy-providers).

## Questions

### How do I keep a residential proxy in the same country every session?

Add the seller's country token, such as country-us, to the username of every session you mint, including the one that replaces a dead session. Each new session then lands on a different home connection inside that country.

### Can I keep the same residential IP address forever?

No. Ours held 69.245.49.160 across three launches, and a session written with lifetime-60 lasted its sixty minutes and then failed. For one address over months you need a static ISP proxy.

### Why does my residential proxy show a different city each time?

A country-only session can come out of any city in that country. If the seller has a state or city token, adding it narrows the draw, though a smaller area has fewer live devices to give you.

### What checks compare my proxy's country?

Timezone, browser language and geolocation are each compared with the exit's country. Whoer also compares the country of the DNS resolver with the exit, and that row is its largest single deduction. A new address in the same country keeps all of them in agreement.

## Related

[What an expiring sticky session looks like from inside a browser](https://mosaicbrowser.com/blog/sticky-session-expiry-symptoms): A sticky session expired on our proxy: the browser showed tunnel errors, the check a healthy proxy in another state. Neither said expired.

[Same proxy session on multiple profiles: forty profiles, forty exits](https://mosaicbrowser.com/blog/forty-profiles-forty-exits): The same proxy session on multiple profiles means one exit IP for all of them. A batch of ours did it in September 2026; now every profile mints its own.

[IPHey's score moved with the address, not the browser](https://mosaicbrowser.com/blog/iphey-score-moves-with-address): IPHey score changes even on an untouched Chrome: 100, 100, 70 and 0 in one afternoon. The score follows the exit and the moment; the browser card does not.

[Provider accounts: one gateway line, one exit per profile](https://mosaicbrowser.com/features/proxy-providers): Paste your proxy seller's gateway line once and Mosaic mints a separate session for every profile, so each one browses from its own exit address.

[How to check a proxy before you use it](https://mosaicbrowser.com/guides/how-to-check-a-proxy-before-you-use-it): Check that a proxy answers and tunnels, where its exit really is, whether the address is residential or blocklisted, and that the browser stays behind it.

[Detecting a proxy with two clocks](https://mosaicbrowser.com/blog/proxy-detection-by-latency): A server times the TCP handshake to the exit and a round trip to the browser. Behind a proxy the second is longer, and the gap is the tunnel.

[Through a proxy, your TCP fingerprint is the exit's](https://mosaicbrowser.com/blog/tcp-fingerprint-belongs-to-the-exit): A proxy's exit opens its own TCP connection, so the TTL, window and options a site reads come from the exit's system, not your browser or your computer.

[MSS 1300: what an MSS value says about VPN detection](https://mosaicbrowser.com/blog/mss-and-mtu-through-a-tunnel): VPN detection by MSS value: a tunnel shrinks the MSS in every SYN. A proxy opens a new connection at the exit, so a site reads the exit's MSS.

## Mosaic, on your own computer

The browser this blog is about: its own Chromium, fingerprints from real machines and a proxy exit per profile. Free holds 3 profiles. Pro is $49 a month for any number.

Mosaic is a desktop app

Email yourself the link and open it on your computer.
