Cara Menggunakan:
1.Buka file dengan perintah: sudo nano /opt/udp-proxy/bin/monitorpanel.sh
sudo nano /opt/udp-proxy/bin/monitorpanel.sh
2.Hapus semua isi file lama
3.Copy dan paste script di atas ke dalam file
4.Simpan dengan Ctrl+X, lalu Y, lalu Enter
5.Jalankan panel dengan perintah: bash /opt/udp-proxy/bin/monitorpanel.sh
bash /opt/udp-proxy/bin/monitorpanel.sh
6.Untuk menampilkan panel menu cukup ketik monitorpanel pada terminalmonitorpanel
Script Monitoring UDP V3
#!/bin/bash
# --- DEFINISI WARNA ---
NC='\033[0m'; RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; BLUE='\033[0;34m'; MAGENTA='\033[0;35m'; CYAN='\033[0;36m'; WHITE='\033[1;37m'
# --- Fungsi Helper untuk Enforcer ---
function start_enforcer() {
if pgrep -f "enforcer.sh" > /dev/null; then
echo -e "${YELLOW}Penjaga Koneksi (Enforcer) sudah berjalan.${NC}"
else
echo -e "${YELLOW}Menjalankan Penjaga Koneksi di latar belakang...${NC}"
screen -dmS enforcer /opt/udp-proxy/bin/enforcer.sh
sleep 2
if pgrep -f "enforcer.sh" > /dev/null; then
echo -e "${GREEN}Penjaga Koneksi berhasil dijalankan.${NC}"
else
echo -e "${RED}Gagal menjalankan Penjaga Koneksi. Cek lognya dengan 'screen -r enforcer'.${NC}"
fi
fi
}
function stop_enforcer() {
if pgrep -f "enforcer.sh" > /dev/null; then
echo -e "${YELLOW}Menghentikan Penjaga Koneksi...${NC}"
pkill -f "enforcer.sh"
sleep 2
echo -e "${GREEN}Penjaga Koneksi telah dihentikan.${NC}"
else
echo -e "${YELLOW}Penjaga Koneksi tidak sedang berjalan.${NC}"
fi
}
function show_enforcer_status() {
if pgrep -f "enforcer.sh" > /dev/null; then
echo -e "${GREEN}Status: Berjalan${NC}"
echo -e "Untuk melihat log real-time, jalankan: ${CYAN}screen -r enforcer${NC}"
else
echo -e "${RED}Status: Tidak Berjalan${NC}"
fi
echo ""
echo -e "${CYAN}Aturan IP yang diblokir saat ini:${NC}"
sudo iptables -L UDP_ENFORCER --line-numbers -n
}
function unkick_all() {
echo -e "${YELLOW}Menghapus semua aturan blokir IP...${NC}"
sudo iptables -F UDP_ENFORCER
echo -e "${GREEN}Semua IP telah dibebaskan (unkicked).${NC}"
}
# --- Fungsi Menu Enforcer ---
function show_enforcer_menu() {
while true; do
show_header
echo -e "${BLUE}--- Kelola Penjaga Koneksi (Kick Multi-Login) ---${NC}"
echo -e " ${GREEN}1.${NC} Jalankan Penjaga Koneksi"
echo -e " ${GREEN}2.${NC} Hentikan Penjaga Koneksi"
echo -e " ${GREEN}3.${NC} Lihat Status Penjaga & IP Terblokir"
echo -e " ${YELLOW}4.${NC} Hapus Semua Blokir IP (Unkick All)"
echo -e " ${RED}5.${NC} Kembali ke Menu Utama"
echo ""
printf "${YELLOW}Masukkan pilihan Anda [1-5]: ${NC}"
read choice
case $choice in
1)
echo -e "${YELLOW}Menjalankan dan mengaktifkan Penjaga Koneksi...${NC}"
sudo systemctl enable udp-enforcer.service
sudo systemctl start udp-enforcer.service
sleep 2
echo -e "${GREEN}Selesai.${NC}"
;;
2)
echo -e "${YELLOW}Menghentikan dan menonaktifkan Penjaga Koneksi...${NC}"
sudo systemctl stop udp-enforcer.service
sudo systemctl disable udp-enforcer.service
sleep 2
echo -e "${GREEN}Selesai.${NC}"
;;
3)
echo -e "${CYAN}Status Layanan:${NC}"
sudo systemctl status udp-enforcer.service --no-pager
echo ""
echo -e "${CYAN}Aturan IP yang diblokir saat ini:${NC}"
sudo iptables -L UDP_ENFORCER --line-numbers -n
;;
4) unkick_all ;;
5) break ;;
*) echo -e "${RED}Pilihan tidak valid.${NC}"; sleep 1 ;;
esac
read -p "Tekan Enter untuk melanjutkan..."
done
}
# --- FUNGSI MENU LAINNYA (TIDAK PERLU DIUBAH) ---
function show_header() {
clear
echo -e "${CYAN}════════════════════════════════════════════════════════════════════════════════${NC}"
echo -e "${WHITE} [ UDP MONITOR PANEL ] ${NC}"
echo -e "${CYAN}════════════════════════════════════════════════════════════════════════════════${NC}"
echo -e "${CYAN} Powered by HAXOR ${NC}"
echo -e "${CYAN}════════════════════════════════════════════════════════════════════════════════${NC}"
echo ""
}
function show_menu() {
echo -e "${MAGENTA}Pilih kategori menu:${NC}"
echo -e " ${GREEN}1.${NC} Monitoring User UDP"
echo -e " ${GREEN}2.${NC} Monitoring Bandwidth & Jaringan"
echo -e " ${GREEN}3.${NC} Monitoring Sumber Daya (CPU/RAM/Disk)"
echo -e " ${GREEN}4.${NC} Informasi & Kontrol Sistem"
echo -e " ${GREEN}5.${NC} Kelola Penjaga Koneksi (Kick Multi-Login)"
echo -e " ${RED}6.${NC} Keluar"
echo ""
}
function show_user_menu() {
while true; do
show_header
echo -e "${BLUE}--- Monitoring User UDP ---${NC}"
echo -e " ${GREEN}1.${NC} Cek User Login (Real-time Dashboard)"; echo -e " ${GREEN}2.${NC} Cek User Multi-Login"; echo -e " ${GREEN}3.${NC} Tampilkan User Aktif Saat Ini"; echo -e " ${GREEN}4.${NC} Tampilkan Alur Log Koneksi (Live Stream)"; echo -e " ${RED}5.${NC} Kembali ke Menu Utama"; echo ""
printf "${YELLOW}Masukkan pilihan Anda [1-5]: ${NC}"; read choice
case $choice in 1) watch -n 5 udplog ;; 2) checkmultilogin ;; 3) udplog ;; 4) sudo journalctl -u udp-custom.service -f | grep "Client connected" ;; 5) break ;; *) echo -e "${RED}Pilihan tidak valid.${NC}"; sleep 1 ;; esac
read -p "Tekan Enter untuk melanjutkan..."
done
}
function show_network_menu() {
while true; do
show_header
echo -e "${BLUE}--- Monitoring Bandwidth & Jaringan ---${NC}"
echo -e " ${GREEN}1.${NC} Monitor Bandwidth (Per Jam)"; echo -e " ${GREEN}2.${NC} Monitor Bandwidth (Per Hari)"; echo -e " ${GREEN}3.${NC} Monitor Bandwidth (Per Bulan)"; echo -e " ${GREEN}4.${NC} Cek Kecepatan Internet (Ookla Speedtest)"; echo -e " ${RED}5.${NC} Kembali ke Menu Utama"; echo ""
printf "${YELLOW}Masukkan pilihan Anda [1-5]: ${NC}"; read choice
case $choice in 1) vnstat -h ;; 2) vnstat -d ;; 3) vnstat -m ;; 4) speedtest ;; 5) break ;; *) echo -e "${RED}Pilihan tidak valid.${NC}"; sleep 1 ;; esac
read -p "Tekan Enter untuk melanjutkan..."
done
}
function show_resource_menu() {
while true; do
show_header
echo -e "${BLUE}--- Monitoring Sumber Daya ---${NC}"
echo -e " ${GREEN}1.${NC} Tampilkan Penggunaan CPU & RAM (Real-time)"; echo -e " ${GREEN}2.${NC} Tampilkan Penggunaan Disk"; echo -e " ${GREEN}3.${NC} Ringkasan Penggunaan Sumber Daya"; echo -e " ${RED}4.${NC} Kembali ke Menu Utama"; echo ""
printf "${YELLOW}Masukkan pilihan Anda [1-4]: ${NC}"; read choice
case $choice in 1) htop ;; 2) df -h ;; 3) echo -e "${CYAN}### Penggunaan CPU & RAM ###${NC}"; top -bn1 | head -5; echo -e "\n${CYAN}### Penggunaan Disk ###${NC}"; df -h ;; 4) break ;; *) echo -e "${RED}Pilihan tidak valid.${NC}"; sleep 1 ;; esac
read -p "Tekan Enter untuk melanjutkan..."
done
}
function show_system_menu() {
while true; do
show_header
echo -e "${BLUE}--- Informasi & Kontrol Sistem ---${NC}"
echo -e " ${GREEN}1.${NC} Informasi VPS Lengkap"; echo -e " ${GREEN}2.${NC} Pengguna VPS yang Sedang Login"; echo -e " ${GREEN}3.${NC} Restart Service UDP"; echo -e " ${YELLOW}4.${NC} Restart VPS"; echo -e " ${GREEN}5.${NC} Atur Auto Reboot VPS"; echo -e " ${RED}6.${NC} Kembali ke Menu Utama"; echo ""
printf "${YELLOW}Masukkan pilihan Anda [1-6]: ${NC}"; read choice
case $choice in
1) neofetch ;;
2) w ;;
3) echo -e "${YELLOW}Mencoba me-restart service udp-custom...${NC}"; sudo systemctl restart udp-custom.service; echo -e "${GREEN}Service telah di-restart.${NC}" ;;
4) printf "${RED}Apakah Anda yakin ingin me-reboot VPS? (y/n): ${NC}"; read confirm; if [[ $confirm == [yY] ]]; then echo -e "${YELLOW}VPS akan reboot dalam 5 detik...${NC}"; sleep 5; sudo reboot; fi ;;
5) setup_auto_reboot_menu ;;
6) break ;;
*) echo -e "${RED}Pilihan tidak valid.${NC}"; sleep 1 ;;
esac
read -p "Tekan Enter untuk melanjutkan..."
done
}
function setup_auto_reboot_menu() {
while true; do
show_header
echo -e "${BLUE}--- Atur Auto Reboot VPS ---${NC}"
echo -e " ${GREEN}1.${NC} Setiap Jam"; echo -e " ${GREEN}2.${NC} Setiap 6 Jam"; echo -e " ${GREEN}3.${NC} Setiap 12 Jam"; echo -e " ${GREEN}4.${NC} Setiap Hari (Tengah Malam)"; echo -e " ${YELLOW}5.${NC} Batalkan Auto Reboot"; echo -e " ${RED}6.${NC} Kembali"; echo ""
printf "${YELLOW}Masukkan pilihan Anda [1-6]: ${NC}"; read choice
local cron_job=""
case $choice in 1) cron_job="0 * * * * /sbin/reboot" ;; 2) cron_job="0 */6 * * * /sbin/reboot" ;; 3) cron_job="0 */12 * * * /sbin/reboot" ;; 4) cron_job="0 0 * * * /sbin/reboot" ;;
5) echo -e "${YELLOW}Membatalkan semua auto-reboot...${NC}"; (crontab -l | grep -v "/sbin/reboot") | crontab -; echo -e "${GREEN}Auto-reboot telah dibatalkan.${NC}"; read -p "Tekan Enter untuk melanjutkan..."; break ;;
6) break ;; *) echo -e "${RED}Pilihan tidak valid.${NC}"; sleep 1; continue ;;
esac
if [ -n "$cron_job" ]; then echo -e "${YELLOW}Menambahkan cron job: $cron_job${NC}"; (crontab -l 2>/dev/null; echo "$cron_job") | crontab -; echo -e "${GREEN}Auto-reboot telah diatur.${NC}"; read -p "Tekan Enter untuk melanjutkan..."; break; fi
done
}
# --- Loop Utama Program ---
while true; do
show_header; show_menu
printf "${YELLOW}Masukkan pilihan Anda [1-6]: ${NC}"; read choice
case $choice in
1) show_user_menu ;;
2) show_network_menu ;;
3) show_resource_menu ;;
4) show_system_menu ;;
5) show_enforcer_menu ;;
6) echo -e "${GREEN}Keluar dari Monitor Panel. Sampai jumpa!${NC}"; exit 0 ;;
*) echo -e "${RED}Pilihan tidak valid, silakan coba lagi.${NC}"; sleep 2 ;;
esac
done
