Compare commits
20 Commits
25121c2bd6
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 8d66b08728 | |||
| 5d36fa750a | |||
| be64961777 | |||
| 55738548ad | |||
| 0fd78e2a04 | |||
| c8562cc676 | |||
| e8ab47db2c | |||
| 48ebb5554f | |||
| 3e0f942371 | |||
| 26fb8a222c | |||
| 4406131676 | |||
| 6f81d9f9cf | |||
| d604c1e8ab | |||
| ad9ece7763 | |||
| fd7681930b | |||
| 1dd676c628 | |||
| 4935d4abff | |||
| f8d6d82f4f | |||
| 04c440ac2b | |||
| 0a422d325d |
BIN
aarch64/dnstt-server
Normal file
BIN
aarch64/dnstt-server
Normal file
Binary file not shown.
797
aarch64/menu
797
aarch64/menu
@@ -1,797 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
colorWhite="\033[0;37m"
|
|
||||||
colorReset="\033[0m"
|
|
||||||
menu() {
|
|
||||||
echo -e "${colorWhite}"
|
|
||||||
php /opt/DragonCore/menu.php menu
|
|
||||||
echo -ne "> "; read cake
|
|
||||||
#--------------------
|
|
||||||
if [ "$cake" == "1" ]; then
|
|
||||||
menuuser
|
|
||||||
elif [ "$cake" == "2" ]; then
|
|
||||||
menucon
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "3" ]; then
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
#--------------------
|
|
||||||
#elif [ "$cake" == "4" ]; then
|
|
||||||
#clear
|
|
||||||
#echo "Analizando CPU/RAM/REDE ...";
|
|
||||||
#php /opt/DragonCore/menu.php statusvps
|
|
||||||
#echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
#menu
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "0" ]; then
|
|
||||||
clear
|
|
||||||
echo -e "${colorReset}"
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
menu
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
menucon(){
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php menuconnect
|
|
||||||
echo -ne "> "; read cake
|
|
||||||
#--------------------
|
|
||||||
if [ -z "$cake" ]; then
|
|
||||||
menucon
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "0" ]; then
|
|
||||||
menu
|
|
||||||
#--------------------
|
|
||||||
#elif [ "$cake" == "1" ]; then
|
|
||||||
#wdragon="$(php /opt/DragonCore/menu.php pdragonon)"
|
|
||||||
#if [ "$wdragon" == "ON" ];then
|
|
||||||
#clear
|
|
||||||
#echo -ne "Deseja Desativar o Dragon SSH Open? s/n: "; read sn
|
|
||||||
#if [ "$sn" == "s" ];then
|
|
||||||
#php /opt/DragonCore/menu.php pdragonstop
|
|
||||||
#echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
#menucon
|
|
||||||
#else
|
|
||||||
#menucon
|
|
||||||
#fi
|
|
||||||
#menucon
|
|
||||||
#else
|
|
||||||
#clear
|
|
||||||
#echo -ne "Porta > "; read port
|
|
||||||
#if [ -z "$port" ]; then
|
|
||||||
#clear
|
|
||||||
#echo -ne "Porta não pode estar vazia!"; read enter
|
|
||||||
#menucon
|
|
||||||
#else
|
|
||||||
#clear
|
|
||||||
#php /opt/DragonCore/menu.php pdragon $port
|
|
||||||
#echo ""
|
|
||||||
#echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
#menucon
|
|
||||||
#fi
|
|
||||||
#fi
|
|
||||||
elif [ "$cake" == "1" ]; then
|
|
||||||
napon="$(php /opt/DragonCore/menu.php napsteron)"
|
|
||||||
if [ "$napon" == "ON" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o Dragon X GO SSH? s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
php /opt/DragonCore/menu.php napsterstop
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
echo -ne "Porta > "; read port
|
|
||||||
if [ -z "$port" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Porta não pode estar vazia!"; read enter
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php napster $port
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "2" ]; then
|
|
||||||
clear
|
|
||||||
ston="$(dpkg -l | grep -q stunnel4 && echo 1 || echo 0)"
|
|
||||||
if [ "$ston" == "1" ];then
|
|
||||||
echo "Deseja remover o Stunnel4?"
|
|
||||||
echo ""
|
|
||||||
echo -ne "s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
bash <(php /opt/DragonCore/menu.php installst)
|
|
||||||
rm -rf /etc/stunnel
|
|
||||||
echo ""
|
|
||||||
echo "Stunnel4 Removido!"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
echo -ne "Porta > "; read port
|
|
||||||
if [ -z "$port" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Porta não pode estar vazia!"; read enter
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php update)
|
|
||||||
bash <(php /opt/DragonCore/menu.php upgrade)
|
|
||||||
bash <(php /opt/DragonCore/menu.php installst)
|
|
||||||
bash <(php /opt/DragonCore/menu.php createconf $port)
|
|
||||||
bash <(php /opt/DragonCore/menu.php ssl_certif)
|
|
||||||
bash <(php /opt/DragonCore/menu.php restartst)
|
|
||||||
echo ""
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo "Stunnel4 instalado porta: $port"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "3" ]; then
|
|
||||||
clear
|
|
||||||
ovpnin="$(php /opt/DragonCore/menu.php checkinstall)"
|
|
||||||
if [ "$ovpnin" == "OK" ];then
|
|
||||||
ovpnni="$(php /opt/DragonCore/menu.php checkovpon)"
|
|
||||||
if [ "$ovpnni" == "OK" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o OVPN? (1) ou Remover? (2) 1/2: "; read sn
|
|
||||||
if [ "$sn" == "1" ];then
|
|
||||||
php /opt/DragonCore/menu.php stopovpn
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
elif [ "$sn" == "2" ];then
|
|
||||||
php /opt/DragonCore/menu.php stopovpn
|
|
||||||
apt purge openvpn -y && rm -rf /etc/openvpn
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php startovpn)
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
bash <(php /opt/DragonCore/menu.php ovpnin)
|
|
||||||
php /opt/DragonCore/menu.php setupOpenVPN
|
|
||||||
bash <(php /opt/DragonCore/menu.php ipv4)
|
|
||||||
bash <(php /opt/DragonCore/menu.php ipv42)
|
|
||||||
php /opt/DragonCore/menu.php client
|
|
||||||
php /opt/DragonCore/menu.php client2
|
|
||||||
bash <(php /opt/DragonCore/menu.php startovpn)
|
|
||||||
echo ""
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo "OpenVPN instalado porta: 1194"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
#elif [ "$cake" == "5" ]; then
|
|
||||||
#menuv2
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "4" ]; then
|
|
||||||
clear
|
|
||||||
echo "Portas Ativas"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php infoport
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
menuferrament(){
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php menuferramenta
|
|
||||||
echo -ne "> "; read cake
|
|
||||||
#--------------------
|
|
||||||
if [ -z "$cake" ]; then
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "0" ]; then
|
|
||||||
menu
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "1" ]; then
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo -ne "Restaurar Backup? S/N > "; read att
|
|
||||||
echo ""
|
|
||||||
lowercaseInput=$(echo "$att" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
clear
|
|
||||||
bk=$(php /opt/DragonCore/menu.php checkbackup)
|
|
||||||
if [ "$bk" = "OK" ]; then
|
|
||||||
php /opt/DragonCore/menu.php unpck
|
|
||||||
php /opt/DragonCore/menu.php paswd
|
|
||||||
php /opt/DragonCore/menu.php db
|
|
||||||
rm -rf /root/temp
|
|
||||||
echo ""
|
|
||||||
echo "Restauracao concluida"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
echo "backup.vps nao encontrado na pasta /root/"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "2" ]; then
|
|
||||||
bdon="$(php /opt/DragonCore/menu.php badvpnon)"
|
|
||||||
if [ "$bdon" == "ON" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o BadVpnX? s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
bash <(php /opt/DragonCore/menu.php badvpnstop)
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php badvpn)
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
#elif [ "$cake" == "3" ]; then
|
|
||||||
#clear
|
|
||||||
#echo "Uso CPU/RAM"
|
|
||||||
#echo ""
|
|
||||||
#php /opt/DragonCore/menu.php getVpsInformation
|
|
||||||
#echo ""
|
|
||||||
#echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
#menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "3" ]; then
|
|
||||||
clear
|
|
||||||
onnet=$(php /opt/DragonCore/menu.php checknet)
|
|
||||||
if [ "$onnet" == "ON" ];then
|
|
||||||
echo -ne "Deseja desativar o balanceamento? S/N > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php insertnet
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php insertnet
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
fi
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "4" ]; then
|
|
||||||
chkuser="$(php /opt/DragonCore/menu.php checkuseron)"
|
|
||||||
if [ "$chkuser" == "ON" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o CheckUser Mult APP? s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
php /opt/DragonCore/menu.php checkuserstop
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php checkuserstart
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "5" ]; then
|
|
||||||
clear
|
|
||||||
bck2=$(php /opt/DragonCore/menu.php ckbkdragon)
|
|
||||||
if [ "$bck2" == "OK" ];then
|
|
||||||
echo -ne "Deseja Restaurar o backup? S/N > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php restorebackupuser
|
|
||||||
php /opt/DragonCore/menu.php restorebackupconnect
|
|
||||||
rm /root/dragoncoressh.json
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -ne "Gerar backup do DragonCoreSSH? S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php createbackup
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "6" ]; then
|
|
||||||
clear
|
|
||||||
autock=$(php /opt/DragonCore/menu.php ckautomenu)
|
|
||||||
if [ "$autock" == "notok" ];then
|
|
||||||
echo -ne "Deseja Ativar o Auto Menu? S/N > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php automenu
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -ne "Deseja Desativar o Auto Menu? S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php noautomenu
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "7" ]; then
|
|
||||||
clear
|
|
||||||
echo "Speedtest By Ookle"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php speedtest
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "8" ]; then
|
|
||||||
chklimiter="$(php /opt/DragonCore/menu.php limitadoron)"
|
|
||||||
if [ "$chklimiter" == "ON" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o Dragon Limiter? s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
php /opt/DragonCore/menu.php limitadorstop
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php limitador
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "9" ]; then
|
|
||||||
local_version=$(cat /opt/DragonCore/version.txt)
|
|
||||||
remote_version=$(wget -qO- https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/version.txt)
|
|
||||||
if [[ "$local_version" == "$remote_version" ]]; then
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo "ja esta atualizado."
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menu
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo "Um update esta disponivel. Sua versao: $local_version, Versao atual: $remote_version"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Atualizar script? S/N > "; read att
|
|
||||||
echo ""
|
|
||||||
lowercaseInput=$(echo "$att" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
bash <(wget -qO- https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/install.sh)
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo "Por favor digite menu novamente!"
|
|
||||||
else
|
|
||||||
menu
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "10" ]; then
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php getVpsInformation
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "11" ]; then
|
|
||||||
bottg="$(php /opt/DragonCore/menu.php ulekboton)"
|
|
||||||
if [ "$bottg" == "ON" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o Bot Telegram Ulek? s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
php /opt/DragonCore/menu.php ulekbotstop
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
echo -ne "Para pegar o ID use o bot @dragoncorebot comando /id"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Telegram ID > "; read id
|
|
||||||
if [ -z "$id" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "ID não pode estar vazia!"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
echo -ne "Para pegar o Bot Token use o bot @BotFather"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Bot Token > "; read token
|
|
||||||
if [ -z "$token" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Token não pode estar vazia!"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php ulekbot $token $id
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "12" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Remover todos os usuarios? S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
echo -ne "Tem Certeza? essa acao nao pode ser revertida! S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php deleteall
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "13" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Remover Script e todos usuarios? S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
echo -ne "Tem Certeza? essa acao nao pode ser revertida! S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php deleteall
|
|
||||||
apt purge openvpn -y
|
|
||||||
apt purge stunnel4 -y
|
|
||||||
apt purge php*
|
|
||||||
apt purge postgresql* -y
|
|
||||||
rm -rf /etc/openvpn
|
|
||||||
rm -rf /opt/DragonCoreSSH
|
|
||||||
screen -X -S proxydragon quit
|
|
||||||
screen -X -S openvpn quit
|
|
||||||
screen -X -S badvpn quit
|
|
||||||
screen -X -S checkuser quit
|
|
||||||
screen -X -S napster quit
|
|
||||||
screen -X -S limiter quit
|
|
||||||
rm /bin/menu
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
menuuser(){
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php menuusuario
|
|
||||||
echo -ne "> "; read cake
|
|
||||||
#--------------------
|
|
||||||
if [ "$cake" == "1" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Usuario > "; read user
|
|
||||||
if [ -z "$user" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
echo -ne "Senha > "; read pass
|
|
||||||
if [ -z "$pass" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
echo -ne "Validade > "; read val
|
|
||||||
if [ -z "$val" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
echo -ne "Limite > "; read lim
|
|
||||||
if [ -z "$lim" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php criaruser $val $user $pass $lim
|
|
||||||
clear
|
|
||||||
echo "Usuario: $user"
|
|
||||||
echo "Senha: $pass"
|
|
||||||
echo "Validade: $val"
|
|
||||||
echo "Limite: $lim"
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "2" ]; then
|
|
||||||
clear
|
|
||||||
echo "Gerar Teste:"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Validade em Minutos > "; read data
|
|
||||||
if [ -z "$data" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php gerarteste $data
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "0" ]; then
|
|
||||||
menu
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "3" ]; then
|
|
||||||
clear
|
|
||||||
echo "Remover Usuario:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php printusers
|
|
||||||
echo ""
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
if [ -z "$user" ];then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php delusernew $user
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "4" ]; then
|
|
||||||
clear
|
|
||||||
echo "Usuarios online"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php sshmonitor
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "5" ]; then
|
|
||||||
clear
|
|
||||||
echo "Alterar Data:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php printvalinew
|
|
||||||
echo ""
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
echo -ne "Dias > "; read data
|
|
||||||
if [ -z "$user" ]; then
|
|
||||||
menuuser
|
|
||||||
elif [ -z "$data" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php alterardatanew $user $data
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php printvalidnew $user
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "6" ]; then
|
|
||||||
clear
|
|
||||||
echo "Alterar Limite:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php printlimnew
|
|
||||||
echo ""
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
echo -ne "Limit > "; read lim
|
|
||||||
if [ -z "$user" ]; then
|
|
||||||
menuuser
|
|
||||||
elif [ -z "$lim" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php uplimitnew $user $lim
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php printlim2new $user
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "7" ]; then
|
|
||||||
clear
|
|
||||||
echo "Alterar Senha:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php printpass
|
|
||||||
echo ""
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
echo -ne "Senha > "; read pass
|
|
||||||
if [ -z "$user" ]; then
|
|
||||||
menuuser
|
|
||||||
elif [ -z "$pass" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php uppassnew $user $pass
|
|
||||||
#clear
|
|
||||||
php /opt/DragonCore/menu.php printpassnew $user
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "8" ]; then
|
|
||||||
clear
|
|
||||||
echo "Relatorio de Usuarios:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php relatoriouser
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "9" ]; then
|
|
||||||
clear
|
|
||||||
echo "Remover Expirados:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php removeexpired
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
#--------------------
|
|
||||||
else
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
menuv2(){
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php menuv2
|
|
||||||
echo -ne "> "; read cake
|
|
||||||
if [ "$cake" == "0" ]; then
|
|
||||||
menucon
|
|
||||||
#____________
|
|
||||||
elif [ -z $cake ]; then
|
|
||||||
menuv2
|
|
||||||
#_____________
|
|
||||||
elif [ "$cake" == "1" ]; then
|
|
||||||
clear
|
|
||||||
echo "Criar Usuario:"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Usuario > "; read user
|
|
||||||
if [ -z $user ]; then
|
|
||||||
menuv2
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php addv2user $user
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuv2
|
|
||||||
fi
|
|
||||||
#----
|
|
||||||
elif [ "$cake" == "2" ]; then
|
|
||||||
clear
|
|
||||||
echo "Remover Usuario:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php v2users
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
if [ -z $user ]; then
|
|
||||||
menuv2
|
|
||||||
else
|
|
||||||
uid=$(php /opt/DragonCore/menu.php v2uid $user)
|
|
||||||
php /opt/DragonCore/menu.php delv2 $uid
|
|
||||||
php /opt/DragonCore/menu.php dlv2 $user
|
|
||||||
echo "UUID: $uid REMOVIDO!"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuv2
|
|
||||||
fi
|
|
||||||
elif [ "$cake" == "3" ]; then
|
|
||||||
clear
|
|
||||||
echo "Usuarios:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php v2users
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuv2
|
|
||||||
#----
|
|
||||||
elif [ "$cake" == "4" ]; then
|
|
||||||
clear
|
|
||||||
echo "Link VMESS:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php v2users
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
if [ -z $user ]; then
|
|
||||||
menuv2
|
|
||||||
else
|
|
||||||
uid=$(php /opt/DragonCore/menu.php v2uid $user)
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php extractVmessUrlByUUID $uid
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuv2
|
|
||||||
fi
|
|
||||||
#-----
|
|
||||||
elif [ "$cake" == "5" ];then
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php v2protocol)
|
|
||||||
menuv2
|
|
||||||
#-----
|
|
||||||
elif [ "$cake" == "6" ];then
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php v2tls)
|
|
||||||
menuv2
|
|
||||||
#-----
|
|
||||||
elif [ "$cake" == "7" ];then
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php v2port)
|
|
||||||
menuv2
|
|
||||||
#-----
|
|
||||||
elif [ "$cake" == "8" ];then
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php intallv2)
|
|
||||||
menuv2
|
|
||||||
#-----
|
|
||||||
else
|
|
||||||
menuv2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
menu
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
114
alterarsenha.php
114
alterarsenha.php
File diff suppressed because one or more lines are too long
29
automenu.php
29
automenu.php
File diff suppressed because one or more lines are too long
151
autostart.php
151
autostart.php
File diff suppressed because one or more lines are too long
130
backup.php
130
backup.php
File diff suppressed because one or more lines are too long
33
badvpn.php
33
badvpn.php
File diff suppressed because one or more lines are too long
12
checkatt.php
12
checkatt.php
File diff suppressed because one or more lines are too long
213
checkuser.php
213
checkuser.php
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
192
database.php
192
database.php
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
113
dnstt.php
Normal file
113
dnstt.php
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
function dnstt($port, $nsDomain, $target)
|
||||||
|
{
|
||||||
|
$port = preg_replace('/\D/', '', (string)$port);
|
||||||
|
if ($port === '') {
|
||||||
|
$port = '5300';
|
||||||
|
}
|
||||||
|
|
||||||
|
$nsDomain = trim($nsDomain);
|
||||||
|
$target = trim($target);
|
||||||
|
|
||||||
|
if ($nsDomain === '' || $target === '') {
|
||||||
|
echo "NS domain e destino nao podem estar vazios.\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$bin = '/opt/DragonCore/dnstt-server';
|
||||||
|
$confDir = '/opt/DragonCore/dnstt';
|
||||||
|
$privFile = $confDir . '/server.key';
|
||||||
|
$pubFile = $confDir . '/server.pub';
|
||||||
|
|
||||||
|
if (!file_exists($bin)) {
|
||||||
|
echo "Binario DNSTT nao encontrado em {$bin}\n";
|
||||||
|
echo "Coloque o dnstt-server nesse caminho.\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!is_dir($confDir)) {
|
||||||
|
mkdir($confDir, 0700, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!file_exists($privFile) || !file_exists($pubFile)) {
|
||||||
|
$cmdGen = escapeshellcmd($bin) .
|
||||||
|
' -gen-key -privkey-file ' . escapeshellarg($privFile) .
|
||||||
|
' -pubkey-file ' . escapeshellarg($pubFile) .
|
||||||
|
' 2>/dev/null';
|
||||||
|
shell_exec($cmdGen);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!file_exists($privFile) || !file_exists($pubFile)) {
|
||||||
|
echo "Falha ao gerar as chaves do DNSTT.\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$cmd = "iptables -C INPUT -p udp --dport {$port} -j ACCEPT 2>/dev/null || iptables -I INPUT -p udp --dport {$port} -j ACCEPT";
|
||||||
|
shell_exec($cmd);
|
||||||
|
|
||||||
|
$cmd = "iptables -t nat -C PREROUTING -p udp --dport 53 -j REDIRECT --to-ports {$port} 2>/dev/null || iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports {$port}";
|
||||||
|
shell_exec($cmd);
|
||||||
|
|
||||||
|
if (function_exists('deletecone') && function_exists('incone')) {
|
||||||
|
deletecone('dnstt');
|
||||||
|
incone('dnstt', $port, $nsDomain, $target, 'udp');
|
||||||
|
}
|
||||||
|
|
||||||
|
$onoff = trim(shell_exec('screen -list | grep -q dnstt && echo 1 || echo 0'));
|
||||||
|
if ($onoff === '1') {
|
||||||
|
shell_exec('screen -X -S dnstt quit');
|
||||||
|
}
|
||||||
|
|
||||||
|
$cmd = "/usr/bin/screen -dmS dnstt bash -c '"
|
||||||
|
. "while true; do "
|
||||||
|
. "ulimit -n 999999 && "
|
||||||
|
. escapeshellcmd($bin)
|
||||||
|
. " -udp 0.0.0.0:" . $port
|
||||||
|
. " -privkey-file " . escapeshellarg($privFile)
|
||||||
|
. " " . escapeshellarg($nsDomain)
|
||||||
|
. " " . escapeshellarg($target)
|
||||||
|
. "; "
|
||||||
|
. "sleep 2; "
|
||||||
|
. "done'";
|
||||||
|
|
||||||
|
shell_exec($cmd);
|
||||||
|
|
||||||
|
echo "DNSTT ON | UDP :{$port} | NS: {$nsDomain} | Destino: {$target}\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function dnstton()
|
||||||
|
{
|
||||||
|
$onoff = trim(shell_exec('screen -list | grep -q dnstt && echo 1 || echo 0'));
|
||||||
|
if ($onoff === '1') {
|
||||||
|
echo 'ON';
|
||||||
|
} else {
|
||||||
|
echo 'OFF';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function dnsttstop()
|
||||||
|
{
|
||||||
|
if (function_exists('deletecone')) {
|
||||||
|
deletecone('dnstt');
|
||||||
|
}
|
||||||
|
shell_exec('screen -X -S dnstt quit');
|
||||||
|
echo "DNSTT OFF\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function dnsttpub()
|
||||||
|
{
|
||||||
|
$pubFile = '/opt/DragonCore/dnstt/server.pub';
|
||||||
|
|
||||||
|
if (!file_exists($pubFile)) {
|
||||||
|
echo "Pubkey nao encontrada em {$pubFile}. Inicie o DNSTT uma vez para gerar.\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$content = trim(file_get_contents($pubFile));
|
||||||
|
if ($content === '') {
|
||||||
|
echo "Pubkey vazia em {$pubFile}\n";
|
||||||
|
} else {
|
||||||
|
echo "DNSTT PubKey:\n{$content}\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
33
expirado.php
33
expirado.php
File diff suppressed because one or more lines are too long
103
gbackup.php
103
gbackup.php
File diff suppressed because one or more lines are too long
133
infovps.php
133
infovps.php
File diff suppressed because one or more lines are too long
155
install.sh
155
install.sh
@@ -10,8 +10,10 @@ if [ "$system" = "debian" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
sudo apt update
|
sudo apt update
|
||||||
|
sudo apt upgrade -y
|
||||||
|
sudo apt install -y uuid-runtime
|
||||||
|
sudo apt install -y curl
|
||||||
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg curl wget
|
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg curl wget
|
||||||
|
|
||||||
if [ "$system" = "debian" ]; then
|
if [ "$system" = "debian" ]; then
|
||||||
repos=$(find /etc/apt/ -name '*.list' -exec cat {} + | grep ^[[:space:]]*deb | grep -q "packages.sury.org/php" && echo 1 || echo 0)
|
repos=$(find /etc/apt/ -name '*.list' -exec cat {} + | grep ^[[:space:]]*deb | grep -q "packages.sury.org/php" && echo 1 || echo 0)
|
||||||
if [ "$repos" = "0" ]; then
|
if [ "$repos" = "0" ]; then
|
||||||
@@ -23,148 +25,80 @@ else
|
|||||||
repos=$(find /etc/apt/ -name '*.list' -exec cat {} + | grep ^[[:space:]]*deb | grep -q "/ondrej/php" && echo 1 || echo 0)
|
repos=$(find /etc/apt/ -name '*.list' -exec cat {} + | grep ^[[:space:]]*deb | grep -q "/ondrej/php" && echo 1 || echo 0)
|
||||||
if [ "$repos" = "0" ]; then
|
if [ "$repos" = "0" ]; then
|
||||||
sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common -y
|
sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common -y
|
||||||
sudo add-apt-repository ppa:ondrej/php
|
sudo add-apt-repository ppa:ondrej/php -y
|
||||||
sudo apt update
|
sudo apt update
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
sudo apt install -y php-cli php-curl php-sqlite3 php-pgsql git
|
||||||
php_version="$(command php --version 2>'/dev/null' \
|
|
||||||
| command head -n 1 \
|
|
||||||
| command cut --characters=5-7)"
|
|
||||||
if [ "$system" = "ubuntu" ] && [ "$(lsb_release -rs)" = "18.04" ]; then
|
|
||||||
sudo apt install php7.2-cli php7.2-curl php7.2-sqlite3 php7.2-pgsql git -y
|
|
||||||
cake=$(uname -m)
|
|
||||||
if [ "$cake" = "x86_64" ]; then
|
|
||||||
wget --user-agent "Mozilla" http://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz
|
|
||||||
tar -xvzf loaders.linux-x86_64.tar.gz
|
|
||||||
rm loaders.linux-x86_64.tar.gz
|
|
||||||
else
|
|
||||||
wget --user-agent "Mozilla" https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz
|
|
||||||
tar -xvzf loaders.linux-aarch64.tar.gz
|
|
||||||
rm loaders.linux-aarch64.tar.gz
|
|
||||||
fi
|
|
||||||
sudo mv ixed.7.2.lin $(php -i | grep extension_dir | awk '{print $3}' | head -n 1)
|
|
||||||
|
|
||||||
elif [ "$system" = "ubuntu" ] && [ "$(lsb_release -rs)" = "20.04" ]; then
|
|
||||||
sudo apt install php7.4-cli php7.4-curl php7.4-sqlite3 php7.4-pgsql git -y
|
|
||||||
cake=$(uname -m)
|
|
||||||
if [ "$cake" = "x86_64" ]; then
|
|
||||||
wget --user-agent "Mozilla" http://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz
|
|
||||||
tar -xvzf loaders.linux-x86_64.tar.gz
|
|
||||||
rm loaders.linux-x86_64.tar.gz
|
|
||||||
else
|
|
||||||
wget --user-agent "Mozilla" https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz
|
|
||||||
tar -xvzf loaders.linux-aarch64.tar.gz
|
|
||||||
rm loaders.linux-aarch64.tar.gz
|
|
||||||
fi
|
|
||||||
sudo mv ixed.7.4.lin $(php -i | grep extension_dir | awk '{print $3}' | head -n 1)
|
|
||||||
|
|
||||||
elif [ "$php_version" != "8.1" ]; then
|
|
||||||
sudo apt purge php-cli php-curl php-sqlite3 php-pgsql -y
|
|
||||||
sudo apt purge php8.2-cli php8.2-curl php8.2-sqlite3 git -y
|
|
||||||
sudo apt autoremove -y
|
|
||||||
sudo apt install php8.1-cli php8.1-curl php8.1-sqlite3 php8.1-pgsql git -y
|
|
||||||
sudo update-alternatives --set php /usr/bin/php8.1
|
|
||||||
|
|
||||||
PREFERENCES_FILE="/etc/apt/preferences.d/php-pin-8.1.pref"
|
|
||||||
if [ ! -f "$PREFERENCES_FILE" ]; then
|
|
||||||
sudo tee "$PREFERENCES_FILE" <<EOF
|
|
||||||
Package: php*
|
|
||||||
Pin: version 8.1*
|
|
||||||
Pin-Priority: 1001
|
|
||||||
EOF
|
|
||||||
sudo apt update
|
|
||||||
sudo apt upgrade -y
|
|
||||||
fi
|
|
||||||
php_version="$(command php --version 2>'/dev/null' \
|
|
||||||
| command head -n 1 \
|
|
||||||
| command cut --characters=5-7)"
|
|
||||||
if [ "$cake" = "x86_64" ]; then
|
|
||||||
wget --user-agent "Mozilla" http://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz
|
|
||||||
tar -xvzf loaders.linux-x86_64.tar.gz
|
|
||||||
rm loaders.linux-x86_64.tar.gz
|
|
||||||
else
|
|
||||||
wget --user-agent "Mozilla" https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz
|
|
||||||
tar -xvzf loaders.linux-aarch64.tar.gz
|
|
||||||
rm loaders.linux-aarch64.tar.gz
|
|
||||||
fi
|
|
||||||
sudo mv ixed.${php_version}.lin $(php -i | grep extension_dir | awk '{print $3}' | head -n 1)
|
|
||||||
else
|
|
||||||
|
|
||||||
sudo apt install php8.1-cli php8.1-curl php8.1-sqlite3 php8.1-pgsql git -y
|
|
||||||
sudo update-alternatives --set php /usr/bin/php8.1
|
|
||||||
|
|
||||||
PREFERENCES_FILE="/etc/apt/preferences.d/php-pin-8.1.pref"
|
|
||||||
if [ ! -f "$PREFERENCES_FILE" ]; then
|
|
||||||
sudo tee "$PREFERENCES_FILE" <<EOF
|
|
||||||
Package: php*
|
|
||||||
Pin: version 8.1*
|
|
||||||
Pin-Priority: 1001
|
|
||||||
EOF
|
|
||||||
sudo apt update
|
|
||||||
sudo apt upgrade -y
|
|
||||||
fi
|
|
||||||
php_version="$(command php --version 2>'/dev/null' \
|
|
||||||
| command head -n 1 \
|
|
||||||
| command cut --characters=5-7)"
|
|
||||||
if [ "$cake" = "x86_64" ]; then
|
|
||||||
wget --user-agent "Mozilla" http://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz
|
|
||||||
tar -xvzf loaders.linux-x86_64.tar.gz
|
|
||||||
rm loaders.linux-x86_64.tar.gz
|
|
||||||
else
|
|
||||||
wget --user-agent "Mozilla" https://www.sourceguardian.com/loaders/download/loaders.linux-aarch64.tar.gz
|
|
||||||
tar -xvzf loaders.linux-aarch64.tar.gz
|
|
||||||
rm loaders.linux-aarch64.tar.gz
|
|
||||||
fi
|
|
||||||
sudo mv ixed.${php_version}.lin $(php -i | grep extension_dir | awk '{print $3}' | head -n 1)
|
|
||||||
fi
|
|
||||||
php_version2="$(command php --version 2>'/dev/null' \
|
|
||||||
| command head -n 1 \
|
|
||||||
| command cut --characters=5-7)"
|
|
||||||
cat > /etc/php/${php_version2}/cli/conf.d/sourceguardian.ini << EOF
|
|
||||||
zend_extension=ixed.${php_version2}.lin
|
|
||||||
EOF
|
|
||||||
rm ixed.*
|
|
||||||
rm README
|
|
||||||
rm "SourceGuardian Loader License.pdf"
|
|
||||||
rm version
|
|
||||||
|
|
||||||
if [ ! -e "/bin/php" ]; then
|
if [ ! -e "/bin/php" ]; then
|
||||||
sudo ln -s "$(command -v php)" /bin/php
|
sudo ln -s "$(command -v php)" /bin/php
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# === BACKUP EXISTING CONFIG.PHP BEFORE REMOVING FOLDER ===
|
||||||
|
CONFIG_BACKUP="/opt/DragonCore_config.php.bak"
|
||||||
|
if [ -f "/opt/DragonCore/config.php" ]; then
|
||||||
|
cp /opt/DragonCore/config.php "$CONFIG_BACKUP"
|
||||||
|
echo "Backup de config.php criado em $CONFIG_BACKUP"
|
||||||
|
fi
|
||||||
|
# =========================================================
|
||||||
|
|
||||||
cd /opt/
|
cd /opt/
|
||||||
rm -rf DragonCore
|
rm -rf DragonCore
|
||||||
cd $HOME
|
cd "$HOME"
|
||||||
|
|
||||||
git clone https://git.dr2.site/penguinehis/DragonCoreSSH-Beta.git /opt/DragonCore
|
git clone https://git.dr2.site/penguinehis/DragonCoreSSH-Beta.git /opt/DragonCore
|
||||||
rm -rf /opt/DragonCore/aarch64
|
rm -rf /opt/DragonCore/aarch64
|
||||||
rm -rf /opt/DragonCore/x86_64
|
rm -rf /opt/DragonCore/x86_64
|
||||||
rm -rf /opt/DragonCore/install.sh
|
rm -rf /opt/DragonCore/install.sh
|
||||||
curl -s -L -o /opt/DragonCore/menu https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/menu
|
|
||||||
|
curl -s -L -o /opt/DragonCore/menu https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/menu
|
||||||
curl -s -L -o /opt/DragonCore/dragon_go https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/dragon_go
|
curl -s -L -o /opt/DragonCore/dragon_go https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/dragon_go
|
||||||
|
curl -s -L -o /opt/DragonCore/dnstt-server https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/dnstt-server
|
||||||
curl -s -L -o /opt/DragonCore/badvpn-udpgw https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/badvpn-udpgw
|
curl -s -L -o /opt/DragonCore/badvpn-udpgw https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/badvpn-udpgw
|
||||||
curl -s -L -o /opt/DragonCore/libcrypto.so.3 https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/libcrypto.so.3
|
curl -s -L -o /opt/DragonCore/libcrypto.so.3 https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/libcrypto.so.3
|
||||||
curl -s -L -o /opt/DragonCore/libssl.so.3 https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/libssl.so.3
|
curl -s -L -o /opt/DragonCore/libssl.so.3 https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/libssl.so.3
|
||||||
curl -s -L -o /opt/DragonCore/ProxyDragon https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/ProxyDragon
|
curl -s -L -o /opt/DragonCore/ProxyDragon https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/ProxyDragon
|
||||||
curl -s -L -o /opt/DragonCore/ulekbot https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/ulekbot
|
curl -s -L -o /opt/DragonCore/ulekbot https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/$(uname -m)/ulekbot
|
||||||
|
|
||||||
cd /opt/DragonCore
|
cd /opt/DragonCore
|
||||||
chmod +x *
|
chmod +x *
|
||||||
cd $HOME
|
cd "$HOME"
|
||||||
|
|
||||||
|
|
||||||
|
if [ -f "$CONFIG_BACKUP" ]; then
|
||||||
|
cp "$CONFIG_BACKUP" /opt/DragonCore/config.php
|
||||||
|
echo "config.php restaurado de $CONFIG_BACKUP"
|
||||||
|
fi
|
||||||
|
# ==============================================
|
||||||
|
|
||||||
echo -n "/opt/DragonCore/menu" > /bin/menu
|
echo -n "/opt/DragonCore/menu" > /bin/menu
|
||||||
chmod +x /bin/menu
|
chmod +x /bin/menu
|
||||||
|
|
||||||
existing_cron=$(crontab -l 2>/dev/null | grep -F "*/5 * * * * find /run/user -maxdepth 1 -mindepth 1 -type d -exec mount -o remount,size=1M {} \;")
|
existing_cron=$(crontab -l 2>/dev/null | grep -F "*/5 * * * * find /run/user -maxdepth 1 -mindepth 1 -type d -exec mount -o remount,size=1M {} \;")
|
||||||
if [ -z "$existing_cron" ]; then
|
if [ -z "$existing_cron" ]; then
|
||||||
(crontab -l 2>/dev/null; echo "*/5 * * * * find /run/user -maxdepth 1 -mindepth 1 -type d -exec mount -o remount,size=1M {} \;") | crontab -
|
(crontab -l 2>/dev/null; echo "*/5 * * * * find /run/user -maxdepth 1 -mindepth 1 -type d -exec mount -o remount,size=1M {} \;") | crontab -
|
||||||
fi
|
fi
|
||||||
|
|
||||||
existing_crono=$(crontab -l 2>/dev/null | grep -F "@reboot sleep 30 && /usr/bin/php /opt/DragonCore/menu.php autostart")
|
existing_crono=$(crontab -l 2>/dev/null | grep -F "@reboot sleep 30 && /usr/bin/php /opt/DragonCore/menu.php autostart")
|
||||||
if [ -z "$existing_crono" ]; then
|
if [ -z "$existing_crono" ]; then
|
||||||
(crontab -l 2>/dev/null; echo "@reboot sleep 30 && /usr/bin/php /opt/DragonCore/menu.php autostart") | crontab -
|
(crontab -l 2>/dev/null; echo "@reboot sleep 30 && /usr/bin/php /opt/DragonCore/menu.php autostart") | crontab -
|
||||||
fi
|
fi
|
||||||
|
|
||||||
existing_lima=$(crontab -l 2>/dev/null | grep -F '@reboot sleep 30 && find /etc/DragonTeste -name "*.sh" -exec {} \;')
|
existing_lima=$(crontab -l 2>/dev/null | grep -F '@reboot sleep 30 && find /etc/DragonTeste -name "*.sh" -exec {} \;')
|
||||||
if [ -z "$existing_lima" ]; then
|
if [ -z "$existing_lima" ]; then
|
||||||
(crontab -l 2>/dev/null; echo '@reboot sleep 30 && find /etc/DragonTeste -name "*.sh" -exec {} \;') | crontab -
|
(crontab -l 2>/dev/null; echo '@reboot sleep 30 && find /etc/DragonTeste -name "*.sh" -exec {} \;') | crontab -
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if dpkg -s libssl1.1 &>/dev/null; then
|
||||||
|
echo "libssl1.1 is already installed."
|
||||||
|
else
|
||||||
|
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | tee /etc/apt/sources.list.d/focal-security.list
|
||||||
|
apt-get update && apt-get install -y libssl1.1
|
||||||
|
fi
|
||||||
|
|
||||||
bash <(php /opt/DragonCore/postinstall.php installpostgre)
|
bash <(php /opt/DragonCore/postinstall.php installpostgre)
|
||||||
|
|
||||||
# Gerar DBS:
|
# Gerar DBS:
|
||||||
php /opt/DragonCore/menu.php createautostart
|
php /opt/DragonCore/menu.php createautostart
|
||||||
php /opt/DragonCore/menu.php createTable
|
php /opt/DragonCore/menu.php createTable
|
||||||
@@ -173,15 +107,19 @@ php /opt/DragonCore/menu.php createv2table
|
|||||||
php /opt/DragonCore/dbconvert.php convertdba
|
php /opt/DragonCore/dbconvert.php convertdba
|
||||||
php /opt/DragonCore/dbconvert.php finishdba
|
php /opt/DragonCore/dbconvert.php finishdba
|
||||||
php /opt/DragonCore/menu.php deletecone ws
|
php /opt/DragonCore/menu.php deletecone ws
|
||||||
|
php /opt/DragonCore/menu.php createXrayTable
|
||||||
|
|
||||||
sed -i '/# HostKeyAlgorithms/ a\HostKeyAlgorithms +ssh-rsa' /etc/ssh/sshd_config
|
sed -i '/# HostKeyAlgorithms/ a\HostKeyAlgorithms +ssh-rsa' /etc/ssh/sshd_config
|
||||||
sed -i '/# PubkeyAcceptedKeyTypes/ a\PubkeyAcceptedKeyTypes +ssh-rsa' /etc/ssh/sshd_config
|
sed -i '/# PubkeyAcceptedKeyTypes/ a\PubkeyAcceptedKeyTypes +ssh-rsa' /etc/ssh/sshd_config
|
||||||
|
|
||||||
reposi2=$(find /etc/apt/ -name *.list | xargs cat | grep ^[[:space:]]*deb | grep -q "ookla" && echo 1 || echo 0)
|
reposi2=$(find /etc/apt/ -name *.list | xargs cat | grep ^[[:space:]]*deb | grep -q "ookla" && echo 1 || echo 0)
|
||||||
if [ "$reposi2" = "1" ]; then
|
if [ "$reposi2" = "1" ]; then
|
||||||
echo "OK"
|
echo "OK"
|
||||||
else
|
else
|
||||||
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | bash
|
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | bash
|
||||||
apt install speedtest
|
apt install -y speedtest
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_netstat() {
|
install_netstat() {
|
||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
RED='\033[0;31m'
|
RED='\033[0;31m'
|
||||||
@@ -200,6 +138,7 @@ install_netstat() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
install_netstat
|
install_netstat
|
||||||
|
|
||||||
# continua o script
|
# continua o script
|
||||||
screen -X -S proxydragon quit
|
screen -X -S proxydragon quit
|
||||||
screen -X -S openvpn quit
|
screen -X -S openvpn quit
|
||||||
@@ -208,7 +147,9 @@ screen -X -S checkuser quit
|
|||||||
screen -X -S napster quit
|
screen -X -S napster quit
|
||||||
screen -X -S limiter quit
|
screen -X -S limiter quit
|
||||||
screen -X -S botulek quit
|
screen -X -S botulek quit
|
||||||
|
|
||||||
php /opt/DragonCore/menu.php autostart
|
php /opt/DragonCore/menu.php autostart
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo ""
|
echo ""
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
50
limiter.php
50
limiter.php
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
926
menu
Normal file
926
menu
Normal file
@@ -0,0 +1,926 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
colorWhite="\033[0;37m"
|
||||||
|
colorReset="\033[0m"
|
||||||
|
menu() {
|
||||||
|
echo -e "${colorWhite}"
|
||||||
|
php /opt/DragonCore/menu.php menu
|
||||||
|
echo -ne "> "; read cake
|
||||||
|
#--------------------
|
||||||
|
if [ "$cake" == "1" ]; then
|
||||||
|
menuuser
|
||||||
|
elif [ "$cake" == "2" ]; then
|
||||||
|
menucon
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "3" ]; then
|
||||||
|
menuferrament
|
||||||
|
#--------------------
|
||||||
|
#--------------------
|
||||||
|
#elif [ "$cake" == "4" ]; then
|
||||||
|
#clear
|
||||||
|
#echo "Analizando CPU/RAM/REDE ...";
|
||||||
|
#php /opt/DragonCore/menu.php statusvps
|
||||||
|
#echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
#menu
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "0" ]; then
|
||||||
|
clear
|
||||||
|
echo -e "${colorReset}"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
menu
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
menucon(){
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php menuconnect
|
||||||
|
echo -ne "> "; read cake
|
||||||
|
#--------------------
|
||||||
|
if [ -z "$cake" ]; then
|
||||||
|
menucon
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "0" ]; then
|
||||||
|
menu
|
||||||
|
#--------------------
|
||||||
|
#elif [ "$cake" == "1" ]; then
|
||||||
|
#wdragon="$(php /opt/DragonCore/menu.php pdragonon)"
|
||||||
|
#if [ "$wdragon" == "ON" ];then
|
||||||
|
#clear
|
||||||
|
#echo -ne "Deseja Desativar o Dragon SSH Open? s/n: "; read sn
|
||||||
|
#if [ "$sn" == "s" ];then
|
||||||
|
#php /opt/DragonCore/menu.php pdragonstop
|
||||||
|
#echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
#menucon
|
||||||
|
#else
|
||||||
|
#menucon
|
||||||
|
#fi
|
||||||
|
#menucon
|
||||||
|
#else
|
||||||
|
#clear
|
||||||
|
#echo -ne "Porta > "; read port
|
||||||
|
#if [ -z "$port" ]; then
|
||||||
|
#clear
|
||||||
|
#echo -ne "Porta não pode estar vazia!"; read enter
|
||||||
|
#menucon
|
||||||
|
#else
|
||||||
|
#clear
|
||||||
|
#php /opt/DragonCore/menu.php pdragon $port
|
||||||
|
#echo ""
|
||||||
|
#echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
#menucon
|
||||||
|
#fi
|
||||||
|
#fi
|
||||||
|
elif [ "$cake" == "1" ]; then
|
||||||
|
napon="$(php /opt/DragonCore/menu.php napsteron)"
|
||||||
|
if [ "$napon" == "ON" ];then
|
||||||
|
clear
|
||||||
|
echo -ne "Deseja Desativar o Dragon X GO SSH? s/n: "; read sn
|
||||||
|
if [ "$sn" == "s" ];then
|
||||||
|
php /opt/DragonCore/menu.php napsterstop
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
else
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
menucon
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
echo -ne "Porta > "; read port
|
||||||
|
if [ -z "$port" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "Porta não pode estar vazia!"; read enter
|
||||||
|
menucon
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php napster $port
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "2" ]; then
|
||||||
|
clear
|
||||||
|
ston="$(dpkg -l | grep -q stunnel4 && echo 1 || echo 0)"
|
||||||
|
if [ "$ston" == "1" ];then
|
||||||
|
echo "Deseja remover o Stunnel4?"
|
||||||
|
echo ""
|
||||||
|
echo -ne "s/n: "; read sn
|
||||||
|
if [ "$sn" == "s" ];then
|
||||||
|
bash <(php /opt/DragonCore/menu.php installst)
|
||||||
|
rm -rf /etc/stunnel
|
||||||
|
echo ""
|
||||||
|
echo "Stunnel4 Removido!"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
else
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
menucon
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
echo -ne "Porta > "; read port
|
||||||
|
if [ -z "$port" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "Porta não pode estar vazia!"; read enter
|
||||||
|
menucon
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
bash <(php /opt/DragonCore/menu.php update)
|
||||||
|
bash <(php /opt/DragonCore/menu.php upgrade)
|
||||||
|
bash <(php /opt/DragonCore/menu.php installst)
|
||||||
|
bash <(php /opt/DragonCore/menu.php createconf $port)
|
||||||
|
bash <(php /opt/DragonCore/menu.php ssl_certif)
|
||||||
|
bash <(php /opt/DragonCore/menu.php restartst)
|
||||||
|
echo ""
|
||||||
|
clear
|
||||||
|
echo ""
|
||||||
|
echo "Stunnel4 instalado porta: $port"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "3" ]; then
|
||||||
|
clear
|
||||||
|
ovpnin="$(php /opt/DragonCore/menu.php checkinstall)"
|
||||||
|
if [ "$ovpnin" == "OK" ];then
|
||||||
|
ovpnni="$(php /opt/DragonCore/menu.php checkovpon)"
|
||||||
|
if [ "$ovpnni" == "OK" ];then
|
||||||
|
clear
|
||||||
|
echo -ne "Deseja Desativar o OVPN? (1) ou Remover? (2) 1/2: "; read sn
|
||||||
|
if [ "$sn" == "1" ];then
|
||||||
|
php /opt/DragonCore/menu.php stopovpn
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
elif [ "$sn" == "2" ];then
|
||||||
|
php /opt/DragonCore/menu.php stopovpn
|
||||||
|
apt purge openvpn -y && rm -rf /etc/openvpn
|
||||||
|
menucon
|
||||||
|
else
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
bash <(php /opt/DragonCore/menu.php startovpn)
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
bash <(php /opt/DragonCore/menu.php ovpnin)
|
||||||
|
php /opt/DragonCore/menu.php setupOpenVPN
|
||||||
|
bash <(php /opt/DragonCore/menu.php ipv4)
|
||||||
|
bash <(php /opt/DragonCore/menu.php ipv42)
|
||||||
|
php /opt/DragonCore/menu.php client
|
||||||
|
php /opt/DragonCore/menu.php client2
|
||||||
|
bash <(php /opt/DragonCore/menu.php startovpn)
|
||||||
|
echo ""
|
||||||
|
clear
|
||||||
|
echo ""
|
||||||
|
echo "OpenVPN instalado porta: 1194"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
#elif [ "$cake" == "5" ]; then
|
||||||
|
#menuv2
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "4" ]; then
|
||||||
|
# Xray Core management
|
||||||
|
clear
|
||||||
|
menuxray
|
||||||
|
|
||||||
|
elif [ "$cake" == "5" ]; then
|
||||||
|
clear
|
||||||
|
dnon="$(php /opt/DragonCore/menu.php dnstton)"
|
||||||
|
if [ "$dnon" == "ON" ]; then
|
||||||
|
echo "DNSTT esta ON."
|
||||||
|
echo "1) Parar DNSTT"
|
||||||
|
echo "2) Mostrar PubKey"
|
||||||
|
echo "0) Voltar"
|
||||||
|
echo -ne "> "; read op
|
||||||
|
if [ "$op" == "1" ]; then
|
||||||
|
php /opt/DragonCore/menu.php dnsttstop
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
elif [ "$op" == "2" ]; then
|
||||||
|
php /opt/DragonCore/menu.php dnsttpub
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
else
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Configurar DNSTT (SlowDNS)"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Porta UDP (53/5300) [5300] > "; read port
|
||||||
|
[ -z "$port" ] && port=5300
|
||||||
|
echo -ne "NS Domain (ex: t.example.com) > "; read ns
|
||||||
|
if [ -z "$ns" ]; then
|
||||||
|
echo "NS Domain nao pode ficar vazio!"
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
echo -ne "Destino (host:porta, ex: 127.0.0.1:8000) [127.0.0.1:8000] > "; read dest
|
||||||
|
[ -z "$dest" ] && dest="127.0.0.1:8000"
|
||||||
|
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php dnstt "$port" "$ns" "$dest"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
elif [ "$cake" == "6" ]; then
|
||||||
|
clear
|
||||||
|
echo "Portas Ativas"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php infoport
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menucon
|
||||||
|
else
|
||||||
|
menucon
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
menuxray(){
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php menuxray
|
||||||
|
echo -ne "> "; read option
|
||||||
|
if [ -z "$option" ]; then
|
||||||
|
menuxray
|
||||||
|
elif [ "$option" == "0" ]; then
|
||||||
|
menucon
|
||||||
|
elif [ "$option" == "1" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "Nome do usuario > "; read usr
|
||||||
|
if [ -z "$usr" ]; then
|
||||||
|
menuxray
|
||||||
|
else
|
||||||
|
echo -ne "Protocolo (ws/xhttp/grpc/tcp) [ws] > "; read proto
|
||||||
|
[ -z "$proto" ] && proto="ws"
|
||||||
|
php /opt/DragonCore/menu.php xrayAddUser "$usr" "$proto"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuxray
|
||||||
|
fi
|
||||||
|
elif [ "$option" == "2" ]; then
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php xrayListUsers
|
||||||
|
echo ""
|
||||||
|
echo -ne "ID ou UUID para remover > "; read ident
|
||||||
|
if [ -n "$ident" ]; then
|
||||||
|
php /opt/DragonCore/menu.php xrayRemoveUser "$ident"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuxray
|
||||||
|
fi
|
||||||
|
menuxray
|
||||||
|
elif [ "$option" == "3" ]; then
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php xrayListUsers
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuxray
|
||||||
|
elif [ "$option" == "4" ]; then
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php xrayInfo
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuxray
|
||||||
|
elif [ "$option" == "5" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "Dominio (ex: vpn.seudominio.com) > "; read dominio
|
||||||
|
if [ -n "$dominio" ]; then
|
||||||
|
php /opt/DragonCore/menu.php xrayCert "$dominio"
|
||||||
|
echo ""
|
||||||
|
chmod 777 -R /opt/DragonCoreSSL
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuxray
|
||||||
|
fi
|
||||||
|
menuxray
|
||||||
|
elif [ "$option" == "6" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "Porta do inbound [443] > "; read p
|
||||||
|
[ -z "$p" ] && p=443
|
||||||
|
echo -ne "Protocolo (ws/xhttp/grpc/tcp) [ws] > "; read pr
|
||||||
|
[ -z "$pr" ] && pr="ws"
|
||||||
|
bash <(php /opt/DragonCore/menu.php xrayInstall)
|
||||||
|
php /opt/DragonCore/menu.php xrayGenerateConfig "$p" "$pr"
|
||||||
|
echo ""
|
||||||
|
chmod 777 /usr/local/etc/xray/config.json
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuxray
|
||||||
|
elif [ "$option" == "7" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "Deseja remover o Xray Core? S/n > "; read sn
|
||||||
|
lower=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
||||||
|
if [[ "$lower" == "s" || "$lower" == "y" ]]; then
|
||||||
|
bash <(php /opt/DragonCore/menu.php xrayRemove)
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuxray
|
||||||
|
fi
|
||||||
|
menuxray
|
||||||
|
else
|
||||||
|
menuxray
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
menuferrament(){
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php menuferramenta
|
||||||
|
echo -ne "> "; read cake
|
||||||
|
#--------------------
|
||||||
|
if [ -z "$cake" ]; then
|
||||||
|
menuferrament
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "0" ]; then
|
||||||
|
menu
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "1" ]; then
|
||||||
|
clear
|
||||||
|
echo ""
|
||||||
|
echo -ne "Restaurar Backup? S/N > "; read att
|
||||||
|
echo ""
|
||||||
|
lowercaseInput=$(echo "$att" | tr '[:upper:]' '[:lower:]')
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
clear
|
||||||
|
bk=$(php /opt/DragonCore/menu.php checkbackup)
|
||||||
|
if [ "$bk" = "OK" ]; then
|
||||||
|
php /opt/DragonCore/menu.php unpck
|
||||||
|
php /opt/DragonCore/menu.php paswd
|
||||||
|
php /opt/DragonCore/menu.php db
|
||||||
|
rm -rf /root/temp
|
||||||
|
echo ""
|
||||||
|
echo "Restauracao concluida"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
echo "backup.vps nao encontrado na pasta /root/"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "2" ]; then
|
||||||
|
bdon="$(php /opt/DragonCore/menu.php badvpnon)"
|
||||||
|
if [ "$bdon" == "ON" ];then
|
||||||
|
clear
|
||||||
|
echo -ne "Deseja Desativar o BadVpnX? s/n: "; read sn
|
||||||
|
if [ "$sn" == "s" ];then
|
||||||
|
bash <(php /opt/DragonCore/menu.php badvpnstop)
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
bash <(php /opt/DragonCore/menu.php badvpn)
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
#elif [ "$cake" == "3" ]; then
|
||||||
|
#clear
|
||||||
|
#echo "Uso CPU/RAM"
|
||||||
|
#echo ""
|
||||||
|
#php /opt/DragonCore/menu.php getVpsInformation
|
||||||
|
#echo ""
|
||||||
|
#echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
#menuferrament
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "3" ]; then
|
||||||
|
clear
|
||||||
|
onnet=$(php /opt/DragonCore/menu.php checknet)
|
||||||
|
if [ "$onnet" == "ON" ];then
|
||||||
|
echo -ne "Deseja desativar o balanceamento? S/N > "; read sn
|
||||||
|
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
php /opt/DragonCore/menu.php insertnet
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
php /opt/DragonCore/menu.php insertnet
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
fi
|
||||||
|
menuferrament
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "4" ]; then
|
||||||
|
chkuser="$(php /opt/DragonCore/menu.php checkuseron)"
|
||||||
|
if [ "$chkuser" == "ON" ];then
|
||||||
|
clear
|
||||||
|
echo -ne "Deseja Desativar o CheckUser Mult APP? s/n: "; read sn
|
||||||
|
if [ "$sn" == "s" ];then
|
||||||
|
php /opt/DragonCore/menu.php checkuserstop
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php checkuserstart
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "5" ]; then
|
||||||
|
clear
|
||||||
|
bck2=$(php /opt/DragonCore/menu.php ckbkdragon)
|
||||||
|
if [ "$bck2" == "OK" ];then
|
||||||
|
echo -ne "Deseja Restaurar o backup? S/N > "; read sn
|
||||||
|
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
php /opt/DragonCore/menu.php restorebackupuser
|
||||||
|
php /opt/DragonCore/menu.php restorebackupconnect
|
||||||
|
rm /root/dragoncoressh.json
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -ne "Gerar backup do DragonCoreSSH? S/n > "; read sn
|
||||||
|
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
php /opt/DragonCore/menu.php createbackup
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
menuferrament
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "6" ]; then
|
||||||
|
clear
|
||||||
|
autock=$(php /opt/DragonCore/menu.php ckautomenu)
|
||||||
|
if [ "$autock" == "notok" ];then
|
||||||
|
echo -ne "Deseja Ativar o Auto Menu? S/N > "; read sn
|
||||||
|
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
php /opt/DragonCore/menu.php automenu
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -ne "Deseja Desativar o Auto Menu? S/n > "; read sn
|
||||||
|
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
php /opt/DragonCore/menu.php noautomenu
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
menuferrament
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "7" ]; then
|
||||||
|
clear
|
||||||
|
echo "Speedtest By Ookle"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php speedtest
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "8" ]; then
|
||||||
|
chklimiter="$(php /opt/DragonCore/menu.php limitadoron)"
|
||||||
|
if [ "$chklimiter" == "ON" ];then
|
||||||
|
clear
|
||||||
|
echo -ne "Deseja Desativar o Dragon Limiter? s/n: "; read sn
|
||||||
|
if [ "$sn" == "s" ];then
|
||||||
|
php /opt/DragonCore/menu.php limitadorstop
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php limitador
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "9" ]; then
|
||||||
|
local_version=$(cat /opt/DragonCore/version.txt)
|
||||||
|
remote_version=$(wget -qO- https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/version.txt)
|
||||||
|
if [[ "$local_version" == "$remote_version" ]]; then
|
||||||
|
clear
|
||||||
|
echo ""
|
||||||
|
echo "ja esta atualizado."
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menu
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
echo ""
|
||||||
|
echo "Um update esta disponivel. Sua versao: $local_version, Versao atual: $remote_version"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Atualizar script? S/N > "; read att
|
||||||
|
echo ""
|
||||||
|
lowercaseInput=$(echo "$att" | tr '[:upper:]' '[:lower:]')
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
bash <(wget -qO- https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/install.sh)
|
||||||
|
clear
|
||||||
|
echo ""
|
||||||
|
echo "Por favor digite menu novamente!"
|
||||||
|
else
|
||||||
|
menu
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "10" ]; then
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php getVpsInformation
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "11" ]; then
|
||||||
|
bottg="$(php /opt/DragonCore/menu.php ulekboton)"
|
||||||
|
if [ "$bottg" == "ON" ];then
|
||||||
|
clear
|
||||||
|
echo -ne "Deseja Desativar o Bot Telegram Ulek? s/n: "; read sn
|
||||||
|
if [ "$sn" == "s" ];then
|
||||||
|
php /opt/DragonCore/menu.php ulekbotstop
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
echo -ne "Para pegar o ID use o bot @dragoncorebot comando /id"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Telegram ID > "; read id
|
||||||
|
if [ -z "$id" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "ID não pode estar vazia!"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
echo -ne "Para pegar o Bot Token use o bot @BotFather"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Bot Token > "; read token
|
||||||
|
if [ -z "$token" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "Token não pode estar vazia!"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php ulekbot $token $id
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "12" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "Remover todos os usuarios? S/n > "; read sn
|
||||||
|
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
||||||
|
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
echo -ne "Tem Certeza? essa acao nao pode ser revertida! S/n > "; read sn
|
||||||
|
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
||||||
|
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
php /opt/DragonCore/menu.php deleteall
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "13" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "Remover Script e todos usuarios? S/n > "; read sn
|
||||||
|
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
||||||
|
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
echo -ne "Tem Certeza? essa acao nao pode ser revertida! S/n > "; read sn
|
||||||
|
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
||||||
|
|
||||||
|
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
||||||
|
php /opt/DragonCore/menu.php deleteall
|
||||||
|
apt purge openvpn -y
|
||||||
|
apt purge stunnel4 -y
|
||||||
|
apt purge php*
|
||||||
|
apt purge postgresql* -y
|
||||||
|
rm -rf /etc/openvpn
|
||||||
|
rm -rf /opt/DragonCoreSSH
|
||||||
|
screen -X -S proxydragon quit
|
||||||
|
screen -X -S openvpn quit
|
||||||
|
screen -X -S badvpn quit
|
||||||
|
screen -X -S checkuser quit
|
||||||
|
screen -X -S napster quit
|
||||||
|
screen -X -S limiter quit
|
||||||
|
rm /bin/menu
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuferrament
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
|
||||||
|
else
|
||||||
|
menuferrament
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
menuuser(){
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php menuusuario
|
||||||
|
echo -ne "> "; read cake
|
||||||
|
#--------------------
|
||||||
|
if [ "$cake" == "1" ]; then
|
||||||
|
clear
|
||||||
|
echo -ne "Usuario > "; read user
|
||||||
|
if [ -z "$user" ]; then
|
||||||
|
menuuser
|
||||||
|
else
|
||||||
|
echo -ne "Senha > "; read pass
|
||||||
|
if [ -z "$pass" ]; then
|
||||||
|
menuuser
|
||||||
|
else
|
||||||
|
echo -ne "Validade > "; read val
|
||||||
|
if [ -z "$val" ]; then
|
||||||
|
menuuser
|
||||||
|
else
|
||||||
|
echo -ne "Limite > "; read lim
|
||||||
|
if [ -z "$lim" ]; then
|
||||||
|
menuuser
|
||||||
|
else
|
||||||
|
php /opt/DragonCore/menu.php criaruser $val $user $pass $lim
|
||||||
|
clear
|
||||||
|
echo "Usuario: $user"
|
||||||
|
echo "Senha: $pass"
|
||||||
|
echo "Validade: $val"
|
||||||
|
echo "Limite: $lim"
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuuser
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "2" ]; then
|
||||||
|
clear
|
||||||
|
echo "Gerar Teste:"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Validade em Minutos > "; read data
|
||||||
|
if [ -z "$data" ]; then
|
||||||
|
menuuser
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php gerarteste $data
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuuser
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "0" ]; then
|
||||||
|
menu
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "3" ]; then
|
||||||
|
clear
|
||||||
|
echo "Remover Usuario:"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php printusers
|
||||||
|
echo ""
|
||||||
|
echo -ne "ID > "; read user
|
||||||
|
if [ -z "$user" ];then
|
||||||
|
menuuser
|
||||||
|
else
|
||||||
|
php /opt/DragonCore/menu.php delusernew $user
|
||||||
|
menuuser
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "4" ]; then
|
||||||
|
clear
|
||||||
|
echo "Usuarios online"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php sshmonitor
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuuser
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "5" ]; then
|
||||||
|
clear
|
||||||
|
echo "Alterar Data:"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php printvalinew
|
||||||
|
echo ""
|
||||||
|
echo -ne "ID > "; read user
|
||||||
|
echo -ne "Dias > "; read data
|
||||||
|
if [ -z "$user" ]; then
|
||||||
|
menuuser
|
||||||
|
elif [ -z "$data" ]; then
|
||||||
|
menuuser
|
||||||
|
else
|
||||||
|
php /opt/DragonCore/menu.php alterardatanew $user $data
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php printvalidnew $user
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuuser
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "6" ]; then
|
||||||
|
clear
|
||||||
|
echo "Alterar Limite:"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php printlimnew
|
||||||
|
echo ""
|
||||||
|
echo -ne "ID > "; read user
|
||||||
|
echo -ne "Limit > "; read lim
|
||||||
|
if [ -z "$user" ]; then
|
||||||
|
menuuser
|
||||||
|
elif [ -z "$lim" ]; then
|
||||||
|
menuuser
|
||||||
|
else
|
||||||
|
php /opt/DragonCore/menu.php uplimitnew $user $lim
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php printlim2new $user
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuuser
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "7" ]; then
|
||||||
|
clear
|
||||||
|
echo "Alterar Senha:"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php printpass
|
||||||
|
echo ""
|
||||||
|
echo -ne "ID > "; read user
|
||||||
|
echo -ne "Senha > "; read pass
|
||||||
|
if [ -z "$user" ]; then
|
||||||
|
menuuser
|
||||||
|
elif [ -z "$pass" ]; then
|
||||||
|
menuuser
|
||||||
|
else
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php uppassnew $user $pass
|
||||||
|
#clear
|
||||||
|
php /opt/DragonCore/menu.php printpassnew $user
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuuser
|
||||||
|
fi
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "8" ]; then
|
||||||
|
clear
|
||||||
|
echo "Relatorio de Usuarios:"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php relatoriouser
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuuser
|
||||||
|
#--------------------
|
||||||
|
elif [ "$cake" == "9" ]; then
|
||||||
|
clear
|
||||||
|
echo "Remover Expirados:"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php removeexpired
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuuser
|
||||||
|
#--------------------
|
||||||
|
else
|
||||||
|
menuuser
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
menuv2(){
|
||||||
|
clear
|
||||||
|
php /opt/DragonCore/menu.php menuv2
|
||||||
|
echo -ne "> "; read cake
|
||||||
|
if [ "$cake" == "0" ]; then
|
||||||
|
menucon
|
||||||
|
#____________
|
||||||
|
elif [ -z $cake ]; then
|
||||||
|
menuv2
|
||||||
|
#_____________
|
||||||
|
elif [ "$cake" == "1" ]; then
|
||||||
|
clear
|
||||||
|
echo "Criar Usuario:"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Usuario > "; read user
|
||||||
|
if [ -z $user ]; then
|
||||||
|
menuv2
|
||||||
|
else
|
||||||
|
php /opt/DragonCore/menu.php addv2user $user
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuv2
|
||||||
|
fi
|
||||||
|
#----
|
||||||
|
elif [ "$cake" == "2" ]; then
|
||||||
|
clear
|
||||||
|
echo "Remover Usuario:"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php v2users
|
||||||
|
echo -ne "ID > "; read user
|
||||||
|
if [ -z $user ]; then
|
||||||
|
menuv2
|
||||||
|
else
|
||||||
|
uid=$(php /opt/DragonCore/menu.php v2uid $user)
|
||||||
|
php /opt/DragonCore/menu.php delv2 $uid
|
||||||
|
php /opt/DragonCore/menu.php dlv2 $user
|
||||||
|
echo "UUID: $uid REMOVIDO!"
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuv2
|
||||||
|
fi
|
||||||
|
elif [ "$cake" == "3" ]; then
|
||||||
|
clear
|
||||||
|
echo "Usuarios:"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php v2users
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuv2
|
||||||
|
#----
|
||||||
|
elif [ "$cake" == "4" ]; then
|
||||||
|
clear
|
||||||
|
echo "Link VMESS:"
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php v2users
|
||||||
|
echo -ne "ID > "; read user
|
||||||
|
if [ -z $user ]; then
|
||||||
|
menuv2
|
||||||
|
else
|
||||||
|
uid=$(php /opt/DragonCore/menu.php v2uid $user)
|
||||||
|
echo ""
|
||||||
|
php /opt/DragonCore/menu.php extractVmessUrlByUUID $uid
|
||||||
|
echo ""
|
||||||
|
echo -ne "Pressione enter para continuar"; read enter
|
||||||
|
menuv2
|
||||||
|
fi
|
||||||
|
#-----
|
||||||
|
elif [ "$cake" == "5" ];then
|
||||||
|
clear
|
||||||
|
bash <(php /opt/DragonCore/menu.php v2protocol)
|
||||||
|
menuv2
|
||||||
|
#-----
|
||||||
|
elif [ "$cake" == "6" ];then
|
||||||
|
clear
|
||||||
|
bash <(php /opt/DragonCore/menu.php v2tls)
|
||||||
|
menuv2
|
||||||
|
#-----
|
||||||
|
elif [ "$cake" == "7" ];then
|
||||||
|
clear
|
||||||
|
bash <(php /opt/DragonCore/menu.php v2port)
|
||||||
|
menuv2
|
||||||
|
#-----
|
||||||
|
elif [ "$cake" == "8" ];then
|
||||||
|
clear
|
||||||
|
bash <(php /opt/DragonCore/menu.php intallv2)
|
||||||
|
menuv2
|
||||||
|
#-----
|
||||||
|
else
|
||||||
|
menuv2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
menu
|
||||||
50
napster.php
50
napster.php
File diff suppressed because one or more lines are too long
65
network.php
65
network.php
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
239
openvpn.php
239
openvpn.php
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
208
proxydragon.php
208
proxydragon.php
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
77
stunnel.php
77
stunnel.php
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
269
v2ray
269
v2ray
@@ -1,269 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# EDIT: @kiritossh
|
|
||||||
# github: https://github.com/Jrohy/multi-v2ray
|
|
||||||
|
|
||||||
#定时任务北京执行时间(0~23)
|
|
||||||
BEIJING_UPDATE_TIME=3
|
|
||||||
|
|
||||||
#记录最开始运行脚本的路径
|
|
||||||
BEGIN_PATH=$(pwd)
|
|
||||||
|
|
||||||
#安装方式, 0为全新安装, 1为保留v2ray配置更新
|
|
||||||
INSTALL_WAY=0
|
|
||||||
|
|
||||||
#定义操作变量, 0为否, 1为是
|
|
||||||
HELP=0
|
|
||||||
|
|
||||||
REMOVE=0
|
|
||||||
|
|
||||||
CHINESE=0
|
|
||||||
|
|
||||||
BASE_SOURCE_PATH="https://multi.netlify.app"
|
|
||||||
|
|
||||||
UTIL_PATH="/etc/v2ray_util/util.cfg"
|
|
||||||
|
|
||||||
UTIL_CFG="$BASE_SOURCE_PATH/v2ray_util/util_core/util.cfg"
|
|
||||||
|
|
||||||
BASH_COMPLETION_SHELL="$BASE_SOURCE_PATH/v2ray"
|
|
||||||
|
|
||||||
CLEAN_IPTABLES_SHELL="$BASE_SOURCE_PATH/v2ray_util/global_setting/clean_iptables.sh"
|
|
||||||
|
|
||||||
#Centos 临时取消别名
|
|
||||||
[[ -f /etc/redhat-release && -z $(echo $SHELL|grep zsh) ]] && unalias -a
|
|
||||||
|
|
||||||
[[ -z $(echo $SHELL|grep zsh) ]] && ENV_FILE=".bashrc" || ENV_FILE=".zshrc"
|
|
||||||
|
|
||||||
#######color code########
|
|
||||||
RED="31m"
|
|
||||||
GREEN="32m"
|
|
||||||
YELLOW="33m"
|
|
||||||
BLUE="36m"
|
|
||||||
FUCHSIA="35m"
|
|
||||||
|
|
||||||
colorEcho(){
|
|
||||||
COLOR=$1
|
|
||||||
echo -e "\033[${COLOR}${@:2}\033[0m"
|
|
||||||
}
|
|
||||||
|
|
||||||
#######get params#########
|
|
||||||
while [[ $# > 0 ]];do
|
|
||||||
key="$1"
|
|
||||||
case $key in
|
|
||||||
--remove)
|
|
||||||
REMOVE=1
|
|
||||||
;;
|
|
||||||
-h|--help)
|
|
||||||
HELP=1
|
|
||||||
;;
|
|
||||||
-k|--keep)
|
|
||||||
INSTALL_WAY=1
|
|
||||||
colorEcho ${BLUE} "keep config to update\n"
|
|
||||||
;;
|
|
||||||
--zh)
|
|
||||||
CHINESE=1
|
|
||||||
colorEcho ${BLUE} "安装中文版..\n"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# unknown option
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift # past argument or value
|
|
||||||
done
|
|
||||||
#############################
|
|
||||||
|
|
||||||
help(){
|
|
||||||
echo "bash v2ray.sh [-h|--help] [-k|--keep] [--remove]"
|
|
||||||
echo " -h, --help Show help"
|
|
||||||
echo " -k, --keep keep the config.json to update"
|
|
||||||
echo " --remove remove v2ray,xray && multi-v2ray"
|
|
||||||
echo " no params to new install"
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
removeV2Ray() {
|
|
||||||
#卸载V2ray脚本
|
|
||||||
bash <(curl -L -s https://multi.netlify.app/go.sh) --remove >/dev/null 2>&1
|
|
||||||
rm -rf /etc/v2ray >/dev/null 2>&1
|
|
||||||
rm -rf /var/log/v2ray >/dev/null 2>&1
|
|
||||||
|
|
||||||
#卸载Xray脚本
|
|
||||||
bash <(curl -L -s https://multi.netlify.app/go.sh) --remove -x >/dev/null 2>&1
|
|
||||||
rm -rf /etc/xray >/dev/null 2>&1
|
|
||||||
rm -rf /var/log/xray >/dev/null 2>&1
|
|
||||||
|
|
||||||
#清理v2ray相关iptable规则
|
|
||||||
bash <(curl -L -s $CLEAN_IPTABLES_SHELL)
|
|
||||||
|
|
||||||
#卸载multi-v2ray
|
|
||||||
pip uninstall v2ray_util -y
|
|
||||||
rm -rf /usr/share/bash-completion/completions/v2ray.bash >/dev/null 2>&1
|
|
||||||
rm -rf /usr/share/bash-completion/completions/v2ray >/dev/null 2>&1
|
|
||||||
rm -rf /usr/share/bash-completion/completions/xray >/dev/null 2>&1
|
|
||||||
rm -rf /etc/bash_completion.d/v2ray.bash >/dev/null 2>&1
|
|
||||||
rm -rf /usr/local/bin/v2ray >/dev/null 2>&1
|
|
||||||
rm -rf /etc/v2ray_util >/dev/null 2>&1
|
|
||||||
|
|
||||||
#删除v2ray定时更新任务
|
|
||||||
crontab -l|sed '/SHELL=/d;/v2ray/d'|sed '/SHELL=/d;/xray/d' > crontab.txt
|
|
||||||
crontab crontab.txt >/dev/null 2>&1
|
|
||||||
rm -f crontab.txt >/dev/null 2>&1
|
|
||||||
|
|
||||||
if [[ ${PACKAGE_MANAGER} == 'dnf' || ${PACKAGE_MANAGER} == 'yum' ]];then
|
|
||||||
systemctl restart crond >/dev/null 2>&1
|
|
||||||
else
|
|
||||||
systemctl restart cron >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#删除multi-v2ray环境变量
|
|
||||||
sed -i '/v2ray/d' ~/$ENV_FILE
|
|
||||||
sed -i '/xray/d' ~/$ENV_FILE
|
|
||||||
source ~/$ENV_FILE
|
|
||||||
|
|
||||||
colorEcho ${GREEN} "uninstall success!"
|
|
||||||
}
|
|
||||||
|
|
||||||
closeSELinux() {
|
|
||||||
#禁用SELinux
|
|
||||||
if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
|
|
||||||
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
|
|
||||||
setenforce 0
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
checkSys() {
|
|
||||||
#检查是否为Root
|
|
||||||
[ $(id -u) != "0" ] && { colorEcho ${RED} "Error: You must be root to run this script"; exit 1; }
|
|
||||||
|
|
||||||
if [[ `command -v apt-get` ]];then
|
|
||||||
PACKAGE_MANAGER='apt-get'
|
|
||||||
elif [[ `command -v dnf` ]];then
|
|
||||||
PACKAGE_MANAGER='dnf'
|
|
||||||
elif [[ `command -v yum` ]];then
|
|
||||||
PACKAGE_MANAGER='yum'
|
|
||||||
else
|
|
||||||
colorEcho $RED "Not support OS!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#安装依赖
|
|
||||||
installDependent(){
|
|
||||||
if [[ ${PACKAGE_MANAGER} == 'dnf' || ${PACKAGE_MANAGER} == 'yum' ]];then
|
|
||||||
${PACKAGE_MANAGER} install socat crontabs bash-completion which -y
|
|
||||||
else
|
|
||||||
${PACKAGE_MANAGER} update
|
|
||||||
${PACKAGE_MANAGER} install socat cron bash-completion ntpdate -y
|
|
||||||
fi
|
|
||||||
|
|
||||||
#install python3 & pip
|
|
||||||
source <(curl -sL https://python3.netlify.app/install.sh)
|
|
||||||
}
|
|
||||||
|
|
||||||
updateProject() {
|
|
||||||
[[ ! $(type pip 2>/dev/null) ]] && colorEcho $RED "pip no install!" && exit 1
|
|
||||||
|
|
||||||
pip install -U v2ray_util
|
|
||||||
|
|
||||||
if [[ -e $UTIL_PATH ]];then
|
|
||||||
[[ -z $(cat $UTIL_PATH|grep lang) ]] && echo "lang=en" >> $UTIL_PATH
|
|
||||||
else
|
|
||||||
mkdir -p /etc/v2ray_util
|
|
||||||
curl $UTIL_CFG > $UTIL_PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ $CHINESE == 1 ]] && sed -i "s/lang=en/lang=zh/g" $UTIL_PATH
|
|
||||||
|
|
||||||
rm -f /usr/local/bin/v2ray >/dev/null 2>&1
|
|
||||||
ln -s $(which v2ray-util) /usr/local/bin/v2ray
|
|
||||||
rm -f /usr/local/bin/xray >/dev/null 2>&1
|
|
||||||
ln -s $(which v2ray-util) /usr/local/bin/xray
|
|
||||||
|
|
||||||
#移除旧的v2ray bash_completion脚本
|
|
||||||
[[ -e /etc/bash_completion.d/v2ray.bash ]] && rm -f /etc/bash_completion.d/v2ray.bash
|
|
||||||
[[ -e /usr/share/bash-completion/completions/v2ray.bash ]] && rm -f /usr/share/bash-completion/completions/v2ray.bash
|
|
||||||
|
|
||||||
#更新v2ray bash_completion脚本
|
|
||||||
curl $BASH_COMPLETION_SHELL > /usr/share/bash-completion/completions/v2ray
|
|
||||||
curl $BASH_COMPLETION_SHELL > /usr/share/bash-completion/completions/xray
|
|
||||||
if [[ -z $(echo $SHELL|grep zsh) ]];then
|
|
||||||
source /usr/share/bash-completion/completions/v2ray
|
|
||||||
source /usr/share/bash-completion/completions/xray
|
|
||||||
fi
|
|
||||||
|
|
||||||
#安装V2ray主程序
|
|
||||||
[[ ${INSTALL_WAY} == 0 ]] && bash <(curl -L -s https://multi.netlify.app/go.sh)
|
|
||||||
}
|
|
||||||
|
|
||||||
#时间同步
|
|
||||||
timeSync() {
|
|
||||||
if [[ ${INSTALL_WAY} == 0 ]];then
|
|
||||||
echo -e "${Info} Time Synchronizing.. ${Font}"
|
|
||||||
if [[ `command -v ntpdate` ]];then
|
|
||||||
ntpdate pool.ntp.org
|
|
||||||
elif [[ `command -v chronyc` ]];then
|
|
||||||
chronyc -a makestep
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $? -eq 0 ]];then
|
|
||||||
echo -e "${OK} Time Sync Success ${Font}"
|
|
||||||
echo -e "${OK} now: `date -R`${Font}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
profileInit() {
|
|
||||||
|
|
||||||
#清理v2ray模块环境变量
|
|
||||||
[[ $(grep v2ray ~/$ENV_FILE) ]] && sed -i '/v2ray/d' ~/$ENV_FILE && source ~/$ENV_FILE
|
|
||||||
|
|
||||||
#解决Python3中文显示问题
|
|
||||||
[[ -z $(grep PYTHONIOENCODING=utf-8 ~/$ENV_FILE) ]] && echo "export PYTHONIOENCODING=utf-8" >> ~/$ENV_FILE && source ~/$ENV_FILE
|
|
||||||
|
|
||||||
#全新安装的新配置
|
|
||||||
[[ ${INSTALL_WAY} == 0 ]] && v2ray new
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
installFinish() {
|
|
||||||
#回到原点
|
|
||||||
cd ${BEGIN_PATH}
|
|
||||||
|
|
||||||
[[ ${INSTALL_WAY} == 0 ]] && WAY="install" || WAY="update"
|
|
||||||
colorEcho ${GREEN} "multi-v2ray ${WAY} success!\n"
|
|
||||||
|
|
||||||
if [[ ${INSTALL_WAY} == 0 ]]; then
|
|
||||||
clear
|
|
||||||
|
|
||||||
echo -e "\n\033[1;32mV2RAY INSTALADO COM SUCESSO !\033[0m"
|
|
||||||
v2ray info
|
|
||||||
|
|
||||||
echo -e "Por favor insira o comando 'v2ray' para gerenciar v2ray\n"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
main() {
|
|
||||||
|
|
||||||
[[ ${HELP} == 1 ]] && help && return
|
|
||||||
|
|
||||||
[[ ${REMOVE} == 1 ]] && removeV2Ray && return
|
|
||||||
|
|
||||||
[[ ${INSTALL_WAY} == 0 ]] && colorEcho ${BLUE} "new install\n"
|
|
||||||
|
|
||||||
checkSys
|
|
||||||
|
|
||||||
installDependent
|
|
||||||
|
|
||||||
closeSELinux
|
|
||||||
|
|
||||||
timeSync
|
|
||||||
|
|
||||||
updateProject
|
|
||||||
|
|
||||||
profileInit
|
|
||||||
|
|
||||||
installFinish
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
@@ -1 +1 @@
|
|||||||
29 Year Of the Dragon
|
40 Year Of the Noodle Dragon
|
||||||
File diff suppressed because one or more lines are too long
BIN
x86_64/dnstt-server
Normal file
BIN
x86_64/dnstt-server
Normal file
Binary file not shown.
797
x86_64/menu
797
x86_64/menu
@@ -1,797 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
colorWhite="\033[0;37m"
|
|
||||||
colorReset="\033[0m"
|
|
||||||
menu() {
|
|
||||||
echo -e "${colorWhite}"
|
|
||||||
php /opt/DragonCore/menu.php menu
|
|
||||||
echo -ne "> "; read cake
|
|
||||||
#--------------------
|
|
||||||
if [ "$cake" == "1" ]; then
|
|
||||||
menuuser
|
|
||||||
elif [ "$cake" == "2" ]; then
|
|
||||||
menucon
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "3" ]; then
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
#--------------------
|
|
||||||
#elif [ "$cake" == "4" ]; then
|
|
||||||
#clear
|
|
||||||
#echo "Analizando CPU/RAM/REDE ...";
|
|
||||||
#php /opt/DragonCore/menu.php statusvps
|
|
||||||
#echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
#menu
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "0" ]; then
|
|
||||||
clear
|
|
||||||
echo -e "${colorReset}"
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
menu
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
menucon(){
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php menuconnect
|
|
||||||
echo -ne "> "; read cake
|
|
||||||
#--------------------
|
|
||||||
if [ -z "$cake" ]; then
|
|
||||||
menucon
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "0" ]; then
|
|
||||||
menu
|
|
||||||
#--------------------
|
|
||||||
#elif [ "$cake" == "1" ]; then
|
|
||||||
#wdragon="$(php /opt/DragonCore/menu.php pdragonon)"
|
|
||||||
#if [ "$wdragon" == "ON" ];then
|
|
||||||
#clear
|
|
||||||
#echo -ne "Deseja Desativar o Dragon SSH Open? s/n: "; read sn
|
|
||||||
#if [ "$sn" == "s" ];then
|
|
||||||
#php /opt/DragonCore/menu.php pdragonstop
|
|
||||||
#echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
#menucon
|
|
||||||
#else
|
|
||||||
#menucon
|
|
||||||
#fi
|
|
||||||
#menucon
|
|
||||||
#else
|
|
||||||
#clear
|
|
||||||
#echo -ne "Porta > "; read port
|
|
||||||
#if [ -z "$port" ]; then
|
|
||||||
#clear
|
|
||||||
#echo -ne "Porta não pode estar vazia!"; read enter
|
|
||||||
#menucon
|
|
||||||
#else
|
|
||||||
#clear
|
|
||||||
#php /opt/DragonCore/menu.php pdragon $port
|
|
||||||
#echo ""
|
|
||||||
#echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
#menucon
|
|
||||||
#fi
|
|
||||||
#fi
|
|
||||||
elif [ "$cake" == "1" ]; then
|
|
||||||
napon="$(php /opt/DragonCore/menu.php napsteron)"
|
|
||||||
if [ "$napon" == "ON" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o Dragon X GO SSH? s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
php /opt/DragonCore/menu.php napsterstop
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
echo -ne "Porta > "; read port
|
|
||||||
if [ -z "$port" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Porta não pode estar vazia!"; read enter
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php napster $port
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "2" ]; then
|
|
||||||
clear
|
|
||||||
ston="$(dpkg -l | grep -q stunnel4 && echo 1 || echo 0)"
|
|
||||||
if [ "$ston" == "1" ];then
|
|
||||||
echo "Deseja remover o Stunnel4?"
|
|
||||||
echo ""
|
|
||||||
echo -ne "s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
bash <(php /opt/DragonCore/menu.php installst)
|
|
||||||
rm -rf /etc/stunnel
|
|
||||||
echo ""
|
|
||||||
echo "Stunnel4 Removido!"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
echo -ne "Porta > "; read port
|
|
||||||
if [ -z "$port" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Porta não pode estar vazia!"; read enter
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php update)
|
|
||||||
bash <(php /opt/DragonCore/menu.php upgrade)
|
|
||||||
bash <(php /opt/DragonCore/menu.php installst)
|
|
||||||
bash <(php /opt/DragonCore/menu.php createconf $port)
|
|
||||||
bash <(php /opt/DragonCore/menu.php ssl_certif)
|
|
||||||
bash <(php /opt/DragonCore/menu.php restartst)
|
|
||||||
echo ""
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo "Stunnel4 instalado porta: $port"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "3" ]; then
|
|
||||||
clear
|
|
||||||
ovpnin="$(php /opt/DragonCore/menu.php checkinstall)"
|
|
||||||
if [ "$ovpnin" == "OK" ];then
|
|
||||||
ovpnni="$(php /opt/DragonCore/menu.php checkovpon)"
|
|
||||||
if [ "$ovpnni" == "OK" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o OVPN? (1) ou Remover? (2) 1/2: "; read sn
|
|
||||||
if [ "$sn" == "1" ];then
|
|
||||||
php /opt/DragonCore/menu.php stopovpn
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
elif [ "$sn" == "2" ];then
|
|
||||||
php /opt/DragonCore/menu.php stopovpn
|
|
||||||
apt purge openvpn -y && rm -rf /etc/openvpn
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php startovpn)
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
bash <(php /opt/DragonCore/menu.php ovpnin)
|
|
||||||
php /opt/DragonCore/menu.php setupOpenVPN
|
|
||||||
bash <(php /opt/DragonCore/menu.php ipv4)
|
|
||||||
bash <(php /opt/DragonCore/menu.php ipv42)
|
|
||||||
php /opt/DragonCore/menu.php client
|
|
||||||
php /opt/DragonCore/menu.php client2
|
|
||||||
bash <(php /opt/DragonCore/menu.php startovpn)
|
|
||||||
echo ""
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo "OpenVPN instalado porta: 1194"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
#elif [ "$cake" == "5" ]; then
|
|
||||||
#menuv2
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "4" ]; then
|
|
||||||
clear
|
|
||||||
echo "Portas Ativas"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php infoport
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menucon
|
|
||||||
else
|
|
||||||
menucon
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
menuferrament(){
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php menuferramenta
|
|
||||||
echo -ne "> "; read cake
|
|
||||||
#--------------------
|
|
||||||
if [ -z "$cake" ]; then
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "0" ]; then
|
|
||||||
menu
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "1" ]; then
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo -ne "Restaurar Backup? S/N > "; read att
|
|
||||||
echo ""
|
|
||||||
lowercaseInput=$(echo "$att" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
clear
|
|
||||||
bk=$(php /opt/DragonCore/menu.php checkbackup)
|
|
||||||
if [ "$bk" = "OK" ]; then
|
|
||||||
php /opt/DragonCore/menu.php unpck
|
|
||||||
php /opt/DragonCore/menu.php paswd
|
|
||||||
php /opt/DragonCore/menu.php db
|
|
||||||
rm -rf /root/temp
|
|
||||||
echo ""
|
|
||||||
echo "Restauracao concluida"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
echo "backup.vps nao encontrado na pasta /root/"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "2" ]; then
|
|
||||||
bdon="$(php /opt/DragonCore/menu.php badvpnon)"
|
|
||||||
if [ "$bdon" == "ON" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o BadVpnX? s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
bash <(php /opt/DragonCore/menu.php badvpnstop)
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php badvpn)
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
#elif [ "$cake" == "3" ]; then
|
|
||||||
#clear
|
|
||||||
#echo "Uso CPU/RAM"
|
|
||||||
#echo ""
|
|
||||||
#php /opt/DragonCore/menu.php getVpsInformation
|
|
||||||
#echo ""
|
|
||||||
#echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
#menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "3" ]; then
|
|
||||||
clear
|
|
||||||
onnet=$(php /opt/DragonCore/menu.php checknet)
|
|
||||||
if [ "$onnet" == "ON" ];then
|
|
||||||
echo -ne "Deseja desativar o balanceamento? S/N > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php insertnet
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php insertnet
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
fi
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "4" ]; then
|
|
||||||
chkuser="$(php /opt/DragonCore/menu.php checkuseron)"
|
|
||||||
if [ "$chkuser" == "ON" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o CheckUser Mult APP? s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
php /opt/DragonCore/menu.php checkuserstop
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php checkuserstart
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "5" ]; then
|
|
||||||
clear
|
|
||||||
bck2=$(php /opt/DragonCore/menu.php ckbkdragon)
|
|
||||||
if [ "$bck2" == "OK" ];then
|
|
||||||
echo -ne "Deseja Restaurar o backup? S/N > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php restorebackupuser
|
|
||||||
php /opt/DragonCore/menu.php restorebackupconnect
|
|
||||||
rm /root/dragoncoressh.json
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -ne "Gerar backup do DragonCoreSSH? S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php createbackup
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "6" ]; then
|
|
||||||
clear
|
|
||||||
autock=$(php /opt/DragonCore/menu.php ckautomenu)
|
|
||||||
if [ "$autock" == "notok" ];then
|
|
||||||
echo -ne "Deseja Ativar o Auto Menu? S/N > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php automenu
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -ne "Deseja Desativar o Auto Menu? S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php noautomenu
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "7" ]; then
|
|
||||||
clear
|
|
||||||
echo "Speedtest By Ookle"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php speedtest
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "8" ]; then
|
|
||||||
chklimiter="$(php /opt/DragonCore/menu.php limitadoron)"
|
|
||||||
if [ "$chklimiter" == "ON" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o Dragon Limiter? s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
php /opt/DragonCore/menu.php limitadorstop
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php limitador
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "9" ]; then
|
|
||||||
local_version=$(cat /opt/DragonCore/version.txt)
|
|
||||||
remote_version=$(wget -qO- https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/version.txt)
|
|
||||||
if [[ "$local_version" == "$remote_version" ]]; then
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo "ja esta atualizado."
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menu
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo "Um update esta disponivel. Sua versao: $local_version, Versao atual: $remote_version"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Atualizar script? S/N > "; read att
|
|
||||||
echo ""
|
|
||||||
lowercaseInput=$(echo "$att" | tr '[:upper:]' '[:lower:]')
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
bash <(wget -qO- https://git.dr2.site/penguinehis/DragonCoreSSH-Beta/raw/branch/main/install.sh)
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo "Por favor digite menu novamente!"
|
|
||||||
else
|
|
||||||
menu
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "10" ]; then
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php getVpsInformation
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "11" ]; then
|
|
||||||
bottg="$(php /opt/DragonCore/menu.php ulekboton)"
|
|
||||||
if [ "$bottg" == "ON" ];then
|
|
||||||
clear
|
|
||||||
echo -ne "Deseja Desativar o Bot Telegram Ulek? s/n: "; read sn
|
|
||||||
if [ "$sn" == "s" ];then
|
|
||||||
php /opt/DragonCore/menu.php ulekbotstop
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
echo -ne "Para pegar o ID use o bot @dragoncorebot comando /id"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Telegram ID > "; read id
|
|
||||||
if [ -z "$id" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "ID não pode estar vazia!"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
echo -ne "Para pegar o Bot Token use o bot @BotFather"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Bot Token > "; read token
|
|
||||||
if [ -z "$token" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Token não pode estar vazia!"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php ulekbot $token $id
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "12" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Remover todos os usuarios? S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
echo -ne "Tem Certeza? essa acao nao pode ser revertida! S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php deleteall
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "13" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Remover Script e todos usuarios? S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
echo -ne "Tem Certeza? essa acao nao pode ser revertida! S/n > "; read sn
|
|
||||||
lowercaseInput=$(echo "$sn" | tr '[:upper:]' '[:lower:]')
|
|
||||||
|
|
||||||
if [[ "$lowercaseInput" == 'y' || "$lowercaseInput" == 's' ]]; then
|
|
||||||
php /opt/DragonCore/menu.php deleteall
|
|
||||||
apt purge openvpn -y
|
|
||||||
apt purge stunnel4 -y
|
|
||||||
apt purge php*
|
|
||||||
apt purge postgresql* -y
|
|
||||||
rm -rf /etc/openvpn
|
|
||||||
rm -rf /opt/DragonCoreSSH
|
|
||||||
screen -X -S proxydragon quit
|
|
||||||
screen -X -S openvpn quit
|
|
||||||
screen -X -S badvpn quit
|
|
||||||
screen -X -S checkuser quit
|
|
||||||
screen -X -S napster quit
|
|
||||||
screen -X -S limiter quit
|
|
||||||
rm /bin/menu
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuferrament
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
|
|
||||||
else
|
|
||||||
menuferrament
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
menuuser(){
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php menuusuario
|
|
||||||
echo -ne "> "; read cake
|
|
||||||
#--------------------
|
|
||||||
if [ "$cake" == "1" ]; then
|
|
||||||
clear
|
|
||||||
echo -ne "Usuario > "; read user
|
|
||||||
if [ -z "$user" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
echo -ne "Senha > "; read pass
|
|
||||||
if [ -z "$pass" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
echo -ne "Validade > "; read val
|
|
||||||
if [ -z "$val" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
echo -ne "Limite > "; read lim
|
|
||||||
if [ -z "$lim" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php criaruser $val $user $pass $lim
|
|
||||||
clear
|
|
||||||
echo "Usuario: $user"
|
|
||||||
echo "Senha: $pass"
|
|
||||||
echo "Validade: $val"
|
|
||||||
echo "Limite: $lim"
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "2" ]; then
|
|
||||||
clear
|
|
||||||
echo "Gerar Teste:"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Validade em Minutos > "; read data
|
|
||||||
if [ -z "$data" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php gerarteste $data
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "0" ]; then
|
|
||||||
menu
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "3" ]; then
|
|
||||||
clear
|
|
||||||
echo "Remover Usuario:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php printusers
|
|
||||||
echo ""
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
if [ -z "$user" ];then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php delusernew $user
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "4" ]; then
|
|
||||||
clear
|
|
||||||
echo "Usuarios online"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php sshmonitor
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "5" ]; then
|
|
||||||
clear
|
|
||||||
echo "Alterar Data:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php printvalinew
|
|
||||||
echo ""
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
echo -ne "Dias > "; read data
|
|
||||||
if [ -z "$user" ]; then
|
|
||||||
menuuser
|
|
||||||
elif [ -z "$data" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php alterardatanew $user $data
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php printvalidnew $user
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "6" ]; then
|
|
||||||
clear
|
|
||||||
echo "Alterar Limite:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php printlimnew
|
|
||||||
echo ""
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
echo -ne "Limit > "; read lim
|
|
||||||
if [ -z "$user" ]; then
|
|
||||||
menuuser
|
|
||||||
elif [ -z "$lim" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php uplimitnew $user $lim
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php printlim2new $user
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "7" ]; then
|
|
||||||
clear
|
|
||||||
echo "Alterar Senha:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php printpass
|
|
||||||
echo ""
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
echo -ne "Senha > "; read pass
|
|
||||||
if [ -z "$user" ]; then
|
|
||||||
menuuser
|
|
||||||
elif [ -z "$pass" ]; then
|
|
||||||
menuuser
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php uppassnew $user $pass
|
|
||||||
#clear
|
|
||||||
php /opt/DragonCore/menu.php printpassnew $user
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "8" ]; then
|
|
||||||
clear
|
|
||||||
echo "Relatorio de Usuarios:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php relatoriouser
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
#--------------------
|
|
||||||
elif [ "$cake" == "9" ]; then
|
|
||||||
clear
|
|
||||||
echo "Remover Expirados:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php removeexpired
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuuser
|
|
||||||
#--------------------
|
|
||||||
else
|
|
||||||
menuuser
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
menuv2(){
|
|
||||||
clear
|
|
||||||
php /opt/DragonCore/menu.php menuv2
|
|
||||||
echo -ne "> "; read cake
|
|
||||||
if [ "$cake" == "0" ]; then
|
|
||||||
menucon
|
|
||||||
#____________
|
|
||||||
elif [ -z $cake ]; then
|
|
||||||
menuv2
|
|
||||||
#_____________
|
|
||||||
elif [ "$cake" == "1" ]; then
|
|
||||||
clear
|
|
||||||
echo "Criar Usuario:"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Usuario > "; read user
|
|
||||||
if [ -z $user ]; then
|
|
||||||
menuv2
|
|
||||||
else
|
|
||||||
php /opt/DragonCore/menu.php addv2user $user
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuv2
|
|
||||||
fi
|
|
||||||
#----
|
|
||||||
elif [ "$cake" == "2" ]; then
|
|
||||||
clear
|
|
||||||
echo "Remover Usuario:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php v2users
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
if [ -z $user ]; then
|
|
||||||
menuv2
|
|
||||||
else
|
|
||||||
uid=$(php /opt/DragonCore/menu.php v2uid $user)
|
|
||||||
php /opt/DragonCore/menu.php delv2 $uid
|
|
||||||
php /opt/DragonCore/menu.php dlv2 $user
|
|
||||||
echo "UUID: $uid REMOVIDO!"
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuv2
|
|
||||||
fi
|
|
||||||
elif [ "$cake" == "3" ]; then
|
|
||||||
clear
|
|
||||||
echo "Usuarios:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php v2users
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuv2
|
|
||||||
#----
|
|
||||||
elif [ "$cake" == "4" ]; then
|
|
||||||
clear
|
|
||||||
echo "Link VMESS:"
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php v2users
|
|
||||||
echo -ne "ID > "; read user
|
|
||||||
if [ -z $user ]; then
|
|
||||||
menuv2
|
|
||||||
else
|
|
||||||
uid=$(php /opt/DragonCore/menu.php v2uid $user)
|
|
||||||
echo ""
|
|
||||||
php /opt/DragonCore/menu.php extractVmessUrlByUUID $uid
|
|
||||||
echo ""
|
|
||||||
echo -ne "Pressione enter para continuar"; read enter
|
|
||||||
menuv2
|
|
||||||
fi
|
|
||||||
#-----
|
|
||||||
elif [ "$cake" == "5" ];then
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php v2protocol)
|
|
||||||
menuv2
|
|
||||||
#-----
|
|
||||||
elif [ "$cake" == "6" ];then
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php v2tls)
|
|
||||||
menuv2
|
|
||||||
#-----
|
|
||||||
elif [ "$cake" == "7" ];then
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php v2port)
|
|
||||||
menuv2
|
|
||||||
#-----
|
|
||||||
elif [ "$cake" == "8" ];then
|
|
||||||
clear
|
|
||||||
bash <(php /opt/DragonCore/menu.php intallv2)
|
|
||||||
menuv2
|
|
||||||
#-----
|
|
||||||
else
|
|
||||||
menuv2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
menu
|
|
||||||
514
xray.php
Normal file
514
xray.php
Normal file
@@ -0,0 +1,514 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once '/opt/DragonCore/config.php';
|
||||||
|
|
||||||
|
function createXrayTable()
|
||||||
|
{
|
||||||
|
global $db_user, $db_pass;
|
||||||
|
$conn = pg_connect("host=localhost dbname=dragoncore user={$db_user} password={$db_pass}");
|
||||||
|
if (!$conn) {
|
||||||
|
echo "Failed to connect to PostgreSQL\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$query = "CREATE TABLE IF NOT EXISTS xray (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
uuid TEXT,
|
||||||
|
nick TEXT,
|
||||||
|
expiry DATE,
|
||||||
|
protocol TEXT
|
||||||
|
);";
|
||||||
|
$result = pg_query($conn, $query);
|
||||||
|
if (!$result) {
|
||||||
|
echo "Error creating Xray table: " . pg_last_error($conn) . "\n";
|
||||||
|
}
|
||||||
|
pg_close($conn);
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayConfigPath(): string
|
||||||
|
{
|
||||||
|
return '/usr/local/etc/xray/config.json';
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayEnsureConfigDir(): void
|
||||||
|
{
|
||||||
|
$dir = dirname(xrayConfigPath());
|
||||||
|
if (!is_dir($dir)) {
|
||||||
|
mkdir($dir, 0755, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isXrayInstalled(): bool
|
||||||
|
{
|
||||||
|
$paths = [
|
||||||
|
'/usr/local/bin/xray',
|
||||||
|
'/usr/bin/xray'
|
||||||
|
];
|
||||||
|
foreach ($paths as $p) {
|
||||||
|
if (file_exists($p)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayInstall()
|
||||||
|
{
|
||||||
|
if (isXrayInstalled()) {
|
||||||
|
echo "echo 'Xray ja esta instalado';\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo 'bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install' . "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayRemove()
|
||||||
|
{
|
||||||
|
if (!isXrayInstalled()) {
|
||||||
|
echo "echo 'Xray nao esta instalado';\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo 'bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ remove' . "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayGetProtocols()
|
||||||
|
{
|
||||||
|
global $db_user, $db_pass;
|
||||||
|
$protocols = [];
|
||||||
|
$conn = pg_connect("host=localhost dbname=dragoncore user={$db_user} password={$db_pass}");
|
||||||
|
if ($conn) {
|
||||||
|
$res = pg_query($conn, 'SELECT DISTINCT protocol FROM xray ORDER BY protocol');
|
||||||
|
while ($row = pg_fetch_assoc($res)) {
|
||||||
|
$protocols[] = $row['protocol'];
|
||||||
|
}
|
||||||
|
pg_close($conn);
|
||||||
|
}
|
||||||
|
echo implode(', ', $protocols);
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayListSimple()
|
||||||
|
{
|
||||||
|
global $db_user, $db_pass;
|
||||||
|
$conn = pg_connect("host=localhost dbname=dragoncore user={$db_user} password={$db_pass}");
|
||||||
|
if ($conn) {
|
||||||
|
$res = pg_query($conn, 'SELECT uuid, expiry FROM xray ORDER BY id');
|
||||||
|
while ($row = pg_fetch_assoc($res)) {
|
||||||
|
echo $row['uuid'] . ' ' . $row['expiry'] . "\n";
|
||||||
|
}
|
||||||
|
pg_close($conn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayChoice(): string
|
||||||
|
{
|
||||||
|
return isXrayInstalled() ? 'Remover' : 'Instalar';
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayUuid(): string
|
||||||
|
{
|
||||||
|
$uuid = trim((string)@shell_exec('uuidgen'));
|
||||||
|
if ($uuid !== '') {
|
||||||
|
return $uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (function_exists('random_bytes')) {
|
||||||
|
$data = random_bytes(16);
|
||||||
|
$data[6] = chr((ord($data[6]) & 0x0f) | 0x40);
|
||||||
|
$data[8] = chr((ord($data[8]) & 0x3f) | 0x80);
|
||||||
|
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
|
||||||
|
}
|
||||||
|
|
||||||
|
return md5(uniqid((string)mt_rand(), true));
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayGenerateConfig($port, string $network = 'xhttp')
|
||||||
|
{
|
||||||
|
$configPath = xrayConfigPath();
|
||||||
|
xrayEnsureConfigDir();
|
||||||
|
|
||||||
|
$port = (int)$port;
|
||||||
|
if ($port <= 0 || $port > 65535) {
|
||||||
|
$port = 443;
|
||||||
|
}
|
||||||
|
|
||||||
|
$network = strtolower($network);
|
||||||
|
if (!in_array($network, ['xhttp', 'ws', 'grpc', 'tcp'], true)) {
|
||||||
|
$network = 'xhttp';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$apiInbound = [
|
||||||
|
'tag' => 'api',
|
||||||
|
'port' => 1080,
|
||||||
|
'protocol' => 'dokodemo-door',
|
||||||
|
'settings' => [
|
||||||
|
'address' => '127.0.0.1',
|
||||||
|
],
|
||||||
|
'listen' => '127.0.0.1',
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
$streamSettings = [
|
||||||
|
'network' => $network,
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($network === 'xhttp') {
|
||||||
|
$streamSettings['security'] = 'tls';
|
||||||
|
$streamSettings['tlsSettings'] = [
|
||||||
|
'certificates' => [[
|
||||||
|
'certificateFile' => '/opt/DragonCoreSSL/fullchain.pem',
|
||||||
|
'keyFile' => '/opt/DragonCoreSSL/privkey.pem',
|
||||||
|
]],
|
||||||
|
'alpn' => ['http/1.1'],
|
||||||
|
];
|
||||||
|
$streamSettings['xhttpSettings'] = [
|
||||||
|
'headers' => null,
|
||||||
|
'host' => '',
|
||||||
|
'mode' => '',
|
||||||
|
'noSSEHeader' => false,
|
||||||
|
'path' => '/',
|
||||||
|
'scMaxBufferedPosts' => 30,
|
||||||
|
'scMaxEachPostBytes' => '1000000',
|
||||||
|
'scStreamUpServerSecs' => '20-80',
|
||||||
|
'xPaddingBytes' => '100-1000',
|
||||||
|
];
|
||||||
|
} elseif ($network === 'ws') {
|
||||||
|
$streamSettings['security'] = 'none';
|
||||||
|
$streamSettings['wsSettings'] = [
|
||||||
|
'acceptProxyProtocol' => false,
|
||||||
|
'headers' => (object)[],
|
||||||
|
'heartbeatPeriod' => 0,
|
||||||
|
'host' => '',
|
||||||
|
'path' => '/',
|
||||||
|
];
|
||||||
|
} elseif ($network === 'grpc') {
|
||||||
|
$streamSettings['security'] = 'none';
|
||||||
|
$streamSettings['grpcSettings'] = [
|
||||||
|
'serviceName' => 'vlessgrpc',
|
||||||
|
'multiMode' => false,
|
||||||
|
'idle_timeout' => 60,
|
||||||
|
'permit_without_stream' => false,
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
$streamSettings['security'] = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$dragonInbound = [
|
||||||
|
'tag' => 'inbound-dragoncore',
|
||||||
|
'port' => $port,
|
||||||
|
'protocol' => 'vless',
|
||||||
|
'settings' => [
|
||||||
|
'clients' => [],
|
||||||
|
'decryption' => 'none',
|
||||||
|
'fallbacks' => [],
|
||||||
|
],
|
||||||
|
'streamSettings' => $streamSettings,
|
||||||
|
];
|
||||||
|
|
||||||
|
$config = [
|
||||||
|
'api' => [
|
||||||
|
'services' => [
|
||||||
|
'HandlerService',
|
||||||
|
'LoggerService',
|
||||||
|
'StatsService',
|
||||||
|
],
|
||||||
|
'tag' => 'api',
|
||||||
|
],
|
||||||
|
'burstObservatory' => null,
|
||||||
|
'dns' => null,
|
||||||
|
'fakedns' => null,
|
||||||
|
'inbounds' => [
|
||||||
|
$apiInbound,
|
||||||
|
$dragonInbound,
|
||||||
|
],
|
||||||
|
'observatory' => null,
|
||||||
|
'outbounds' => [
|
||||||
|
[
|
||||||
|
'protocol' => 'freedom',
|
||||||
|
'settings' => (object)[],
|
||||||
|
'tag' => 'direct',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'protocol' => 'blackhole',
|
||||||
|
'settings' => (object)[],
|
||||||
|
'tag' => 'blocked',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'reverse' => null,
|
||||||
|
'routing' => [
|
||||||
|
'domainStrategy' => 'AsIs',
|
||||||
|
'rules' => [
|
||||||
|
[
|
||||||
|
'inboundTag' => ['api'],
|
||||||
|
'outboundTag' => 'api',
|
||||||
|
'type' => 'field',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'ip' => ['geoip:private'],
|
||||||
|
'outboundTag' => 'blocked',
|
||||||
|
'type' => 'field',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'outboundTag' => 'blocked',
|
||||||
|
'protocol' => ['bittorrent'],
|
||||||
|
'type' => 'field',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'stats' => (object)[],
|
||||||
|
'transport' => null,
|
||||||
|
];
|
||||||
|
|
||||||
|
file_put_contents(
|
||||||
|
$configPath,
|
||||||
|
json_encode($config, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
|
||||||
|
);
|
||||||
|
|
||||||
|
@shell_exec('systemctl restart xray');
|
||||||
|
echo "Config Xray gerado em {$configPath} (porta {$port}, protocolo {$network})\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayFixEmptyObjects(array &$config): void
|
||||||
|
{
|
||||||
|
|
||||||
|
if (isset($config['stats']) && is_array($config['stats']) && empty($config['stats'])) {
|
||||||
|
$config['stats'] = (object)[];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (isset($config['outbounds']) && is_array($config['outbounds'])) {
|
||||||
|
foreach ($config['outbounds'] as &$out) {
|
||||||
|
if (isset($out['settings']) && is_array($out['settings']) && empty($out['settings'])) {
|
||||||
|
$out['settings'] = (object)[];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unset($out);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayAddUser(string $nick, string $protocol = 'xhttp')
|
||||||
|
{
|
||||||
|
global $db_user, $db_pass;
|
||||||
|
|
||||||
|
$uuid = xrayUuid();
|
||||||
|
$expiry = date('Y-m-d', strtotime('+30 days'));
|
||||||
|
|
||||||
|
$configPath = xrayConfigPath();
|
||||||
|
if (!file_exists($configPath)) {
|
||||||
|
echo "Arquivo de configuracao {$configPath} nao encontrado. Gere o config Xray primeiro.\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$config = json_decode(file_get_contents($configPath), true);
|
||||||
|
if (!is_array($config)) {
|
||||||
|
echo "Falha ao ler/decodificar {$configPath}.\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$inboundIndex = null;
|
||||||
|
if (isset($config['inbounds']) && is_array($config['inbounds'])) {
|
||||||
|
foreach ($config['inbounds'] as $idx => $in) {
|
||||||
|
if (isset($in['tag']) && $in['tag'] === 'inbound-dragoncore') {
|
||||||
|
$inboundIndex = $idx;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($inboundIndex === null) {
|
||||||
|
echo "Inbound 'inbound-dragoncore' nao encontrado no config Xray.\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
!isset($config['inbounds'][$inboundIndex]['settings']['clients']) ||
|
||||||
|
!is_array($config['inbounds'][$inboundIndex]['settings']['clients'])
|
||||||
|
) {
|
||||||
|
$config['inbounds'][$inboundIndex]['settings']['clients'] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$client = [
|
||||||
|
'id' => $uuid,
|
||||||
|
'email' => $nick,
|
||||||
|
'level' => 0,
|
||||||
|
];
|
||||||
|
$config['inbounds'][$inboundIndex]['settings']['clients'][] = $client;
|
||||||
|
|
||||||
|
xrayFixEmptyObjects($config);
|
||||||
|
file_put_contents(
|
||||||
|
$configPath,
|
||||||
|
json_encode($config, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
$conn = pg_connect("host=localhost dbname=dragoncore user={$db_user} password={$db_pass}");
|
||||||
|
if ($conn) {
|
||||||
|
$query = "INSERT INTO xray (uuid, nick, expiry, protocol) VALUES ($1,$2,$3,$4)";
|
||||||
|
$stmt = pg_prepare($conn, '', $query);
|
||||||
|
pg_execute($conn, '', [$uuid, $nick, $expiry, $protocol]);
|
||||||
|
pg_close($conn);
|
||||||
|
}
|
||||||
|
|
||||||
|
@shell_exec('systemctl restart xray');
|
||||||
|
|
||||||
|
$domain = trim((string)shell_exec('hostname -I | awk "{print $1}"'));
|
||||||
|
if ($domain === '') {
|
||||||
|
$domain = '127.0.0.1';
|
||||||
|
}
|
||||||
|
$port = $config['inbounds'][$inboundIndex]['port'];
|
||||||
|
$uri = "vless://{$uuid}@{$domain}:{$port}#{$nick}";
|
||||||
|
|
||||||
|
echo "UUID Criado: {$uuid}\n{$uri}\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayRemoveUser($identifier)
|
||||||
|
{
|
||||||
|
global $db_user, $db_pass;
|
||||||
|
$uuid = null;
|
||||||
|
|
||||||
|
if (is_numeric($identifier)) {
|
||||||
|
$conn = pg_connect("host=localhost dbname=dragoncore user={$db_user} password={$db_pass}");
|
||||||
|
if ($conn) {
|
||||||
|
$res = pg_query_params($conn, 'SELECT uuid FROM xray WHERE id = $1', [$identifier]);
|
||||||
|
if ($res && ($row = pg_fetch_assoc($res))) {
|
||||||
|
$uuid = $row['uuid'];
|
||||||
|
}
|
||||||
|
pg_close($conn);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$uuid = $identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$uuid) {
|
||||||
|
echo "UUID nao encontrado\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$configPath = xrayConfigPath();
|
||||||
|
if (file_exists($configPath)) {
|
||||||
|
$config = json_decode(file_get_contents($configPath), true);
|
||||||
|
if (isset($config['inbounds']) && is_array($config['inbounds'])) {
|
||||||
|
$inboundIndex = null;
|
||||||
|
foreach ($config['inbounds'] as $idx => $in) {
|
||||||
|
if (isset($in['tag']) && $in['tag'] === 'inbound-dragoncore') {
|
||||||
|
$inboundIndex = $idx;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
$inboundIndex !== null &&
|
||||||
|
isset($config['inbounds'][$inboundIndex]['settings']['clients']) &&
|
||||||
|
is_array($config['inbounds'][$inboundIndex]['settings']['clients'])
|
||||||
|
) {
|
||||||
|
|
||||||
|
$clients = &$config['inbounds'][$inboundIndex]['settings']['clients'];
|
||||||
|
foreach ($clients as $index => $cli) {
|
||||||
|
if (isset($cli['id']) && $cli['id'] === $uuid) {
|
||||||
|
array_splice($clients, $index, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
xrayFixEmptyObjects($config);
|
||||||
|
file_put_contents(
|
||||||
|
$configPath,
|
||||||
|
json_encode($config, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$conn = pg_connect("host=localhost dbname=dragoncore user={$db_user} password={$db_pass}");
|
||||||
|
if ($conn) {
|
||||||
|
pg_query_params($conn, 'DELETE FROM xray WHERE uuid = $1', [$uuid]);
|
||||||
|
pg_close($conn);
|
||||||
|
}
|
||||||
|
|
||||||
|
@shell_exec('systemctl restart xray');
|
||||||
|
echo "Usuario removido: {$uuid}\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayListUsers()
|
||||||
|
{
|
||||||
|
global $db_user, $db_pass;
|
||||||
|
$conn = pg_connect("host=localhost dbname=dragoncore user={$db_user} password={$db_pass}");
|
||||||
|
if (!$conn) {
|
||||||
|
echo "Falha ao conectar ao banco de dados\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$res = pg_query($conn, 'SELECT id, uuid, nick, expiry, protocol FROM xray ORDER BY id');
|
||||||
|
while ($row = pg_fetch_assoc($res)) {
|
||||||
|
echo "ID: {$row['id']} | NICK: {$row['nick']} | UUID: {$row['uuid']} | EXPIRA: {$row['expiry']} | PROTO: {$row['protocol']}\n";
|
||||||
|
}
|
||||||
|
pg_close($conn);
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayCert(string $domain)
|
||||||
|
{
|
||||||
|
$sslDir = '/opt/DragonCoreSSL';
|
||||||
|
$keyFile = $sslDir . '/privkey.pem';
|
||||||
|
$crtFile = $sslDir . '/fullchain.pem';
|
||||||
|
|
||||||
|
if (!is_dir($sslDir)) {
|
||||||
|
mkdir($sslDir, 0700, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$subject = '/C=BR/ST=SP/L=SaoPaulo/O=DragonCore/OU=VPN/CN=' . $domain;
|
||||||
|
|
||||||
|
$cmd = 'openssl req -x509 -nodes -newkey rsa:2048 '
|
||||||
|
. '-days 9999 '
|
||||||
|
. '-subj ' . escapeshellarg($subject) . ' '
|
||||||
|
. '-keyout ' . escapeshellarg($keyFile) . ' '
|
||||||
|
. '-out ' . escapeshellarg($crtFile) . ' 2>/dev/null';
|
||||||
|
|
||||||
|
@shell_exec($cmd);
|
||||||
|
|
||||||
|
if (file_exists($keyFile) && file_exists($crtFile)) {
|
||||||
|
echo "Certificado TLS autoassinado (9999 dias) gerado para {$domain}\n";
|
||||||
|
} else {
|
||||||
|
echo "Falha ao gerar certificado autoassinado para {$domain}\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayPurgeExpired()
|
||||||
|
{
|
||||||
|
global $db_user, $db_pass;
|
||||||
|
$today = date('Y-m-d');
|
||||||
|
$conn = pg_connect("host=localhost dbname=dragoncore user={$db_user} password={$db_pass}");
|
||||||
|
if ($conn) {
|
||||||
|
$res = pg_query_params($conn, 'SELECT uuid FROM xray WHERE expiry < $1', [$today]);
|
||||||
|
while ($row = pg_fetch_assoc($res)) {
|
||||||
|
xrayRemoveUser($row['uuid']);
|
||||||
|
}
|
||||||
|
pg_close($conn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function xrayInfo()
|
||||||
|
{
|
||||||
|
$binary = isXrayInstalled() ? '/usr/local/bin/xray' : 'xray';
|
||||||
|
$version = trim((string)shell_exec($binary . ' -version 2>&1'));
|
||||||
|
|
||||||
|
global $db_user, $db_pass;
|
||||||
|
$conn = pg_connect("host=localhost dbname=dragoncore user={$db_user} password={$db_pass}");
|
||||||
|
$count = 0;
|
||||||
|
$protocols = [];
|
||||||
|
if ($conn) {
|
||||||
|
$res = pg_query($conn, 'SELECT COUNT(*) AS c FROM xray');
|
||||||
|
if ($row = pg_fetch_assoc($res)) {
|
||||||
|
$count = $row['c'];
|
||||||
|
}
|
||||||
|
$res2 = pg_query($conn, 'SELECT DISTINCT protocol FROM xray');
|
||||||
|
while ($r = pg_fetch_assoc($res2)) {
|
||||||
|
$protocols[] = $r['protocol'];
|
||||||
|
}
|
||||||
|
pg_close($conn);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Xray Versao: {$version}\n";
|
||||||
|
echo "Usuarios cadastrados: {$count}\n";
|
||||||
|
echo "Protocolos em uso: " . implode(', ', $protocols) . "\n";
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user