Last active
December 14, 2022 00:24
-
-
Save manhlinhng/17b30298f5d8f8c28ec39e06627ec5de to your computer and use it in GitHub Desktop.
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
#!/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) | |
main_interface=$(ip route get 8.8.8.8 | awk -- '{printf $5}') | |
gen64() { | |
ip64() { | |
echo "${array[$RANDOM % 16]}${array[$RANDOM % 16]}${array[$RANDOM % 16]}${array[$RANDOM % 16]}" | |
} | |
echo "$1:$(ip64):$(ip64):$(ip64):$(ip64)" | |
} | |
install_3proxy() { | |
echo "==== Start Install 3proxy by Aka KrisEl ===" | |
echo "..." | |
echo "Clone source github > https://github.com/z3apa3a/3proxy" | |
git clone https://github.com/z3apa3a/3proxy | |
cd 3proxy | |
ln -s Makefile.Linux Makefile | |
make | |
sudo make install | |
mkdir -p /usr/local/3proxy/{bin,logs,stat} | |
chmod -R 777 /usr/local/3proxy | |
mv /3proxy/bin/ /usr/local/3proxy/bin/ | |
wget https://gist.githubusercontent.com/manhlinhng/34b1fee5f72b83fc211648303ebaa453/raw/ec8d4388d258c099203111fa5e4dd4f2304ad272/3proxy.service-centos8 --output-document=/3proxy/scripts/3proxy.service.default | |
cp /3proxy/scripts/3proxy.service.default /usr/lib/systemd/system/3proxy.service | |
systemctl link /usr/lib/systemd/system/3proxy.service | |
systemctl daemon-reload | |
echo "* hard nofile 999999" >> /etc/security/limits.conf | |
echo "* soft nofile 999999" >> /etc/security/limits.conf | |
echo "net.ipv6.conf.$main_interface.proxy_ndp=1" >> /etc/sysctl.conf | |
echo "net.ipv6.conf.all.proxy_ndp=1" >> /etc/sysctl.conf | |
echo "net.ipv6.conf.default.forwarding=1" >> /etc/sysctl.conf | |
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf | |
echo "net.ipv6.ip_nonlocal_bind = 1" >> /etc/sysctl.conf | |
sysctl -p | |
systemctl stop firewalld | |
systemctl disable firewalld | |
systemctl enable 3proxy.service | |
systemctl start 3proxy.service | |
cd $WORKDIR | |
} | |
gen_3proxy() { | |
cat <<EOF | |
daemon | |
maxconn 2048 | |
nserver 1.1.1.1 | |
nserver 8.8.4.4 | |
nserver 2001:4860:4860::8888 | |
nserver 2001:4860:4860::8844 | |
nscache 65536 | |
timeouts 1 5 30 60 180 1800 15 60 | |
setgid 65535 | |
setuid 65535 | |
stacksize 6291456 | |
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() { | |
cd $WORKDIR | |
local PASS=$(random) | |
zip --password $PASS proxy.zip proxy.txt | |
echo "============ Upload file zip proxy to File.io ========" | |
URL=$(curl -F "file=@proxy.zip" https://file.io) | |
echo "200 Proxy v6 is ready! Format IP:PORT:LOGIN:PASS" | |
echo "Download zip archive from: ${URL}" | |
echo "Password: ${PASS}" | |
echo "============ Done ========" | |
} | |
gen_data() { | |
seq $FIRST_PORT $LAST_PORT | while read port; do | |
echo "$(random)/$(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 '$main_interface' inet6 add " $5 "/64"}' ${WORKDATA}) | |
EOF | |
} | |
echo "Update app.." | |
yum -y install git wget gcc net-tools bsdtar zip make >/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 icanhazip.com) | |
IP6=$(curl -6 -s icanhazip.com | cut -f1-4 -d':') | |
echo "Internal ip = ${IP4}. Exteranl sub for ip6 = ${IP6}" | |
FIRST_PORT=12200 | |
LAST_PORT=12400 | |
gen_data >$WORKDIR/data.txt | |
gen_iptables >$WORKDIR/boot_iptables.sh | |
gen_ifconfig >$WORKDIR/boot_ifconfig.sh | |
echo NM_CONTROLLED="no" >> /etc/sysconfig/network-scripts/ifcfg-${main_interface} | |
chmod +x $WORKDIR/boot_*.sh /etc/rc.local | |
gen_3proxy >/usr/local/3proxy/3proxy.cfg | |
cat >>/etc/rc.local <<EOF | |
systemctl start NetworkManager.service | |
# ifup ${main_interface} | |
bash ${WORKDIR}/boot_iptables.sh | |
bash ${WORKDIR}/boot_ifconfig.sh | |
ulimit -n 32678 | |
/usr/local/3proxy/bin/3proxy /usr/local/3proxy/3proxy.cfg | |
systemctl restart 3proxy.service | |
EOF | |
bash /etc/rc.local | |
gen_proxy_file_for_user | |
upload_proxy |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment