123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- #!/bin/bash
- # SL
- # ==========================================
- # Color
- RED='\033[0;31m'
- NC='\033[0m'
- GREEN='\033[0;32m'
- ORANGE='\033[0;33m'
- BLUE='\033[0;34m'
- PURPLE='\033[0;35m'
- CYAN='\033[0;36m'
- LIGHT='\033[0;37m'
- # ==========================================
- # Getting
- MYIP=$(wget -qO- ipinfo.io/ip);
- echo "Checking VPS"
- IZIN=$( curl ipinfo.io/ip | grep $MYIP )
- if [ $MYIP = $MYIP ]; then
- echo -e "${NC}${GREEN}Permission Accepted...${NC}"
- else
- echo -e "${NC}${RED}Permission Denied!${NC}";
- echo -e "${NC}${LIGHT}Fuck You!!"
- exit 0
- fi
- clear
- # Load params
- source /etc/wireguard/params
- source /var/lib/crot/ipvps.conf
- if [[ "$IP" = "" ]]; then
- SERVER_PUB_IP=$(wget -qO- ipinfo.io/ip);
- else
- SERVER_PUB_IP=$IP
- fi
- source /var/lib/crot/ipvps.conf
- if [[ "$IP2" = "" ]]; then
- domain=$(cat /etc/xray/domain)
- else
- domain=$IP2
- fi
- echo ""
- portwg="$(cat ~/log-install.txt | grep -w "Wireguard" | cut -d: -f2|sed 's/ //g')"
- until [[ ${CLIENT_NAME} =~ ^[a-zA-Z0-9_]+$ && ${CLIENT_EXISTS} == '0' ]]; do
- read -rp "Username : " -e CLIENT_NAME
- CLIENT_EXISTS=$(grep -w $CLIENT_NAME /etc/wireguard/wg0.conf | wc -l)
- if [[ ${CLIENT_EXISTS} == '1' ]]; then
- echo ""
- echo -e "Username ${RED}${CLIENT_NAME}${NC} Already On VPS Please Choose Another"
- exit 1
- fi
- done
- echo "IPv4 Detected"
- ENDPOINT="$SERVER_PUB_IP:$SERVER_PORT"
- WG_CONFIG="/etc/wireguard/wg0.conf"
- LASTIP=$( grep "/32" $WG_CONFIG | tail -n1 | awk '{print $3}' | cut -d "/" -f 1 | cut -d "." -f 4 )
- if [[ "$LASTIP" = "" ]]; then
- CLIENT_ADDRESS="10.66.66.2"
- else
- CLIENT_ADDRESS="10.66.66.$((LASTIP+1))"
- fi
- # Google DNS by default
- CLIENT_DNS_1="8.8.8.8"
- CLIENT_DNS_2="8.8.4.4"
- MYIP=$(wget -qO- ifconfig.co);
- read -p "Expired (Days) : " masaaktif
- hariini=`date -d "0 days" +"%Y-%m-%d"`
- exp=`date -d "$masaaktif days" +"%Y-%m-%d"`
- # Generate key pair for the client
- CLIENT_PRIV_KEY=$(wg genkey)
- CLIENT_PUB_KEY=$(echo "$CLIENT_PRIV_KEY" | wg pubkey)
- CLIENT_PRE_SHARED_KEY=$(wg genpsk)
- # Create client file and add the server as a peer
- echo "[Interface]
- PrivateKey = $CLIENT_PRIV_KEY
- Address = $CLIENT_ADDRESS/24
- DNS = $CLIENT_DNS_1,$CLIENT_DNS_2
- [Peer]
- PublicKey = $SERVER_PUB_KEY
- PresharedKey = $CLIENT_PRE_SHARED_KEY
- Endpoint = $ENDPOINT
- AllowedIPs = 0.0.0.0/0,::/0" >>"$HOME/$SERVER_WG_NIC-client-$CLIENT_NAME.conf"
- # Add the client as a peer to the server
- echo -e "### Client $CLIENT_NAME $exp
- [Peer]
- PublicKey = $CLIENT_PUB_KEY
- PresharedKey = $CLIENT_PRE_SHARED_KEY
- AllowedIPs = $CLIENT_ADDRESS/32" >>"/etc/wireguard/$SERVER_WG_NIC.conf"
- systemctl restart "wg-quick@$SERVER_WG_NIC"
- cp $HOME/$SERVER_WG_NIC-client-$CLIENT_NAME.conf /home/vps/public_html/$CLIENT_NAME.conf
- clear
- sleep 0.5
- echo Generate PrivateKey
- sleep 0.5
- echo Generate PublicKey
- sleep 0.5
- echo Generate PresharedKey
- clear
- echo -e ""
- echo -e "======-WIREGUARD-======"
- echo -e "Remarks : $CLIENT_NAME"
- echo -e "IP/Host : $MYIP"
- echo -e "Domain : $domain"
- echo -e "Port : $portwg"
- echo -e "Created : $hariini"
- echo -e "Expired : $exp"
- echo -e "======================="
- echo -e "Link WG : http://$MYIP:89/$CLIENT_NAME.conf"
- echo -e "======================="
- echo -e "Script Mod By SL"
- rm -f /root/wg0-client-$CLIENT_NAME.conf
|