Quick answer
How do I set up a SOCKS5 static proxy?
For a SOCKS5 static proxy setup, point your tool at the SOCKS5 host and port of your static IP and let the proxy resolve hostnames. Use curl --socks5-hostname, socks5h:// URLs in Python Requests, or the 'Proxy DNS when using SOCKS v5' box in Firefox. SteadyProxy static IPs support HTTP, HTTPS (CONNECT) and SOCKS5; the default SOCKS5 port is 7778, and each IP shows its own host and port. Updated 19 October 2026.
What are the key facts for SOCKS5?
| Protocol | SOCKS version 5 (RFC 1928), TCP connections |
|---|---|
| Login method | Username and password subnegotiation (RFC 1929), or the IP allowlist |
| SteadyProxy authentication | Username and password, or an IP allowlist (up to 10 IPs) |
| Default ports | SOCKS5 7778, HTTP 7777; use the host and port listed for each IP |
| DNS through the proxy | curl --socks5-hostname or socks5h://; Requests socks5h://; Firefox 'Proxy DNS when using SOCKS v5' |
| Python package | requests[socks], which installs PySocks |
| Blocked targets | Banking, government, payment-portal and ticketing sites, plus SMTP (email-sending) ports 25, 465 and 587 |
When should I use SOCKS5 instead of the HTTP port?
Use SOCKS5 when an app does not speak HTTP proxy, or when it only offers a SOCKS setting. For web traffic, both work: the HTTP port carries HTTPS through a CONNECT tunnel, and SOCKS5 carries any TCP connection. Both give the same exit IP for one static IP, which you can confirm with the test below. Plan for TCP only: this guide does not cover UDP. Email sending is not possible through either, because SMTP ports are closed.
How do I use a SOCKS5 static proxy with curl?
curl has two ways to send the hostname to the proxy: the --socks5-hostname option, or a proxy URL that starts with socks5h://. The plain socks5:// scheme makes curl resolve the hostname on your own machine first, then send only the IP. In our test on 19 October 2026, the test proxy received the hostnames api.ipify.org and ipinfo.io with socks5h://, and a raw IPv4 address with socks5://.
# SOCKS5, hostname resolved by the proxy (recommended)
curl -s --socks5-hostname gw.steadyproxy.com:7778 --proxy-user USERNAME:PASSWORD https://api.ipify.org
# Same thing as a proxy URL: socks5h:// = the proxy resolves the hostname
curl -s -x "socks5h://USERNAME:[email protected]:7778" https://ipinfo.io/json
# For comparison only: socks5:// resolves the hostname on your own machine first
curl -s -x "socks5://USERNAME:[email protected]:7778" https://api.ipify.org
How do I use SOCKS5 in Python Requests?
Install the SOCKS extra with python -m pip install "requests[socks]", then use a socks5h:// URL for both the http and https keys. The Requests documentation states that socks5 resolves DNS on the client and socks5h resolves it on the proxy server. URL-encode the username and password if they contain characters such as @ or a colon. The script below ran on 19 October 2026 through a test SOCKS5 server with username and password login.
"""Python Requests through a SOCKS5 static proxy.
Install: python -m pip install "requests[socks]"
"""
import os
from urllib.parse import quote
import requests
HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
PORT = os.environ.get("PROXY_SOCKS_PORT", "7778")
USER = quote(os.environ.get("PROXY_USER", "USERNAME"), safe="")
PASSWORD = quote(os.environ.get("PROXY_PASS", "PASSWORD"), safe="")
# socks5h:// sends the hostname to the proxy: DNS is resolved on the exit side
PROXY = "socks5h://" + USER + ":" + PASSWORD + "@" + HOST + ":" + PORT
PROXIES = {"http": PROXY, "https": PROXY}
with requests.Session() as session:
session.trust_env = False
response = session.get("https://ipinfo.io/json", proxies=PROXIES, timeout=(10, 30))
response.raise_for_status()
data = response.json()
print(data.get("ip"), data.get("org"), data.get("country"), data.get("city"))
How do I set SOCKS5 in Firefox or in system settings?
In Firefox, open Settings, scroll to Network Settings and click Settings. Choose Manual proxy configuration, enter the host in SOCKS Host and the port next to it, and select SOCKS v5. Tick Proxy DNS when using SOCKS v5, then click OK. Firefox's panel has no username or password field for SOCKS, so use the IP allowlist for that IP, or use the HTTP port, where Firefox asks for the login.
On macOS, System Settings > Network > your connection > Details > Proxies has a SOCKS proxy entry. Windows proxy settings target HTTP proxies, so set SOCKS5 inside each app instead. Chrome also accepts a SOCKS5 server through its --proxy-server switch; see the browser setup guide.
Why does DNS through the proxy matter?
With local DNS, your own resolver sees every hostname you visit, and it may return servers chosen for your location rather than the proxy's. Content delivery networks answer DNS by region, so a local lookup in France can point a request through a UK IP at a French server. Remote DNS (socks5h) lets the proxy side resolve the name, so the target answers as it would for a visitor in the IP's country. That makes local price and search-result checks more accurate.
How do I check that the SOCKS5 setup works?
Open ipinfo.io/json through the SOCKS5 port and read the ip, org and country fields. Then run the same request through the HTTP port of the same static IP: the exit IP should match. To confirm that it stays the same over hours, follow how to check if a proxy is static. A 'general SOCKS server failure' or an authentication error usually means a wrong port, a wrong password, or a source IP that is not on your allowlist.
What else do people ask about SOCKS5 static proxies?
What is the difference between socks5:// and socks5h://?
With socks5://, your machine resolves the hostname and sends only the IP address to the proxy. With socks5h://, the hostname goes to the proxy, which resolves it. curl and Python Requests both follow this rule. Use socks5h:// for static IPs, so DNS answers match the IP's country and your local resolver does not see the hostnames.
Is SOCKS5 encrypted?
No. SOCKS5 only relays the connection; it adds no encryption. RFC 1929 notes that its username and password login carries the password in cleartext. Your HTTPS traffic stays encrypted end to end through the tunnel, but the proxy login does not. On untrusted networks, prefer the IP allowlist, which sends no password at all.
Does SOCKS5 give a different IP than the HTTP port?
It should not for the same static IP: both ports lead to one exit address. Check it once by sending api.ipify.org through each port. If the two results differ, you may be using two different credential lines from your dashboard, or a system proxy on your machine may be taking over one of the requests.
Can Chrome use a SOCKS5 proxy with a password?
Chrome takes a SOCKS5 server through --proxy-server, and its documentation shows no field for a username or password there. Use the IP allowlist, so Chrome needs no login, or point Chrome at the HTTP port and a local forwarder. Our Selenium guide includes a tested forwarder script for that case.
Why does curl say it cannot resolve the proxy?
That message is about the proxy's own host, not the target. Check the spelling of the host from your dashboard, your local DNS and any firewall that blocks outgoing traffic to the SOCKS5 port. Test the network path with curl -v, which prints each step of the SOCKS5 handshake, including authentication.
Which apps work with a SOCKS5 static proxy?
Most HTTP clients, browsers, scraping frameworks and command-line tools accept a SOCKS5 setting, either in a config file or through ALL_PROXY. Mail sending will not work, because ports 25, 465 and 587 are closed. Each use must follow our acceptable use policy.
How much does a static IP with SOCKS5 cost at SteadyProxy?
Every plan includes SOCKS5 at no extra cost. As of October 2026, one ISP IP costs $2.24 and one dedicated datacenter IP costs $1.34, both for 30 days. Larger plans go down to $1.34/IP · 30 days at 100 ISP IPs. Payment is in crypto with no KYC; see pricing.
Which sources does this guide use? (5)
- RFC 1928: SOCKS Protocol Version 5 — IETF (2026-10-19)
- RFC 1929: Username/Password Authentication for SOCKS V5 — IETF (2026-10-19)
- Requests advanced usage: SOCKS — Requests (2026-10-19)
- curl man page (--socks5-hostname, -x) — curl (2026-10-19)
- Configuring a SOCKS proxy server in Chrome — The Chromium Projects (2026-10-19)