If you have been using our residential proxy network normally, today's update will not change anything for you.

Starting today, we are officially enforcing remote DNS resolution across all residential proxy endpoints. Traffic routed through our residential network must now let the proxy server handle hostname resolution. If your app or client setup does a local DNS lookup before sending traffic through a residential proxy, those requests will now fail.

(Note: This update applies strictly to our residential proxy pool. Datacenter and mobile proxies are not affected by this change.)

While this might break custom scripts that rely on pre-resolved IP addresses, it is a necessary move to protect privacy, enforce access rules, and keep our residential pool reliable.

Why We Made This Change

Most HTTP and SOCKS5 client libraries already handle DNS proxy-side by default, like using

socks5h://
instead of standard
socks5://
 Still, local DNS lookups remain a really common setup mistake when working with residential IPs. Here is why we decided to enforce remote resolution at the protocol level:

1. Stopping DNS Leaks

When your client resolves a domain name locally before tunneling traffic through a residential proxy, your machine sends a query straight to your local ISP or local DNS provider.

  • The Privacy Risk: Even if your actual HTTP or TCP traffic goes through an encrypted residential proxy, your ISP or local network admin can still see every domain you try to visit.

  • The Fix: Forcing DNS resolution on the remote residential proxy server keeps both the domain lookup and the actual data inside the encrypted tunnel, completely fixing local DNS leaks.

2. Protecting Security and Access Controls

Local DNS lookups can be abused to bypass security bounds. By resolving a hostname to a direct IP locally, bad actors can attempt to hit backend endpoints directly, stepping right around domain-based blocklists and web application firewalls.

Enforcing resolution at the proxy level gives our residential edge architecture a chance to check domain requests against security policies before a TCP connection even opens.

 

What You Need to Do

For most of our residential proxy users, you do not need to do anything.

If you run custom scripts, cURL commands, or low-level network libraries with residential endpoints, just double-check your connection flags to make sure you are passing domain names instead of pre-resolved IPs:

  • cURL users: Make sure you use the proxy protocol that delegates DNS, so use

    socks5h://
    instead of
    socks5://

  • Python users (requests / httpx): Use standard proxy URLs with scheme formats like

    http://
    or
    socks5h://

  • Custom Code: Pass raw hostnames directly in your host headers and socket connections instead of resolving hostnames locally before connecting.