Compare commits

..

20 Commits

Author SHA1 Message Date
8d66b08728 Fix Xray Menu 2025-12-01 00:39:35 -03:00
5d36fa750a Fix Xray XHTTP 2025-12-01 00:36:55 -03:00
be64961777 Fix version 2025-12-01 00:33:20 -03:00
55738548ad Merge branch 'main' of https://git.dr2.site/penguinehis/DragonCoreSSH-Beta 2025-12-01 00:31:15 -03:00
0fd78e2a04 38 fix xray 2025-12-01 00:29:45 -03:00
c8562cc676 Fix install depencencies 2025-11-30 19:03:50 -03:00
e8ab47db2c Fix xray table 2025-11-30 18:29:48 -03:00
48ebb5554f Fix xray table 2025-11-30 18:29:29 -03:00
3e0f942371 V36 Slowdns 2025-11-27 12:18:12 -03:00
26fb8a222c Fix V2ray Crash 35 2025-11-26 18:59:01 -03:00
4406131676 Remove old v2ray module 2025-11-26 14:27:32 -03:00
6f81d9f9cf 34 Xray Beta 2025-11-26 14:15:36 -03:00
d604c1e8ab Fix Install 33 2025-11-24 22:21:41 -03:00
ad9ece7763 FIX 2025-11-24 22:16:31 -03:00
fd7681930b Fix PHP 7 32 2025-11-24 22:10:14 -03:00
1dd676c628 31 Opensource FIX 2025-11-24 22:00:00 -03:00
4935d4abff 30 Fix 3 2025-11-24 21:54:37 -03:00
f8d6d82f4f Fix 30 2025-11-24 21:34:31 -03:00
04c440ac2b 30 Opensource 2025-11-24 21:29:25 -03:00
0a422d325d 30 Opensource 2025-11-24 21:29:17 -03:00
46 changed files with 4459 additions and 2018 deletions

BIN
aarch64/dnstt-server Normal file

Binary file not shown.

View File

@@ -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

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

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

113
dnstt.php Normal file
View 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";
}
}

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

View File

@@ -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,149 +25,81 @@ 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
php /opt/DragonCore/menu.php createdbdragon php /opt/DragonCore/menu.php createdbdragon
@@ -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
sed -i '/# HostKeyAlgorithms/ a\HostKeyAlgorithms +ssh-rsa' /etc/ssh/sshd_config php /opt/DragonCore/menu.php createXrayTable
sed -i '/# PubkeyAcceptedKeyTypes/ a\PubkeyAcceptedKeyTypes +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
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'
@@ -191,8 +129,8 @@ install_netstat() {
else else
echo "Netstat is not installed. Trying to install..." echo "Netstat is not installed. Trying to install..."
if [ -x "$(command -v apt)" ]; then if [ -x "$(command -v apt)" ]; then
apt update apt update
apt install -y net-tools apt install -y net-tools
echo -e "${GREEN}Netstat installation complete.${NC}" echo -e "${GREEN}Netstat installation complete.${NC}"
else else
echo -e "${RED}Unsupported system. Please install netstat manually.${NC}" echo -e "${RED}Unsupported system. Please install netstat manually.${NC}"
@@ -200,7 +138,8 @@ 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
screen -X -S badvpn quit screen -X -S badvpn 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 ""

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
View 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

240
menu.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

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

File diff suppressed because one or more lines are too long

269
v2ray
View File

@@ -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

File diff suppressed because one or more lines are too long

View File

@@ -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

Binary file not shown.

View File

@@ -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
View 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";
}