SOCKS and SOCKS5 Proxies
Learn how to use SOCKS and SOCKS5 protocol with Bright Data proxy networks
Supported SOCKS Protocols
Bright Data supports SOCKS protocl version 5: SOCKS5
.
Using SOCKS5 for your scraping tasks
The most common protocols for internet data collection are HTTP
and HTTPS
, some of the tools or utilities require SOCKS5
for their operations.
In Bright Data, we do not distinguish between HTTP
, HTTPS
and SOCKS5
proxies: all our proxies support all three protocols. You can switch between protocols while using the same proxy.
Do you really need SOCKS5?
Our HTTP
and HTTPS
proxy solutions are usually the best fit for scraping websites, offfering lowest cost and highest performance. However, if the the task still requires SOCKS5
Bright Data can provide quality proxies around the globe.
Supported Proxy types
SOCKS5
proxy connections are supported on all Bright Data proxy networks: Datacenter, ISP, Residential and Mobile.
SOCKS5
over Bright Data Residential proxy is supported only towards HTTPS
targets, HTTP
targets will be supported soon. SOCKS5 Main proxy port configuration
22228
for SOCKS5 When using SOCKS5
make sure to use brd.superproxy.io:22228
and not the standard
port
for HTTP
and HTTPS
protocols.
SOCKS5 targeting with Bright Data
Per our compliance regulation, we allow SOCKS5
requests only with hostnames/domain names relayed as target. Requests sent with explicit IPs or local IP resolution, are blocked.
Hence, configure your code, client or calling application to:
- Use domain name as target
- Resolve DNS remotely and not locally
Adhering to those rules will ensure the request to get to the target domain IP, thru our proxy peer.
Target Ports
Datacenter & ISP
Bright Data supports all ports higher than 1024 for datacenter and ISP proxies.
Residential & Mobile
Bright Data supports ports: 8080
, 8443
, 5678
, 1962
, 2000
, 4443
, 4433
, 4430
, 4444
and 1969
for Residential & Mobile proxies.
Using SOCKS5 with curl
, Javascript
& Python
socks5h://brd.superproxy.io:22228
when issuing curl
requests To use curl
with Bright Data SOCKS5 proxies, you have to explicitly:
- Add
-x
to your command line parameters - Use SOCKS5h protocol for remote DNS lookup
- Use proxy address as
brd.superproxy.io:22228
- Provide Bright Data proxy zone credentials
- Residential and Mobile proxies: Add curl
-k
option to ignore SSL errors proxies or Setup SSL Certificate
Requests which do not comply with all the above are blocked.
Examples curl
command:
Troubleshooting with curl
We recommend using curl
to troubleshoot your SOCKS5
requests, and adding curl
options -i
or -v
for printing header fields. Look for x-brd-error
, x-brd-err-code
and x-brd-err-msg
for elaborated error messages sent by Bright Data proxy networks.
To see our full error catalog (for HTTP
and HTTPS
as well) visit this page: Proxy errors troubleshooting
SOCKS5 Authentication configuration
The authentication is done also similarly to HTTP
and HTTPS
by relaying the user and password for the proxy access.
Some tools or utilities will give you place to input the credentials and port separately as parameters, as seen in the control panel, and some will require you to provide a url with the credentials delimited single parameter: userName:password@brd.superproxy.io:22228
.
SOCKS5 Geo-location & country selection
Location setting is identical to HTTP/HTTPS proxies geo-targeting and is set by adding -country-[country code]
to your SOCKS5 username.
Example for curl
command to get a SOCKS5 proxy in Italy (country code: it
):
Difference between SOCKS5 and SOCKS5h
The difference between SOCKS5 and SOCKS5h lies in how they handle DNS (Domain Name System) resolution:
-
SOCKS5: In the standard SOCKS5 proxy, the client resolves the DNS. This means that the domain name (e.g.,
example.com
) is resolved into an IP address before it is passed through the proxy. The proxy then routes traffic to the resolved IP address. -
SOCKS5h: The “h” stands for “hostname.” In this case, the proxy server resolves the DNS. The client sends the domain name (not the IP address) to the proxy server, which resolves it and forwards the request. This is useful if you want to hide the destination domain names from the client’s network.
To summarize:
- SOCKS5: DNS resolution happens on the client-side.
- SOCKS5h: DNS resolution happens on the proxy-side.
Bright Data supports proxy side SOCKS5h - choose what works best for your requirements.
Was this page helpful?