How to Set Up a SOCKS5 Proxy in Python?

Lewis Kerr - Aug 19 - - Dev Community

‌SOCKS5 proxy is a proxy protocol that plays an intermediary role between the front-end machine and the server machine that communicate using the TCP/IP protocol. It can enable the front-end machine in the internal network to access the server in the Internet, or make the communication more secure. ‌SOCKS5 proxy server simulates the behavior of a front-end by forwarding the request sent by the front-end to the real target server. ‌

What are the benefits of using a SOCKS5 proxy?

There are many benefits to using a SOCKS5 proxy, mainly including:

  1. Improve access speed and quality: By optimizing routing, reduce data transmission delays, and improve user experience.

  2. Enhance security and privacy protection: Hide the real IP address, prevent malicious attacks and data theft, and support encryption technology to ensure data transmission security.

  3. Support multiple protocols and traffic: SOCKS5 proxy is not limited to a specific protocol and can handle any type of traffic, suitable for a variety of application scenarios.

  4. Break through geographic restrictions: Allow users to access blocked or geographically restricted websites and services.

  5. Authentication and access control: Support multiple authentication methods to ensure that only authorized users can use proxy services and increase the security of access control.

These advantages make SOCKS5 proxies a popular choice for a variety of network activities.

Configure SOCKS5 proxy using Python

The following is a sample code to configure SOCKS5 proxy using Python:

import socks
import socket
import requests

# Setting up a SOCKS5 proxy
socks.set_default_proxy(socks.SOCKS5, "IP address", Port)
socket.socket = socks.socksocket

# Send HTTP requests using the requests library
response = requests.get("http://example.com")
print(response.text)
Enter fullscreen mode Exit fullscreen mode

In this example, the ‌socks library is used to set up a SOCKS5 proxy, and the ‌requests library is used to send HTTP requests. ‌ You need to replace the "IP address" and port with the actual IP address and port you obtained. ‌
If you don't have the socks library installed, you can install it via pip:
pip install PySocks

A simple case: setting up SOCKS5 proxy for web scraping

Take Python as an example, if you are using the requests library to scrap web pages, you can specify the SOCKS5 proxy by setting the proxies parameter. Here is a simple example:

import requests

# The IP address and port of the SOCKS5 proxy server
socks_proxy = 'socks5://IP address:9050'

# Setting proxies parameters
proxies = {
    'http': socks_proxy,
    'https': socks_proxy,
}

# Send Request
response = requests.get('http://example.com', proxies=proxies)

# Print the response content
print(response.text)

Enter fullscreen mode Exit fullscreen mode

In this example, we assume that you have a SOCKS5 proxy server running on localhost, listening on port 9050. We set the proxy for HTTP and HTTPS protocols to this SOCKS5 proxy through the proxies dictionary. Then, we use the requests.get() method to send the request and pass the proxy settings through the proxies parameter.

If you are using another programming language or library, the method for setting up a SOCKS5 proxy may be different. You will need to consult the relevant documentation to learn how to set up a proxy in that language or library.

Also, if you need authentication to use the SOCKS5 proxy, you may need to include the username and password in the proxy URL, in the following format:

socks5://username:password@IP address:9050
Enter fullscreen mode Exit fullscreen mode

Please make sure to replace username and password with your actual username and password.

How to test whether Socks5 proxy is configured successfully?

To test whether the proxy is configured successfully, you can use the following methods:

  • Connection test: Use telnet or other tools to try to connect to the specified port of the proxy server.

  • Network tool verification: Set proxy parameters through browser extensions (such as SwitchyOmega, FoxyProxy) or command line tools (such as curl, wget) to test whether the network connection is through the proxy.

  • Visit specific websites: Visit some websites that can display the current IP address (such as https://www.whatismyip.com/) to check whether the displayed IP address is the same as the configured proxy IP address.

  • View the proxy server log: If you have permission to access the proxy server, you can view the proxy server's log file to confirm whether there is a connection log indicating that the proxy has accepted the request. ‌

  • Use third-party proxy detection tools‌:‌ These tools usually provide comprehensive proxy IP detection functions,‌ including connection tests,‌ anonymity tests,‌ and can automatically verify the availability of proxy IP addresses.‌

During web scraping, it is beneficial to use a SOCKS5 proxy. As a network protocol, SOCKS5 proxy allows users to access specific target websites through proxy servers, hiding the real access source, thereby improving the effect and success rate of data collection.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .