lozyme/sockd

By lozyme

Updated over 3 years ago

Another Danted--Socks5 Proxy Server (Using Pam Auth)

Image
7

10K+

Sockd

Dante socks5 server (v1.3.2/v1.4.2) auto-install and management script

About

To build a socks5 server, we have lots of open-source programs to reach that, Dante is one of them. I have been using Dante for years and starting to write this auto-install and management script two years ago. This is the second update to match the systemd and new OS release like Debian 8 , CentOS 7.

Comparing with the apt-get or building from source manually, this script will benefit you bellow

  • Auto-recognize, detect the machine's system automatically and compile from source code.
  • Auto-config, check the system's network or read from argument to auto-generate config file.
  • Same-rotation, in multi-ipaddr system. It works like when using different ip address to connect socks5, your external ip address will be different. That's the main reason why I using Dante for years.
  • Multi-authorization, you can configure authorization by pam, system or using whitelist.
  • Docker support [New]
  • Support Dante Latest version 1.4.2 [New]

Install by Docker

Docker Run
# sockd.passwd is a `htpasswd` file contains socks5 auth user/password. 
docker run -d \
    --name sockd \
    --publish 2020:2020 \
    --volume sockd.passwd:/home/danted/conf/sockd.passwd \
    lozyme/sockd
Docker Compose

Generate compose

#
# wget https://raw.githubusercontent.com/Lozy/danted/dev/docker/docker-compose.yaml
#
version: '3'

services:

  sockd:
    image: lozyme/sockd
    restart: always
    ports:
      - 2020:2020
    volumes:
      - sockd.passwd:/home/danted/conf/sockd.passwd
      # - sockd.conf:/home/danted/conf/sockd.conf

Run

docker-compose up -d

Check

ss -lnp | grep 2020

User Show/Add/Modify/Delete

[Show]          $docker exec docker_sockd_1 script/pam show
[Add/Modify]    $docker exec docker_sockd_1 script/pam add USER PASSWORD
[Delete]        $docker exec docker_sockd_1 script/pam del USER

You should run bellow to change default password

docker exec docker_sockd_1 script/pam add sockd sockd

Verify

curl https://ifconfig.co --socks5 127.0.0.1:2020 --proxy-user sockd:sockd

Install by Script

wget --no-check-certificate https://raw.github.com/Lozy/danted/master/install.sh -O install.sh 
bash install.sh

# run with options: bash install.sh option1 option2
bash install.sh --ip="A.A.A.A:B.B.B.B" --port=2016 --user=sockd --passwd=sockd --whitelist="X.X.X.X/32"

  • if you want to uninstall, using this command
bash install.sh --uninstall
  • if you want to add user
/etc/init.d/sockd adduser USERNAME PASSWORD

Options

Long OptionShort OptionValue referdescription
--ip=ip address list (a.a.a.a:b.b.b.b) *#change ';' to ':' *Socks5 Server Ip address
--port=Default: 2016port for dante socks5 server
--version=Default: 1.3.2dante server version, latest is 1.4.2
--user=Pam-Auth UsernameSocks5 Auth user
--passwd=Pam-Auth PasswordSocks5 Auth passwd
--whitelist=whitelist ip range (a.a.a.a/32:b.b.b.b/32)Socks5 Auth IP list
--whitelist-url=online white list file (url)Socks Auth whitelist http online
--from-package-p--Install package from Bin package
--update-whitelist-u--update white list
--force-f--force install sockd
--help-h--print help info

Management

commandoptiondescription
service sockd start/etc/init.d/sockd startstart socks5 server daemon
service sockd stop/etc/init.d/sockd stopstop socks5 server daemon
service sockd restart/etc/init.d/sockd restartrestart socks5 server daemon
service sockd reload/etc/init.d/sockd reloadreload socks5 server daemon
service sockd statussystemd process status
service sockd state/etc/init.d/sockd staterunning state
service sockd tail/etc/init.d/sockd tailsock log tail
service sockd adduser/etc/init.d/sockd adduseradd pam-auth user: service sockd adduser NAME PASSWORD
service sockd deluser/etc/init.d/sockd deluserdelete pam-auth user: service sockd deluser NAME

Test Pass

OS releasePlatformProviderResult
Debian GNU/Linux 8 (jessie)x86_64vultrpass
Debian GNU/Linux 7 (wheezy)x86_64vultrpass
Debian GNU/Linux 7 (wheezy)i686vultrpass
Ubuntu 16.10 (Yakkety Yak)x86_64vultrpass
Ubuntu 14.04.5 LTSi686vultrpass
CentOS Linux 7 (Core)x86_64vultrpass
CentOS Linux 6x86_64vultrpass
CentOS Linux 6i686vultrpass

Docker Pull Command

docker pull lozyme/sockd