| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #!/bin/sh
- random() {
- tr </dev/urandom -dc A-Za-z0-9 | head -c5
- echo
- }
- array=(1 2 3 4 5 6 7 8 9 0 a b c d e f)
- gen64() {
- ip64() {
- echo "${array[$RANDOM % 16]}${array[$RANDOM % 16]}${array[$RANDOM % 16]}${array[$RANDOM % 16]}"
- }
- echo "$1:$(ip64):$(ip64):$(ip64):$(ip64)"
- }
- install_3proxy() {
- echo "installing 3proxy"
- URL="https://github.com/z3APA3A/3proxy/archive/3proxy-0.8.6.tar.gz"
- wget -qO- $URL | bsdtar -xvf-
- cd 3proxy-3proxy-0.8.6
- make -f Makefile.Linux
- mkdir -p /usr/local/etc/3proxy/{bin,logs,stat}
- cp src/3proxy /usr/local/etc/3proxy/bin/
- cp ./scripts/rc.d/proxy.sh /etc/init.d/3proxy
- chmod +x /etc/init.d/3proxy
- chkconfig 3proxy on
- cd $WORKDIR
- }
- gen_3proxy() {
- cat <<EOF
- daemon
- maxconn 1000
- nscache 65536
- timeouts 1 5 30 60 180 1800 15 60
- setgid 65535
- setuid 65535
- flush
- auth strong
- users $(awk -F "/" 'BEGIN{ORS="";} {print $1 ":CL:" $2 " "}' ${WORKDATA})
- $(awk -F "/" '{print "auth strong\n" \
- "allow " $1 "\n" \
- "proxy -6 -n -a -p" $4 " -i" $3 " -e"$5"\n" \
- "flush\n"}' ${WORKDATA})
- EOF
- }
- gen_proxy_file_for_user() {
- cat >proxy.txt <<EOF
- $(awk -F "/" '{print $3 ":" $4 ":" $1 ":" $2 }' ${WORKDATA})
- EOF
- }
- upload_proxy() {
- local PASS=$(random)
- zip --password $PASS proxy.zip proxy.txt
- URL=$(curl https://bashupload.com/proxy.zip --data-binary proxy.zip)
- echo "Proxy is ready! Format IP:PORT:LOGIN:PASS"
- echo "Download zip archive from: ${URL}"
- echo "Password: ${PASS}"
- }
- gen_data() {
- seq $FIRST_PORT $LAST_PORT | while read port; do
- echo "usr$(random)/pass$(random)/$IP4/$port/$(gen64 $IP6)"
- done
- }
- gen_iptables() {
- cat <<EOF
- $(awk -F "/" '{print "iptables -I INPUT -p tcp --dport " $4 " -m state --state NEW -j ACCEPT"}' ${WORKDATA})
- EOF
- }
- gen_ifconfig() {
- cat <<EOF
- $(awk -F "/" '{print "ifconfig eth0 inet6 add " $5 "/64"}' ${WORKDATA})
- EOF
- }
- echo "installing apps"
- yum -y install gcc net-tools bsdtar zip >/dev/null
- install_3proxy
- echo "working folder = /home/proxy-installer"
- WORKDIR="/home/proxy-installer"
- WORKDATA="${WORKDIR}/data.txt"
- mkdir $WORKDIR && cd $_
- IP4=$(curl -4 -s ifconfig.co)
- IP6=$(curl -6 -s icanhazip.com | cut -f1-4 -d':')
- echo "Internal ip = ${IP4}. Exteranl sub for ip6 = ${IP6}"
- echo "How many proxy do you want to create? Example 500"
- read COUNT
- FIRST_PORT=10000
- LAST_PORT=$(($FIRST_PORT + $COUNT))
- gen_data >$WORKDIR/data.txt
- gen_iptables >$WORKDIR/boot_iptables.sh
- gen_ifconfig >$WORKDIR/boot_ifconfig.sh
- chmod +x boot_*.sh /etc/rc.local
- gen_3proxy >/usr/local/etc/3proxy/3proxy.cfg
- cat >>/etc/rc.local <<EOF
- bash ${WORKDIR}/boot_iptables.sh
- bash ${WORKDIR}/boot_ifconfig.sh
- ulimit -n 10048
- service 3proxy start
- EOF
- bash /etc/rc.local
- gen_proxy_file_for_user
- upload_proxy
|