Skip to content

Instantly share code, notes, and snippets.

@sigorilla
Last active April 19, 2018 21:08
Show Gist options
  • Select an option

  • Save sigorilla/67195b748dc98c01cae7566aaf0492ef to your computer and use it in GitHub Desktop.

Select an option

Save sigorilla/67195b748dc98c01cae7566aaf0492ef to your computer and use it in GitHub Desktop.
SOCKS5

Setup SOCKS5

Prerequisites

Create DO droplet

I use next configuration. Price is 5$/month.

System: Ubuntu 17.10 x64

Configuration: 1 GB RAM, 1 vCPU, 25 GB SSH, 1 TB transfer

Datacenter: Germany or other Europe contry

Also you can choose if needed:

  • IPv6
  • Monitoring

After creating droplet you get root password on your email.

ssh root@IP_OF_YOUR_DROPLET
# ... follow instractions to change password

Where IP_OF_YOUR_DROPLET

Install dependencies

apt-get update
apt-get upgrade
apt-get install dante-server

mkdir /var/log/socks5

Configuration

Paste next configuration to /etc/danted.conf.

# $Id: sockd.conf,v 1.52.10.2 2014/09/03 14:49:13 michaels Exp $

errorlog: /var/log/socks5/error.log
logoutput: /var/log/socks5/output.log

# Level of logging (0 - none, 1 - info, 2 - verbose).
# debug: 2

internal.protocol: ipv6 ipv4
internal: eth0 port = 1080
external.protocol: ipv6 ipv4
external: eth0

socksmethod: username
user.privileged: root
user.unprivileged: nobody

client pass {
    from: 0/0 port 1-65535 to: 0/0
    log: error
    socksmethod: username
}

socks pass {
    from: 0/0 to: 0/0
    command: bind connect udpassociate
    log: error
    socksmethod: username
}

socks pass {
    from: 0/0 to: 0/0
    command: bindreply udpreply
    log: error
}

Start SOCKS5

service danted start

Add user

useradd --shell /usr/sbin/nologin USERNAME
# Setup password and remember it.
passwd USERNAME

Where USERNAME is your own username for connection.

Telegram connection

Host: IP_OF_YOUR_DROPLET

Port: 1080

Username: USERNAME

Password: password from previous step

Or use Telegram configuration link: tg://socks?server=IP_OF_YOUR_DROPLET&port=1080&user=USERNAME&pass=PASSWORD.

Advanced usage

Additional ports

netstat -nltA inet
# Get local ipv4 from 10.*.*.*
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.*.*.*:1080

You can change 80 for your port (ex. 3000 or whatever else).

Status

service danted status

Logs

# Output
cat /var/log/socks/output.log
# Errors
cat /var/log/socks/error.log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment