Installing and Configuring Dante SOCKS5 Proxy Server on Ubuntu

Dante SOCKS5 setup on Ubuntu: configuration, systemd fixes, and authentication.

SOCKS is a network protocol that enables client-server applications to transparently access services behind firewalls. Standing for “SOCKet Secure,” SOCKS is application-layer agnostic (OSI Layer 7) and operates at the session layer (Layer 5), routing traffic via TCP/IP.

What is a SOCKS proxy server?

Despite being established for decades, SOCKS remains a highly relevant alternative to HTTP proxies. It is protocol-independent: SOCKS4 supports TCP, while SOCKS5 extends this to both TCP and UDP. As a circuit-level gateway, a SOCKS proxy simply relays data between the client and the server without inspecting the underlying payload. This transparency allows it to handle any application-layer traffic, including HTTP, FTP, SMTP, POP3, and NNTP.

Since SOCKS relays all data between the client and the server without modification or header injection, the destination web server perceives the proxy as the originating client. Consequently, SOCKS proxies provide inherent high-level anonymity, as they do not leak the client’s original IP address or reveal the proxy’s presence through specialized headers.

When comparing HTTP and SOCKS5 proxies, SOCKS5 is generally the superior choice. It offers enhanced anonymity, a more robust feature set—including UDP support and various authentication methods—and universal compatibility with any application or protocol that supports proxying.

Dante Features

Dante is a stable, open-source SOCKS proxy server. In this guide, you will learn how to install and configure the Dante SOCKS proxy on a remote VPS. For projects where resource minimization is important, Dante is an excellent choice. It’s written in C, is extremely stable, and uses minimal RAM, making it ideal for use on low-cost VPS.

While the core server is free, certain advanced features are available as paid commercial modules. For instance, the Bandwidth Control module is priced at EUR 400.

To deploy your own SOCKS server, you will first need to provision a budget-friendly VPS and perform the initial setup.

Quick Installation of Dante Server on Ubuntu 24 LTS

For Ubuntu distributions newer than 18.04.4 LTS—specifically tested on Ubuntu 20.04.1 LTS (Focal), 22.04 LTS (Jammy), and 24.04 (Noble Numbat)—Dante Server is available out-of-the-box and can be installed directly from the official repositories.

Update the system repositories and install the necessary package:

sudo apt update && sudo apt install dante-server -y

Next, we need to wipe the default configuration and replace it with our own. You can overwrite the file using this single command:

cat <<EOF | sudo tee /etc/danted.conf
logoutput: syslog
user.privileged: root
user.unprivileged: proxy
 
internal: 0.0.0.0 port = 2080
external: $(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -n 1)
 
socksmethod: username
clientmethod: none
 
client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
}
 
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    user: iryna
}
EOF

Note: If your server’s network interface is named something other than eth0 (uncommon but possible), the service may return an error or fail to start. However, eth0 remains the standard for 99% of VPS/VDS environments. To verify your interface name, run: ip link show or ip addr

Creating a Proxy User and Launching the Service. Create a dedicated user (e.g., proxystaff01) with a non-login shell for security, then set a password:

sudo useradd -m -s /usr/sbin/nologin proxystaff01 && sudo passwd proxystaff01

The system will prompt you to enter the password twice. Ensure you use a strong, unique password and store it securely.

Allow the proxy port through the firewall (UFW), then restart the Dante service and enable it to start on boot:

sudo ufw allow 2080/tcp
sudo systemctl restart danted && sudo systemctl enable danted

How to Use Your New Proxy

Launch the Dolphin {anty} browser, create a new profile, and navigate to the “Proxy” section. Select SOCKS5 as the proxy type and enter the following connection details:

FieldValue
Proxy TypeSOCKS5
IP AddressYour VPS server’s public IP
Port2080
Loginproxystaff01
PasswordThe password you created in the previous step
How add SOCKS proxy to Dolphin anty.
How add SOCKS proxy to Dolphin anty.

Troubleshooting Common Issues

If the Dante service fails to start or behaves unexpectedly, you need to identify the root cause. The most effective way to do this is by running the daemon manually in the foreground to view the real-time debug output.

1. Manual Debugging

Run the following command to see detailed error messages:

danted

Common Error: Authentication Not Configured If you see the following log entry, it means your configuration lacks a valid authentication method:

warning: checkconfig(): no socks authentication methods enabled. This means all socks requests will be blocked after negotiation

This alert indicates that while the server is running, it will reject all incoming traffic because it doesn’t know how to verify the user. Ensure your danted.conf includes socksmethod: username (or none for an open proxy).

2. Resolving “Read-only file system” Errors

In recent Ubuntu versions, systemd sandboxing may prevent Dante from writing to its log file, even if the permissions are correct. You might encounter an error like this:

alert: configparsing(): could not (re)open logfile "/var/log/socks.log": Read-only file system

To fix this, you must modify the systemd service unit to allow write access to the /var/log/ directory.

Step-by-step fix:

  1. Open the service file: sudo nano /lib/systemd/system/danted.service
  2. Locate the line starting with ReadOnlyDirectories and add ReadWriteDirectories=/var/log at the end of the section. It should look like this: InaccessibleDirectories=/boot /home /media /mnt /opt /root ReadOnlyDirectories=/bin /etc /lib -/lib64 /sbin /usr /var ReadWriteDirectories=/var/log
  3. Save the file and exit (Ctrl+O, Enter, Ctrl+X).

Apply the changes and restart the service:

sudo systemctl daemon-reload
sudo systemctl restart danted

Summary of Debugging Commands

ActionCommandPurpose
Manual StartdantedView immediate configuration errors.
Check Logsjournalctl -u dantedView the service’s historical logs.
Reload Configsystemctl daemon-reloadUpdate systemd after editing .service files.

Rork

Linux hobbyist into networking and digital privacy. I use this hub to translate and store technical notes on sysadmin tasks and anonymity tools. Tech should work for people, not the other way around.

Rate author
Add a comment