Glossary · Networking
SOCKS5
SOCKS5 is a proxy protocol, standardised in RFC 1928 in 1996, that relays TCP connections and UDP datagrams between a client and a destination without interpreting the application traffic, with username/password authentication defined separately in RFC 1929.
Reviewed 30 Oct 2026
curl -x "socks5h://USERNAME_pool-arcfast_country-de:PASSWORD@proxy.arcproxies.io:8000" https://example.com/# Python: pip install "requests[socks]"# requests.get(url, proxies={"https": "socks5h://USERNAME_pool-arcfast_country-de:PASSWORD@proxy.arcproxies.io:8000"})How a SOCKS5 connection is set up
- Greeting. The client lists the authentication methods it supports;
0x00is none and0x02is username/password. - Authentication. With method
0x02, the client sends a username and password of up to 255 bytes each (RFC 1929) and the server accepts or closes the connection. - Request. The client asks for
CONNECT,BINDorUDP ASSOCIATEto a destination given as an IPv4 address, a domain name or an IPv6 address. - Relay. After a success reply, bytes flow in both directions unchanged. The protocol's conventional port is 1080, though providers often use others.
SOCKS5 vs an HTTP proxy
| SOCKS5 | HTTP proxy | |
|---|---|---|
| Layer | Below the application; any TCP protocol | HTTP; other TCP via the CONNECT tunnel |
| HTTPS | Tunnelled, TLS end to end | Tunnelled with HTTP CONNECT |
| UDP | Defined (UDP ASSOCIATE); support varies by provider | No |
| Authentication | Username/password subnegotiation | Proxy-Authorization header |
socks5 vs socks5h: where DNS is resolved
SOCKS5 can carry a hostname instead of an IP. In curl and Python requests, socks5h:// sends the hostname to the proxy and lets the exit resolve it; socks5:// resolves locally and sends an IP. Resolving at the exit matters for geo-targeting: a CDN picks its edge from the resolver's location, so a local lookup can route a German exit to the edge nearest your server.
Using SOCKS5 with ARC
The same gateway, port and credentials serve HTTP and SOCKS5; only the scheme changes. The dashboard generator writes http:// lines and the API returns SOCKS5 lines when asked for "protocol": "socks5". Library specifics are in the curl and Python requests guides.
FAQ
Questions
Something not covered? Write to contact@arcproxies.io.
Is SOCKS5 encrypted?
SOCKS5 itself does not encrypt the relayed data, and its username/password method sends credentials in the clear. HTTPS sites accessed through it are still encrypted end to end by TLS, because the proxy only relays the bytes.
Is SOCKS5 better than an HTTP proxy?
Neither is better in general. SOCKS5 relays any TCP protocol and can resolve hostnames at the exit; an HTTP proxy is supported by more HTTP tooling out of the box. For HTTPS scraping both end up tunnelling TLS, so pick whichever your client handles best.
What is the difference between socks5 and socks5h?
With socks5h the hostname is passed to the proxy and resolved at the exit; with socks5 your machine resolves it and passes an IP. Use socks5h when the location of DNS resolution should match the exit location.
Does ARC support SOCKS5?
Yes. The rotating pools accept SOCKS5 on the same gateway, port and credentials as HTTP; only the scheme in the proxy URL changes.
Sources & review
Last reviewed by the ARC Proxies team. Prices are read from the live catalog at build time.
In practice