-
-
Save thanhan7914/cf3b0d45e8f5a4dc5126d6cb7910ea12 to your computer and use it in GitHub Desktop.
proxyipv6
This file contains hidden or 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) | |
| 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" | |
| mkdir -p /3proxy | |
| cd /3proxy | |
| URL="https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz" | |
| wget -qO- $URL | bsdtar -xvf- | |
| cd 3proxy-0.9.3 | |
| make -f Makefile.Linux | |
| mkdir -p /usr/local/etc/3proxy/{bin,logs,stat} | |
| mv /3proxy/3proxy-0.9.3/bin/3proxy /usr/local/etc/3proxy/bin/ | |
| wget https://raw.githubusercontent.com/xlandgroup/ipv4-ipv6-proxy/master/scripts/3proxy.service-Centos8 --output-document=/3proxy/3proxy-0.9.3/scripts/3proxy.service2 | |
| cp /3proxy/3proxy-0.9.3/scripts/3proxy.service2 /usr/lib/systemd/system/3proxy.service | |
| systemctl link /usr/lib/systemd/system/3proxy.service | |
| systemctl daemon-reload | |
| # systemctl enable 3proxy | |
| echo "* hard nofile 999999" >> /etc/security/limits.conf | |
| echo "* soft nofile 999999" >> /etc/security/limits.conf | |
| echo "net.ipv6.conf.enp1s0.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 | |
| cd $WORKDIR | |
| } | |
| gen_3proxy() { | |
| cat <<EOF | |
| daemon | |
| maxconn 2000 | |
| 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 | |
| URL=$(curl -F "file=@proxy.zip" https://file.io) | |
| 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 "$(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 enp1s0 inet6 add " $5 "/64"}' ${WORKDATA}) | |
| EOF | |
| } | |
| echo "installing apps" | |
| yum -y install 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=10000 | |
| LAST_PORT=11000 | |
| gen_data >$WORKDIR/data.txt | |
| gen_iptables >$WORKDIR/boot_iptables.sh | |
| gen_ifconfig >$WORKDIR/boot_ifconfig.sh | |
| chmod +x $WORKDIR/boot_*.sh /etc/rc.local | |
| gen_3proxy >/usr/local/etc/3proxy/3proxy.cfg | |
| cat >>/etc/rc.local <<EOF | |
| systemctl start NetworkManager.service | |
| ifup enp1s0 | |
| bash ${WORKDIR}/boot_iptables.sh | |
| bash ${WORKDIR}/boot_ifconfig.sh | |
| ulimit -n 65535 | |
| /usr/local/etc/3proxy/bin/3proxy /usr/local/etc/3proxy/3proxy.cfg & | |
| 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