15% off your first purchase with code WELCOME15, up to 25 GB.

See pricing

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

SOCKS5 with DNS resolved at the exit
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; 0x00 is none and 0x02 is 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, BIND or UDP ASSOCIATE to 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

SOCKS5HTTP proxy
LayerBelow the application; any TCP protocolHTTP; other TCP via the CONNECT tunnel
HTTPSTunnelled, TLS end to endTunnelled with HTTP CONNECT
UDPDefined (UDP ASSOCIATE); support varies by providerNo
AuthenticationUsername/password subnegotiationProxy-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.

  1. [1]IETF: RFC 1928: SOCKS Protocol Version 5
  2. [2]IETF: RFC 1929: Username/Password Authentication for SOCKS V5