Get Started →
Guide 10 min read

SOCKS5 or HTTP Proxy: Getting It Right in the Tools You Actually Use

The protocol comparison has been written a hundred times. What has not been written often enough is the part where you paste credentials into a tool, something quietly does not work, and the error message points nowhere near the actual cause. This post is organised by symptom.

DW
Dan Whitfield
Runs proxy operations for scraping and account teams. Spends most of his time reconciling invoices against success rates.
In this article
  1. The short answer
  2. Antidetect browsers
  3. Python and curl
  4. Phones and desktop apps
  5. Symptoms and what they mean
  6. A five-minute verification
  7. FAQ

The short answer

For nearly everything discussed here, choose SOCKS5. It carries any TCP traffic rather than only web requests, it does not rewrite your headers, and it can resolve DNS at the far end instead of on your machine — which is the setting that quietly decides whether your setup leaks.

Choose an HTTP proxy when you specifically want proxy-side caching or header manipulation, or when the tool you are stuck with only supports HTTP. Both are offered on the same 922 S5 Proxy credentials, so this is a per-tool decision rather than a purchase decision.

Antidetect browsers

Use SOCKS5, and set remote DNS. Nearly every antidetect browser exposes this as a checkbox worded something like "proxy DNS when using SOCKS5". If it is off, your machine resolves the hostnames and your real resolver — usually your actual ISP — is what the far end can infer. The IP check page will still show the proxy address, which is why this gets missed for months.

Bind one profile to one address permanently. Not one address per session: one per profile, for the life of the profile. The point of these tools is that each profile looks like a separate person, and a person does not change internet provider between logins.

Match the timezone and locale to where the address actually is. A profile on a Warsaw IP reporting a New York timezone is a contradiction that costs nothing to avoid and is checked routinely.

Python and curl

In requests, the scheme in the proxy URL decides where DNS happens, and the difference is one character. socks5:// resolves locally. socks5h:// resolves at the proxy. You almost always want the second one. This is the single most common misconfiguration in scraping code, and nothing about the behaviour of the script announces it — the requests succeed either way.

The same distinction exists in curl: --socks5 against --socks5-hostname. Same rule, same reason, same silence when you get it wrong.

For httpx and aiohttp, check whether SOCKS support is a separate install. It usually is, and a missing extra tends to surface as a confusing scheme error rather than a helpful message about the missing package.

Phones and desktop apps

Android and iOS both accept HTTP proxies in Wi-Fi settings and neither accepts SOCKS5 there. If SOCKS5 is required on a phone, it has to go through an app that implements it rather than a system setting.

Desktop applications vary more than their documentation suggests. Where a program offers both, prefer SOCKS5 for the same reasons as everywhere else. Where it offers only HTTP, that is fine — use the HTTP endpoint on the same credentials.

Symptoms and what they mean

The IP check shows the right address but sites still know your country. DNS is resolving locally. Switch to socks5h://, or enable remote DNS in the browser.

It works in the browser and fails in the script. Almost always the scheme, occasionally a missing SOCKS extra. Compare the two configurations literally, character by character, rather than by memory.

Connection refused on one port, fine on another. SOCKS5 and HTTP listen on different ports. Reusing the HTTP port for a SOCKS5 client produces a connection error that reads like an outage.

Everything works, then stops after a few minutes. A rotating endpoint used where a sticky one was needed. The address changed underneath a session that assumed it would not.

Slower than expected on every request. Check whether each request opens a new connection. Connection reuse matters more to throughput than the choice of protocol does.

A five-minute verification

Before trusting a new configuration, confirm three things in order. Load an IP check page and confirm the address and country. Load a DNS leak test and confirm the resolver is not your own provider — this is the step almost everyone skips and it is the one that catches real problems. Then load the target itself and confirm the content is localised the way it should be.

If all three pass, the setup is sound. If the first passes and the second fails, you have the leak described above, and it has probably been there since the day you set the tool up.

FAQ

Is SOCKS5 measurably faster?

Slightly, from a simpler handshake, but the difference is small next to connection reuse and how far away the exit address is. Choose it for control, not for speed.

Can the proxy read my HTTPS traffic over SOCKS5?

No. TLS terminates at the destination; the proxy moves encrypted bytes.

Do I need separate credentials for SOCKS5 and HTTP?

No. The same 922 S5 Proxy credentials serve both, on different ports.

What breaks if I leave DNS local?

Nothing visibly. That is exactly the problem — the resolver still points home while the address looks correct.

Need clean residential SOCKS5 for your stack?

922Proxys5 provides SOCKS5 + HTTP(S) endpoints from 350M+ residential IPs in 200+ countries, with remote DNS, sticky sessions, and crypto checkout. Code OPEN30 = 30% off.

View Pricing →

Related reading