Email
Enterprise Service
menu
Email
Enterprise Service
Submit
Basic information
Waiting for a reply
Your form has been submitted. We'll contact you in 24 hours.
Close
Home/ Blog/ How to build a Socks5 proxy server on Linux?

How to build a Socks5 proxy server on Linux?

Author:PYPROXY
2025-01-13

A socks5 proxy server is an essential tool for enhancing privacy and bypassing geographical restrictions online. By routing traffic through a remote server, it allows users to access websites and services securely and anonymously. Setting up a Socks5 proxy on Linux provides a powerful, flexible solution for developers, system administrators, and privacy-conscious users. This article will guide you through the steps to set up and configure a socks5 proxy server on a Linux machine, ensuring you can fully leverage its potential for secure internet access, regardless of your location.

Understanding Socks5 Proxy

Before diving into the setup process, it is important to understand what Socks5 is and how it differs from other proxy protocols. Socks5 is a more advanced version of the older Socks4 protocol. Unlike HTTP or HTTPS proxies, Socks5 can handle all types of internet traffic, including TCP and UDP connections. It is also highly flexible, supporting features like authentication and DNS resolution, making it more secure and adaptable for various use cases.

The main advantage of using a Socks5 proxy is its ability to mask the user’s IP address while allowing them to access websites and services as if they were in a different location. Additionally, since Socks5 doesn't modify the data being transmitted, it is generally faster and more reliable compared to other proxy types.

Prerequisites for Setting Up Socks5 Proxy on Linux

Before starting the configuration process, make sure your Linux machine meets the following requirements:

1. Root access: You need to have root or sudo privileges to install and configure the necessary software.

2. A Linux distribution: This tutorial assumes you're using a Debian-based distribution like Ubuntu. However, similar steps can be followed for other Linux distributions with minor differences.

3. An open port: A port needs to be available on your server to run the proxy service.

Step 1: Installing the Socks5 Proxy Server Software

The first step in setting up a Socks5 proxy on Linux is to install the required software. One of the most commonly used tools for this purpose is Dante, a highly configurable Socks5 server. To install Dante, follow these steps:

1. Update your package list: It’s important to make sure your system is up-to-date. Run the following command to update the package index:

```bash

sudo apt-get update

```

2. Install Dante: You can install Dante using the following command:

```bash

sudo apt-get install dante-server

```

This will install both the client and server components necessary for the Socks5 service.

Step 2: Configuring Dante

Once Dante is installed, the next step is to configure it to run as a Socks5 server. The main configuration file for Dante is usually located in `/etc/danted.conf`.

1. Open the configuration file: Open the configuration file in a text editor, for example:

```bash

sudo nano /etc/danted.conf

```

2. Configure the proxy settings: Below is a simple configuration that will allow clients to connect via Socks5. Add the following lines to the configuration file:

```bash

logoutput: /var/log/danted.log

internal: eth0 port = 1080

external: eth0

method: username none

user.notprivileged: nobody

clientmethod: none

socksmethod: none

```

In this configuration:

- `internal: eth0 port = 1080` specifies the network interface (`eth0`) and the port (1080) to listen on.

- `external: eth0` tells Dante to bind the external interface.

- `method: username none` disables authentication, but you can configure user authentication for more security.

- `socksmethod: none` disables Socks5 authentication methods for simplicity, but you can enable various forms of authentication if desired.

3. Save the file: After editing the configuration, save the changes and close the editor.

Step 3: Starting the Socks5 Server

Once the configuration is complete, it’s time to start the Socks5 server. Use the following command to start the Dante server:

```bash

sudo systemctl start danted

```

To ensure that the server starts automatically on system boot, use:

```bash

sudo systemctl enable danted

```

To check the status of the server, use the following command:

```bash

sudo systemctl status danted

```

This will display whether the service is running correctly.

Step 4: Configuring Firewall Settings

If you have a firewall running on your Linux machine, you’ll need to allow traffic on the port that your Socks5 proxy server is listening to (port 1080 in this case). To open the port on Ubuntu, use the following commands:

1. Allow traffic on port 1080:

```bash

sudo ufw allow 1080

```

2. Reload the firewall:

```bash

sudo ufw reload

```

Now, the Socks5 proxy server will be accessible on the specified port.

Step 5: Testing the Socks5 Proxy Server

To test the functionality of your Socks5 server, you can use various tools such as a web browser or a command-line utility like `curl`. Here's how to test it using `curl`:

```bash

curl --proxy socks5://your_server_ip:1080 http://pyproxy.com

```

This command will route the request through your Socks5 proxy server. If the setup is successful, you should receive the output from the `example.com` page, indicating that your proxy server is working correctly.

Step 6: Securing Your Socks5 Proxy Server

Although your Socks5 proxy server is functional, it’s important to secure it to prevent unauthorized access. Here are a few ways to secure your setup:

1. Enable Authentication: You can enable username/password authentication by modifying the `danted.conf` file:

```bash

method: username

socksmethod: username

```

Then, configure users in the `/etc/passwd` file or a custom user database.

2. Limit Access to Specific IPs: You can restrict which IP addresses are allowed to connect to your proxy. For example, to allow only a specific IP range, add the following line to `danted.conf`:

```bash

client pass {

from: 192.168.1.0/24 to: 0.0.0.0/0

}

```

This limits access to clients from the IP range `192.168.1.0/24`.

3. Enable Firewall Restrictions: Ensure that only trusted IPs can access the proxy by configuring additional firewall rules.

Conclusion

Setting up a Socks5 proxy server on Linux is an excellent way to secure your internet traffic and bypass regional restrictions. By following the steps outlined in this guide, you can quickly deploy a Socks5 server using the Dante software. Whether you're protecting your privacy or optimizing network performance, a properly configured Socks5 proxy offers enhanced control and security. Additionally, with options for user authentication and firewall rules, you can further safeguard your setup against unauthorized access.