Created
April 13, 2018 17:15
-
-
Save jivoi/92b393ef168a8f5434bd7f4b527ab2b6 to your computer and use it in GitHub Desktop.
dante_socks5_server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo apt-get install checkinstall build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libgtk2.0-dev libnotify-dev libglib2.0-dev libevent-dev | |
wget https://www.inet.no/dante/files/dante-1.4.2.tar.gz | |
./configure | |
make | |
sudo checkinstall | |
sudo dpkg -i dante_1.4.2-1_amd64.deb | |
# /etc/sockd.conf | |
# logoutput: syslog | |
user.privileged: root | |
user.unprivileged: nobody | |
# The listening network interface or address. | |
internal: 0.0.0.0 port=1080 | |
# The proxying network interface or address. | |
external: eth0 | |
# socks-rules determine what is proxied through the external interface. | |
# The default of "none" permits anonymous access. | |
socksmethod: username | |
# client-rules determine who can connect to the internal interface. | |
# The default of "none" permits anonymous access. | |
clientmethod: none | |
client pass { | |
from: 0.0.0.0/0 to: 0.0.0.0/0 | |
log: connect disconnect error | |
} | |
socks pass { | |
from: 0.0.0.0/0 to: 0.0.0.0/0 | |
log: connect disconnect error | |
} | |
# cat /etc/init.d/sockd | |
#! /bin/sh | |
### BEGIN INIT INFO | |
# Provides: sockd | |
# Required-Start: $remote_fs $syslog | |
# Required-Stop: $remote_fs $syslog | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: Start the dante SOCKS server. | |
# Description: SOCKS (v4 and v5) proxy server daemon (sockd). | |
# This server allows clients to connect to it and | |
# request proxying of TCP or UDP network traffic | |
# with extensive configuration possibilities. | |
### END INIT INFO | |
# | |
# dante SOCKS server init.d file. Based on /etc/init.d/skeleton: | |
# Version: @(#)skeleton 1.8 03-Mar-1998 [email protected] | |
# Via: https://gitorious.org/dante/pkg-debian | |
PATH=/sbin:/usr/sbin:/bin:/usr/bin | |
NAME=sockd | |
DAEMON=/usr/local/sbin/$NAME | |
DAEMON_ARGS="-D" | |
PIDFILE=/var/run/$NAME.pid | |
SCRIPTNAME=/etc/init.d/$NAME | |
DESC="Dante SOCKS daemon" | |
CONFFILE=/etc/$NAME.conf | |
# Exit if the package is not installed | |
[ -x "$DAEMON" ] || exit 0 | |
# Load the VERBOSE setting and other rcS variables | |
. /lib/init/vars.sh | |
# Define LSB log_* functions. | |
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present | |
# and status_of_proc is working. | |
. /lib/lsb/init-functions | |
set -e | |
# This function makes sure that the Dante server can write to the pid-file. | |
touch_pidfile () | |
{ | |
if [ -r $CONFFILE ]; then | |
uid="`sed -n -e 's/[[:space:]]//g' -e 's/#.*//' -e '/^user\.privileged/{s/[^:]*://p;q;}' $CONFFILE`" | |
if [ -n "$uid" ]; then | |
touch $PIDFILE | |
chown $uid $PIDFILE | |
fi | |
fi | |
} | |
case "$1" in | |
start) | |
if ! egrep -cve '^ *(#|$)' \ | |
-e '^(logoutput|user\.((not)?privileged|libwrap)):' \ | |
$CONFFILE > /dev/null | |
then | |
echo "Not starting $DESC: not configured." | |
exit 0 | |
fi | |
echo -n "Starting $DESC: " | |
touch_pidfile | |
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ | |
|| return 1 | |
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ | |
$DAEMON_ARGS \ | |
|| return 2 | |
echo "$NAME." | |
;; | |
stop) | |
echo -n "Stopping $DESC: " | |
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME | |
RETVAL="$?" | |
[ "$RETVAL" = 2 ] && return 2 | |
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON | |
[ "$?" = 2 ] && return 2 | |
echo "$NAME." | |
;; | |
reload|force-reload) | |
# | |
# If the daemon can reload its config files on the fly | |
# for example by sending it SIGHUP, do it here. | |
# | |
# Make this a do-nothing entry, if the daemon responds to changes in its config file | |
# directly anyway. | |
# | |
echo "Reloading $DESC configuration files." | |
start-stop-daemon --stop --signal 1 --quiet --pidfile \ | |
$PIDFILE --exec $DAEMON -- -D | |
;; | |
restart) | |
# | |
# If the "reload" option is implemented, move the "force-reload" | |
# option to the "reload" entry above. If not, "force-reload" is | |
# just the same as "restart". | |
# | |
echo -n "Restarting $DESC: " | |
start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON | |
sleep 1 | |
touch_pidfile | |
start-stop-daemon --start --quiet --pidfile $PIDFILE \ | |
--exec $DAEMON -- -D | |
echo "$NAME." | |
;; | |
status) | |
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? | |
;; | |
*) | |
N=/etc/init.d/$NAME | |
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 | |
echo "Usage: $N {start|stop|restart|status|force-reload}" >&2 | |
exit 1 | |
;; | |
esac | |
exit 0 | |
# update-rc.d sockd defaults | |
# /etc/init.d/sockd start | |
curl -v -x socks5://user:pass@<IP>:1080 http://www.google.com/ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment