Hi Guys
Here is a simple tutorial of how to install / reinstall Teaspeak MusicBot
and how to configure a Danted Proxy Server to use with youtube-dl
(prevent / avoid frequent ip block by youtube when using TeaMusicBot).
ToC
Re/Install the TeaSpeak music bot and its dependencies:
Setup a socks 5 proxy with Danted:
Output example of the command:
If it looks like this, Danted proxy server should now be correctly configured
Disable IPv6 on your server
Configure YouTubeDL to use a proxy server
----------------------------------------------------
AutoStart Danted Proxy in system boot:
(Recommended Systems: Debian 9+ / Ubuntu 18+)
Hope it helps somebody
Regards
Here is a simple tutorial of how to install / reinstall Teaspeak MusicBot
and how to configure a Danted Proxy Server to use with youtube-dl
(prevent / avoid frequent ip block by youtube when using TeaMusicBot).
ToC
- Re/Install the TeaSpeak music bot and its dependencies
- Setup a socks5 proxy with Danted
- Disable IPv6 on your server
- Configure YouTubeDL to use a proxy server
Re/Install the TeaSpeak music bot and its dependencies:
-
Code:
su - teaspeak # Assuming your TeaSpeak user is called teaspeak
-
Code:
./install_music.sh install -youtube-dl -ffmpeg -y
Setup a socks 5 proxy with Danted:
-
Code:
apt update
-
Code:
apt install dante-server
-
Code:
nano /etc/init.d/danted
Code:#! /bin/sh ### BEGIN INIT INFO # Provides: danted # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: SOCKS (v4 and v5) proxy daemon (danted) # Description: Starts or stops the Dante SOCKS proxy daemon. # Its configuration is stored in the /etc/danted.conf file; # see the danted.conf(5) manual page for details. ### END INIT INFO # # dante SOCKS server init.d file. Based on /etc/init.d/skeleton: # Version: @(#)skeleton 1.8 03-Mar-1998 [email protected] . /lib/lsb/init-functions PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/sockd NAME=danted DESC="Dante SOCKS daemon" PIDFILE=/var/run/$NAME.pid CONFFILE=/etc/$NAME.conf test -f $DAEMON || exit 0 set -e # This function makes sure that the Danted 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 --oknodo --pidfile $PIDFILE \ --exec $DAEMON -- -D echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE \ --exec $DAEMON 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. # # If the daemon responds to changes in its config file # directly anyway, make this a do-nothing entry. # 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) if ! egrep -cve '^ *(#|$)' \ -e '^(logoutput|user\.((not)?privileged|libwrap)):' \ $CONFFILE > /dev/null then configured='' else configured='1' fi if start-stop-daemon --status --quiet --pidfile $PIDFILE \ --exec $DAEMON; then if [ -n "$configured" ]; then echo "$DESC running" else echo "$DESC running, yet not configured?!" fi else if [ -n "$configured" ]; then echo "$DESC not running" else echo "$DESC not configured" fi fi ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0
-
Code:
chmod +x /etc/init.d/danted
-
Code:
update-rc.d danted defaults
Code:systemctl status danted # Get the danted server status systemctl start danted # Start the danted server systemctl stop danted # Stop the danted server
- check the server interface:
Code:ip a[code] [*]Before edit the configuration file, you must make a backup: [code]mv /etc/danted.conf /etc/danted.conf.bak
-
Code:
nano /etc/danted.conf
Code:logoutput: /var/log/socks.log internal: eth0 port = 1080 external: eth0 clientmethod: none socksmethod: none user.privileged: root user.notprivileged: nobody client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error connect disconnect } client block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error connect disconnect } socks block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error }
and the port 1080 (tcp) can be edited to the port you want. - Start Danted proxy:
Code:systemctl start danted
- Check if it is running:
Code:systemctl status danted
- Dante Socks5 proxy check example:
Code:curl -x socks5://your_server_ip:1080 ifconfig.co
Output example of the command:
Code:
root@your_server:~# curl -x socks5://192.168.0.1:1080 ifconfig.co
192.168.0.1
Disable IPv6 on your server
-
Code:
nano /etc/sysctl.conf
- Add and save:
Code:net.ipv6.conf.all.disable_ipv6 = 1
-
Code:
sysctl -p
Configure YouTubeDL to use a proxy server
- Go to /home/teaspeak/providers
- Open "config_youtube.ini" file
- Edit like this and save:
Code:youtubedl_command=/home/teaspeak/providers/bin/youtube-dl --proxy socks5://your_server_ip:1080
----------------------------------------------------
AutoStart Danted Proxy in system boot:
-
Code:
crontab -e
Code:@reboot sleep 5 && systemctl start danted
(Recommended Systems: Debian 9+ / Ubuntu 18+)
Hope it helps somebody
Regards
Last edited: