Seorang Driver Dump Truck Yang Menjadikan Computer Sebagai Hobi Dan Memiliki Ketertarikan Akan Dunia IT,Serta Ingin Selalu Mencoba Sesuatu Yang Baru Untuk Menambah Pengetahuan Dan Pengalaman Diri. "Computer is my hobby, the street is my life"
Jalan Raya Badau Km.11 Rt.006.Rw.002 Tanjung Pandan Belitung 33451
+628197887769
purwana.cecep@gmail.com
www.ceceppurwana.blogspot.co.id
My Professional Skills
Web Development90%
Internet Marketing95%
Computer Technician95%
Blogger95%
Driver97%
Services
Jasa Pembuatan Website
Menerima jasa pembuatan website Usaha,Pribadi,Organisasi,Sekolah,Berita,Iklan Online,Toko Online,dll sesuai dengan permintaan anda
Service Computer
Jasa Service komputer belitung terpercaya dan berpengalaman.Kami memberikan service dan layanan terbaik sehingga customer merasa puas akan layanan yang kami berikan
Perakitan Computer
Jasa Perakitan Komputer kantor, pribadi, maupun game/warnet, Kami Memenuhi kebutuhan anda berdasarkan budget dengan mengutamakan kualitas
Internet Marketing
Merancang cara pemasaran atau modern marketing plan yang fokus mendapatkan prospek atau leads hingga meningkatkan convertion rate merupakan pilihan yang cepat, tepat dan murah.
Pemasangan CCTV
Menerima Jasa Setting CCTV , Jasa Pemasangan CCTV dan Perawatan CCTV untuk Rumah, Kafe, Hotel, Penginapan, Rumah Makan, Kantor, Warnet dan lain-lainnya.Keterangan lebih lanjut hubungi kami.
Maintenance Computer
Jasa Maintenance komputer untuk perkantoran,sekolah atau warnet,khusus bagi anda yang menghargai waktu berharga anda.Serahkan urusan ini kepada kami.Yang terbaik hanya untuk anda
Ini adalah kelanjutan postingan sebelumnya dengan judul : Sistem Anti-MultiLogin UDP dengan Panel On/Off. Jika anda menemukan postingan ini harap untuk membuka dan membaca postingan sebelumnya untuk memahami secara utuh apa yang akan kita bahas di postingan ini.
Ikuti langkah-langkah di bawah ini untuk membuatnya.
Langkah 1: Membuat File Skrip hunter
Kita akan membuat file skrip bernama hunter di direktori /usr/local/bin. Direktori ini ada di PATH sistem, artinya Anda bisa menjalankan skrip dari mana saja dengan cukup mengetik namanya.
1.Buat file skrip dengan nano:
sudo nano /usr/local/bin/hunter
2.Copy-paste seluruh kode di bawah ini ke dalam file nano:
#!/bin/bash
# Fungsi untuk menampilkan menu
show_menu() {
clear
echo "=========================================="
echo " PANEL PENJAGA UDP - HUNTER"
echo "=========================================="
echo "1. Aktifkan Penjaga UDP"
echo "2. Nonaktifkan Penjaga UDP"
echo "3. Lihat Status Penjaga"
echo "4. Pantau Log Aktivitas (Live)"
echo "5. Lihat IP yang Diblokir"
echo "6. Bersihkan Semua IP yang Diblokir"
echo "7. Keluar"
echo "=========================================="
}
# Loop utama menu
while true; do
show_menu
read -p "Masukkan pilihan Anda [1-7]: " choice
case $choice in
1)
echo ">> Mengaktifkan Penjaga..."
sudo /opt/udp-proxy/panel/enable.sh
;;
2)
echo ">> Menonaktifkan Penjaga..."
sudo /opt/udp-proxy/panel/disable.sh
;;
3)
echo ">> Status Layanan Penjaga:"
sudo systemctl status udp-enforcer.service --no-pager
;;
4)
echo ">> Menampilkan log aktivitas (tekan Ctrl+C untuk kembali ke menu):"
sudo journalctl -u udp-enforcer.service -f
;;
5)
echo ">> Daftar IP yang saat ini diblokir:"
sudo iptables -L UDP_ENFORCER -n -v --line-numbers
;;
6)
echo ">> Membersihkan semua aturan blokir IP..."
sudo iptables -F UDP_ENFORCER
echo ">> Semua IP telah dibebaskan dari blokir."
;;
7)
echo ">> Keluar dari menu Hunter. Sampai jumpa!"
exit 0
;;
*)
echo ">> Pilihan tidak valid, silakan coba lagi."
;;
esac
# Jeda sebelum menampilkan menu kembali
echo ""
read -p "Tekan [Enter] untuk melanjutkan..."
done
3.Simpan dan keluar (Ctrl+X, Y, Enter).
Langkah 2: Jadikan Skrip Dapat Dieksekusi
Agar skrip hunter bisa dijalankan, kita perlu memberinya izin eksekusi.
sudo chmod +x /usr/local/bin/hunter
Langkah 3: Cara Menggunakan Menu hunter
1.Buka terminal.
2.Ketik perintah berikut untuk membuka menu:
sudo hunter
3.Anda akan melihat menu interaktif seperti ini:
PANEL PENJAGA UDP - HUNTER==========================================
1.Aktifkan Penjaga UDP
2.Nonaktifkan Penjaga UDP
3.Lihat Status Penjaga
4.Pantau Log Aktivitas (Live)
5.Lihat IP yang Diblokir
6.Bersihkan Semua IP yang Diblokir
7.Keluar
Masukkan pilihan Anda [1-7]:
Jika anda adalah admin dari sebuah server tunneling khususnya layanan UDP,ini adalah script Sistem Anti-MultiLogin UDP dengan Panel On/Off.Dengan cara ini anda bisa melihat user mana yang melakukan kecurangan multilogin akan bisa di atasi dengan mudah dan realtime.Script ini bisa di gunakan di Ubuntu 20.04 sampai dengan Ubuntu 24.04
Langkah 0: Persiapan Dan Prasyarat :
Sebelum memulai, pastikan dua hal ini terpenuhi.
1.Pastikan Anda memiliki layanan UDP proxy yang sudah berjalan. Anda perlu mengetahui nama layanan systemd-nya. Nama yang umum adalah udp-custom.service, udp-proxy.service, atau xray.service. Untuk panduan ini, kita akan menggunakan udp-custom.service sebagai contoh. Ganti dengan nama layanan Anda yang sebenarnya.
Cari nama layanan Anda:
systemctl list-units --type=service | grep -i udp
2.Instal conntrack. Alat ini wajib untuk memutus koneksi UDP secara paksa.
Langkah 1: Membuat Skrip Penjaga Utama
Ini adalah otak dari sistem. Skrip ini akan memantau log, mengelola status, dan mengeksekusi aturan firewall.
1.Buat file skrip di lokasi yang standar:
sudo nano /opt/udp-proxy/bin/enforcer_service.sh
2.Copy-paste seluruh kode di bawah ini. Jangan ubah apa pun kecuali yang ada di bagian "KONFIGURASI".
#!/bin/bash
# =================================================================
# --- CEK FILE BENDERA (PANEL KONTROL) ---
# Skrip akan berhenti jika file bendera ini tidak ada.
# =================================================================
FLAG_FILE="/opt/udp-proxy/log/enforcer.enabled"
if [ ! -f "$FLAG_FILE" ]; then
echo "[$(date)] File bendera '$FLAG_FILE' tidak ditemukan. Penjaga tidak aktif. Keluar."
exit 0
fi
# =================================================================
# --- KONFIGURASI PENJAGA (UBAH BAGIAN INI SAJA) ---
# =================================================================
PROTECTED_PORT=36712 # Port UDP yang dilindungi
STATE_FILE="/opt/udp-proxy/log/enforcer_state.log"
IPTABLES_CHAIN="UDP_ENFORCER"
MEMORY_MINUTES=10 # Berapa lama mengingat sesi yang tidak aktif
TIMEOUT_MINUTES=15 # Sesi dianggap hangus setelah X menit tidak ada aktivitas
GRACE_PERIOD_SECONDS=120 # Waktu tunggu sebelum IP lama ditendang (120 detik = 2 menit)
# Nama layanan UDP proxy Anda (DITEMUKAN DI LANGKAH 0)
UDP_SERVICE_NAME="udp-custom.service"
# =================================================================
# --- PASTIKAN DIREKTORI YANG DIPERLUKAN ADA ---
mkdir -p "$(dirname "$STATE_FILE")"
touch "$STATE_FILE"
# =================================================================
# --- FUNGSI PEMBERSIH (OTOMATIS LUPA & EKSEKUSI TIMER) ---
# =================================================================
function cleanup() {
echo "[$(date)] =====> MEMULAI PEMBERSIHAN DAN EKSEKUSI TIMER <====="
local current_time=$(date +%s)
local timeout_seconds=$((TIMEOUT_MINUTES * 60))
local temp_state_file=$(mktemp)
while IFS=':' read -r user ip last_seen violation_time; do
if [[ -z "$user" || -z "$ip" || -z "$last_seen" ]]; then continue; fi
local elapsed=$((current_time - last_seen))
if [ "$elapsed" -lt "$timeout_seconds" ]; then
if [[ -n "$violation_time" ]]; then
local violation_elapsed=$((current_time - violation_time))
if [ "$violation_elapsed" -ge "$GRACE_PERIOD_SECONDS" ]; then
echo "[$(date)] >>> EKSEKUSI: Timer habis. Memutus & memblokir IP '$ip' (user: '$user')..."
sudo conntrack -D -s "$ip" -p udp 2>/dev/null
if ! sudo iptables -C "$IPTABLES_CHAIN" -s "$ip" -j DROP &> /dev/null; then
sudo iptables -A "$IPTABLES_CHAIN" -s "$ip" -j DROP -m comment --comment "Kicked $USER on $(date +%F-%T)"
echo "[$(date)] >>> IP '$ip' telah diblokir."
fi
continue
else
echo "[$(date)] [DEBUG] Timer untuk IP '$ip' user '$user' belum habis. Menunggu..."
echo "${user}:${ip}:${last_seen}:${violation_time}" >> "$temp_state_file"
fi
else
echo "[$(date)] [DEBUG] Sesi normal untuk user '$user' dari IP '$ip'."
echo "${user}:${ip}:${last_seen}:" >> "$temp_state_file"
fi
else
echo "[$(date)] Sesi untuk user '$user' dari IP '$ip' kadaluarsa. Membuka blokir..."
local rule_num=$(sudo iptables -L "$IPTABLES_CHAIN" --line-numbers -n | grep "$ip" | awk '{print $1}' | head -n 1)
if [ -n "$rule_num" ]; then
sudo iptables -D "$IPTABLES_CHAIN" "$rule_num"
fi
fi
done < "$STATE_FILE"
mv "$temp_state_file" "$STATE_FILE"
echo "[$(date)] =====> PEMBERSIHAN SELESAI <====="
}
# =================================================================
# --- INISIALISASI PENJAGA ---
# =================================================================
# Buat chain jika belum ada
if ! sudo iptables -L "$IPTABLES_CHAIN" &> /dev/null; then
echo "[$(date)] Membuat chain iptables: $IPTABLES_CHAIN"
sudo iptables -N "$IPTABLES_CHAIN"
fi
# --- PASTIKAN POSISI ATURAN BENAR (KRUSIAL) ---
echo "[$(date)] Memastikan aturan iptables berada di posisi teratas..."
sudo iptables -D INPUT -p udp --dport "$PROTECTED_PORT" -j "$IPTABLES_CHAIN" 2>/dev/null
sudo iptables -D FORWARD -p udp --dport "$PROTECTED_PORT" -j "$IPTABLES_CHAIN" 2>/dev/null
sudo iptables -F "$IPTABLES_CHAIN" # Bersihkan aturan lama
sudo iptables -I INPUT 1 -p udp --dport "$PROTECTED_PORT" -j "$IPTABLES_CHAIN"
sudo iptables -I FORWARD 1 -p udp --dport "$PROTECTED_PORT" -j "$IPTABLES_CHAIN"
# Jalankan cleanup di latar belakang
while true; do
cleanup
sleep 300
done &
CLEANUP_PID=$!
trap 'kill $CLEANUP_PID; exit' SIGTERM SIGINT
# Memori awal
echo "[$(date)] Memuat memori awal dari $MEMORY_MINUTES menit terakhir..."
sudo journalctl -u "$UDP_SERVICE_NAME" --since "$MEMORY_MINUTES minutes ago" --no-pager | grep "Client connected" | sort | awk -F'[][]' '
{
for (i=1; i<=NF; i++) {
if ($i ~ /src:/) { split($i, s, ":"); ip = s[2]; }
if ($i ~ /user:/) { split($i, u, ":"); user = u[2]; }
}
if (user && ip) {
print user ":" ip ":" systime() ":" > "'"$STATE_FILE"'"
}
}'
awk -i inplace '!seen[$0]++' "$STATE_FILE"
echo "[$(date)] Memori awal selesai. Penjaga siap bertugas!"
# Loop utama pemantauan
echo "[$(date)] Memantau log layanan: $UDP_SERVICE_NAME"
sudo journalctl -u "$UDP_SERVICE_NAME" -f --no-tail | while read line; do
if [[ "$line" == *"[INFO]"*"[src:"*"[user:"*"Client connected"* ]]; then
IP=$(echo "$line" | awk -F'[][]' '{for(i=1;i<=NF;i++){if($i ~ /src:/){split($i, a, ":"); print a[2]}}}')
USER=$(echo "$line" | awk -F'[][]' '{for(i=1;i<=NF;i++){if($i ~ /user:/){split($i, a, ":"); print a[2]}}}')
if [[ -n "$IP" && -n "$USER" ]]; then
echo "[$(date)] Koneksi baru: User '$USER' dari IP '$IP'"
LAST_ENTRY=$(grep "^${USER}:" "$STATE_FILE" | tail -n 1)
LAST_IP=$(echo "$LAST_ENTRY" | cut -d':' -f2)
if [[ -n "$LAST_IP" && "$LAST_IP" != "$IP" ]]; then
echo "[$(date)] >>> PELANGGARAN: User '$USER' multi-login (IP lama: '$LAST_IP', IP baru: '$IP')."
echo "[$(date)] >>> IP lama '$LAST_IP' akan ditendang dalam $((GRACE_PERIOD_SECONDS / 60)) menit."
OLD_LAST_SEEN=$(echo "$LAST_ENTRY" | cut -d':' -f3)
sed -i "/^${USER}:${LAST_IP}:/d" "$STATE_FILE"
echo "${USER}:${LAST_IP}:${OLD_LAST_SEEN}:$(date +%s)" >> "$STATE_FILE"
fi
echo "${USER}:${IP}:$(date +%s)::" >> "$STATE_FILE"
awk -i inplace '!seen[$0]++' "$STATE_FILE"
fi
elif [[ "$line" == *"[INFO]"*"[src:"*"[user:"*"Client disconnected"* ]]; then
IP=$(echo "$line" | awk -F'[][]' '{for(i=1;i<=NF;i++){if($i ~ /src:/){split($i, a, ":"); print a[2]}}}')
USER=$(echo "$line" | awk -F'[][]' '{for(i=1;i<=NF;i++){if($i ~ /user:/){split($i, a, ":"); print a[2]}}}')
if [[ -n "$IP" && -n "$USER" ]]; then
echo "[$(date)] User '$USER' dari IP '$IP' disconnect. Membersihkan state..."
sed -i "/^${USER}:${IP}:/d" "$STATE_FILE"
fi
fi
done
3.Simpan dan keluar (Ctrl+X, Y, Enter).
4.Jadikan skrip dapat dieksekusi:
Penting: Jika nama layanan UDP Anda bukan udp-custom.service, ubah baris After=... sesuai.
3.Simpan dan keluar (Ctrl+X, Y, Enter).
4.Aktifkan layanan untuk berjalan saat boot:
Langkah 3: Membuat Panel Kontrol On/Off
Ini adalah antarmuka sederhana untuk mengontrol penjaga.
1.Buat direktori untuk panel:
sudo mkdir -p /opt/udp-proxy/panel
2.Buat skrip enable.sh:
sudo nano /opt/udp-proxy/panel/enable.sh
Isi dengan:
#!/bin/bash
echo "Mengaktifkan Penjaga UDP..."
# Pastikan direktori log ada
sudo mkdir -p /opt/udp-proxy/log
# Buat file bendera
sudo touch /opt/udp-proxy/log/enforcer.enabled
# Restart layanan untuk menerapkan
sudo systemctl restart udp-enforcer.service
echo "Penjaga UDP telah diaktifkan dan dimulai ulang."
3.Buat skrip disable.sh:
sudo nano /opt/udp-proxy/panel/disable.sh
Isi dengan:
#!/bin/bash
echo "Menonaktifkan Penjaga UDP..."
# Hapus file bendera
sudo rm -f /opt/udp-proxy/log/enforcer.enabled
# Hentikan layanan
sudo systemctl stop udp-enforcer.service
echo "Penjaga UDP telah dinonaktifkan dan dihentikan."
Langkah 4: Aktivasi Dan Verifikasi Akhir
Sekarang kita akan mengaktifkan semuanya dan memastikan berjalan sempurna.
1.Aktifkan Penjaga menggunakan panel:
sudo /opt/udp-proxy/panel/enable.sh
2.Periksa status layanan. Harus active (running):
sudo systemctl status udp-enforcer.service
Output yang diharapkan:
● udp-enforcer.service - UDP Multi-Login Enforcer Service
Loaded: loaded (/etc/systemd/system/udp-enforcer.service; enabled; vendor preset: enabled)
Active: **active (running)** since ...
3.Periksa log untuk memastikan skrip berjalan:
sudo journalctl -u udp-enforcer.service -f
4.Verifikasi aturan iptables ada di posisi teratas:
sudo iptables -L INPUT -n --line-numbers
Pastikan aturan yang mengarah ke UDP_ENFORCER ada di nomor 1.
Sistem Anda sekarang seharusnya sudah siap dan berjalan dengan benar!
Untuk mempermudah penggunaan script yang telah kita buat di atas,kita akan membuat menu panel sederhana di postingan berikutnya : Membuat Menu Panel Hunter
Berikut adalah panduan cara streaming facebook via vps lengkap dari awal hingga cara masuk kembali ke layar streaming:
Langkah 1: Update dan Install FFmpeg
apt update && apt upgrade -y
Install FFmpeg:
apt install ffmpeg -y
Langkah 2: Install TMUX
Agar streaming tidak terputus saat menutup terminal:
apt install tmux -y
Langkah 3: Persiapan Folder
Buat folder penyimpanan dan masuk ke dalamnya:
mkdir -p /root/video
cd /root/video
Untuk melihat file ketikan
ls
Langkah 4: Membuat File Playlist
Buat file teks yang berisi daftar video.
1.Ketik perintah ini:
nano playlist.txt
2.Isi dengan daftar video (gunakan kutip satu '). Contoh:
file 'Video Satu.mp4'
file 'Video Dua (Lagu).mp4'
file 'Video Tiga.mp4'
3.Simpan: Tekan Ctrl + X, lalu Y, lalu Enter.
Langkah 5: Upload Video
Buka FileZilla, login sebagai root, masuk ke folder /root/video, lalu upload semua file video yang tercantum di playlist.txt tersebut.
Langkah 6: Masuk ke Sesi TMUX Baru (Nama: stream360)
Kita akan membuat layar bernama stream360 agar nanti mudah dimasuki kembali.
tmux new -s stream360
Langkah 7: Jalankan Skrip Streaming
Sekarang jalankan perintah FFmpeg kamu (pastikan masih berada di folder /root/video):
PENTING : Ganti kode API Facebook diatas dengan API Facebook milik mu Langkah 8: Keluar tmux dan biarkan streaming berjalan.
Agar kamu bisa menutup laptop tapi stream tetap jalan:
1.Tekan Ctrl + B.
2.Lalu tekan D.
Langkah 9: Menghentikan Streaming
tmux attach -t stream360
Setelah masuk ke Tmux,tekan ctrl + c ,kemudian ketik exit,kamu akan berhenti dari mode streaming.
Postingan ini adalah kelanjutan dari postingan sebelumnya dengan Judul Membuat Panel Monitoring UDP V2 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 terminal
monitorpanel
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
Ini adalah metode yang paling umum,aman,dan mudah untuk dikembalikan (revert). Perubahan akan bertahan setelah reboot.
Langkah 1: Cek Status IPv6 Saat Ini Apakah Sedang Aktif
ip a | grep inet6
Langkah 2: Edit File Konfigurasi sysctl.conf
sudo nano /etc/sysctl.conf
Langkah 3: Tambahkan Baris Konfigurasi
Gulir ke bagian paling bawah file, lalu tambahkan baris-baris berikut:
# Menonaktifkan IPv6 untuk semua interface
net.ipv6.conf.all.disable_ipv6 = 1
# Menonaktifkan IPv6 untuk interface baru yang akan ditambahkan
net.ipv6.conf.default.disable_ipv6 = 1
# Menonaktifkan IPv6 untuk interface loopback (lo)
net.ipv6.conf.lo.disable_ipv6 = 1
Langkah 4: Simpan dan Tutup File Langkah 5: Terapkan Perubahan Tanpa Reboot
sudo sysctl -p
Langkah 6: Verifikasi bahwa IPv6 Telah Dinonaktifkan
Jika berhasil, perintah ini tidak akan menampilkan output apa pun.
ip a | grep inet6
Anda juga bisa memeriksanya langsung dari file sistem kernel:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Outputnya harus angka 1, yang berarti IPv6 telah dinonaktifkan.
Cara Mengembalikan (Mengaktifkan Kembali) IPv6
1.Buka kembali file sysctl.conf: sudo nano /etc/sysctl.conf
sudo nano /etc/sysctl.conf
2.Hapus tanda # di depan baris yang Anda tambahkan, atau ubah angka 1 menjadi 0, atau berikan tanda komentar # di setiap barisnya.