SOCKS (Socket Secure) is an Internet communication protocol that is used as a circuit-level proxy for applications. A SOCKS proxy differs from ‘regular’ proxies as it is an application proxy.
What You’ll Learn
The SOCKS protocol is similar to setting up an IP tunnel with a firewall, with the firewall initiating the protocol requests:
- The client application contacts the SOCKS proxy server.
- A proxy connection is negotiated by messages defined by the SOCKS protocol being exchanged.
- Once a connection has been established, the client uses the SOCKS protocol to communicates with the SOCKS server.
What is the use of a SOCKS proxy?
One of the primary uses of a SOCKS proxy is to bypass Internet restrictions and censorship. Networks are often monitored and block access to social media, games, and anything else that isn’t relevant.
A SOCKS proxy can also be used to access services that are limited to specific countries, e.g., BBC iPlayer which is only available from a UK IP address, and Netflix which has significantly more content in the US.
Using a SOCKS5 proxy when torrenting can provide fast download speeds while adding a layer of protection against copyright holders. Many BitTorrent clients support a weak form of encryption when using SOCKS 5, which prevents further obstacles.
The protection offered by SOCKS5 torrenting is not as good as that of a VPN (Virtual private networks) but it’s better than nothing. There is no encryption for SOCKS proxies, but they do hide your public IP address.back to menu ↑
How does a SOCKS proxy work?
HTTP proxies are designed to work with a web browser, while a SOCKS proxy has more general application. SOCKS resides on the higher levels of the OSI model, below SSL and above TCP and UDP. It has several advantages.
TCP (Transmission Control Protocol) forms a physical connection between the client and server to guarantee that all packets arrive at the destination in the same order they were sent. All content is put into a fixed format to do this.
UDP (User Datagram Protocol) uses the Domain Name System (DNS) to allow the translation of URLs into IP addresses.
When combining TCP and UDP connections, a more flexible and reliable experience is created. Thus, a SOCKS proxy can handle different request types including HTTPS, HTTP, SMTP, POP3, and FTP.
It means SOCKS can be used for web browsing, email, peer-to-peer and more in a somewhat anonymous manner. When connecting to a website through a SOCKS proxy, it routes your data through its proxy server, creating a path through the network’s firewall. It assigns an IP address to the user, which makes it appear as if they’re browsing from a different location.
SOCKS5 does provide methods of authentication, although it does not handle encryption. This authentication removes many of the security concerns of SOCKS4.back to menu ↑
Types of SOCKS proxies
There are three SOCKS versions: SOCKS4, SOCKS4a, and SOCKS5. Here are the main differences between them:
- While SOCKS v4 can’t operate in networks without a local DNS, SOCKS v5 can.
- SOCKS5 transfers data via TCP connection and UDP, which enables it not to use some protocols.
- They can perform authentication of a server and client, SOCKS4 can’t.
- SOCKS5 is capable of processing network addresses via IPv6.
- SOCKS4a, unlike SOCKS4, allows the proxy client to specify a destination domain name rather than an IP address.
Where to find SOCKS proxies?
Some services offer access to premium SOCKS proxies (mostly SOCKS5), but you may also find free SOCKS proxies (open proxies).
You should first check my proxy tools page. You will find out there several private proxy services and even sites that list free SOCKS5 and SOCKS4 proxies. Additionally, you may get access to SOCKS proxies by searching Google on “socks proxy,” “free SOCKS5 proxies,” “SOCKS5 proxy servers,” or “socks5 proxy list.”back to menu ↑
How to use a SOCKS proxy
Now, that you have access to a SOCKS4 or SOCKS5 proxy there are three primary ways to use it:
- Enable the networking settings of an application (web browser, torrent client, chat client) to use the proxy.
- Install and configure an application like Proxifier to route all the Internet traffic from your computer through the SOCKS proxy servers.
- Use a proxy browser extension or add-on to do the proxy configuration for you (e.g., FoxyProxy). Unfortunately, this is not a solution to mobile devices. The browser plugins either cannot be installed on mobiles or they do not work.
- Configure the operating system (Windows, Mac OS, Linux) to use the proxy for all applications. An important note regarding SOCKS proxy setup on Windows: if the proxy requires authentication, the setup is not possible at the OS level. It has to be done at the application level.
For example, if you want to set up a SOCKS proxy for the Chrome browser on your Mac you need to perform the following steps (you may find more details on how to use a SOCKS proxy on different browsers here):
- Open the Google Chrome browser.
- Go to Settings > Advanced > System > Open proxy settings. It will open the Network settings of your macOS.
- Select and check SOCKS proxy.
- Fill in the SOCKS Proxy Server IP address and port. Also, if the SOCKS proxy requires authentication, enter the Username and Password.
- Click Ok, and you have completed the setup.
How to set up your own SOCKS proxy (SOCKS server implementations)
Yes, you may set up your SOCKS proxy. To proceed, you need access to a VPS (Virtual Private Server) and some basic knowledge on how to work on Linux operating systems. There are several ways to set up a SOCKS server.
The approach that I recommend is with OpenSSH. OpenSSH allows dynamic creation of tunnels, specified via a subset of the SOCKS protocol, supporting the CONNECT command. The SOCKS proxy server that may be created using OpenSSH allows more flexible proxying than is possible with ordinary port forwarding (available for the regular SSH proxy). You may find a step-by-step tutorial here.
Other SOCKS proxy server implementations include:
- Antinat is a flexible SOCKS client and server library that supports SOCKS 4, SOCKS 4a, SOCKS 5, CHAP, authentication, Win32, XML firewalling, UDP and server chaining.
- 3proxy supports SOCKS 4, SOCKS 4a and SOCKS 5, with comprehensive IPv6 support for Unix, Linux and Windows, and UDP ASSOCIATE. It also converts requests between different proxy types and supports chaining.
- Shadowsocks is a secure SOCKS 5 proxy, explicitly designed to pass through China’s GFW.
- SS5 is a socks server that implements both SOCKS 4 and SOCKS 5.
- WinGate is a multi-protocol proxy server and SOCKS server for MS Windows. It supports SOCKS4, SOCKS4a, and SOCKS5, and includes GSSAPI auth and UDP-ASSOCIATE.
SOCKS proxy security
Security is always a big issue when a proxy is used. Your identity and information are only safe if a secure proxy is used. It is after all one of the main reasons why proxies are used.
SOCKS proxies are more secure than HTTP proxies. HTTP proxies read the data flowing between the client and server, meaning that this data can be recorded. These proxies are smart by nature, so they can keep records of everything that is online.
The exception to this rule is when the HTTP proxy supports the CONNECT method, allowing the proxy to establish a tunnel connection. The connection is secure, safe, and untraceable. HTTPS proxies support this method.
Unlike HTTP proxies, SOCKS proxies do not understand the data transmitted. These proxies have no idea what is passed between a client and a server, making the connection secure, SOCKS proxies use the tunneling method the same way HTTPS proxies do.
While all SOCKS proxies are secure, SOCKS5 is more secure than SOCKS4 since this is a later version of the protocol. Most people do however get all the security they need from either version.back to menu ↑
HTTP vs. SOCKS proxy
HTTP proxies have been designed to handle the HTTP protocol and the specific functions associated with the protocol, and as such, it is prevalent to be used for internet browsing.
Although SOCKS proxies have not been built specifically for the HTTP protocol, they can however still be used for web browsing. SOCKS proxies are more general than what HTTP proxies are, and are considered to be lower-level proxies.
They do however have a clear advantage in that they are not tied to a specific network protocol or port, thereby giving users a lot more flexibility.back to menu ↑
Advantages of using SOCKS5 Proxies for torrenting
SOCKS5 proxies are faster and more secure than HTTP proxies. Thus, they are more suitable for securing torrent downloads.
SOCKS5 proxies support TCP and UDP protocols (both used by BitTorrent clients for P2P communication). Thus, you may get the most of your torrent client by using SOCKS5 proxies (for example, access UDP trackers).
Due to full UDP support, SOCKS5 proxies are faster for downloading torrents as they allow you to connect to the maximum number of peers. Additionally, SOCKS proxies do not rewrite packet headers, reducing the number of possible communication errors.back to menu ↑
SOCKS proxies are mainly used to circumvent internet censorship imposed by ISPs or other restricted networks such as at work and school. These proxies are lower level than HTTP proxies and are application proxies, making them suitable for use in many different scenarios.
SOCKS proxy security is better than that of HTTP proxies as they use the tunneling method the same way HTTPS proxies do.
Numerous different SOCKS proxies cater for different operating systems and environments.