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:
Terminal
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
1
Langkah 3: Cara Menggunakan Menu hunter
1.Buka terminal.
2.Ketik perintah berikut untuk membuka menu:
sudo hunter
1
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=0 # Waktu tunggu sebelum IP lama ditendang (0 detik = segera)
# 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 <====="
}
# =================================================================
# --- FUNGSI BLOCKING SEGERA (Pendekatan 1) ---
# =================================================================
function immediate_block() {
local user="$1"
local old_ip="$2"
echo "[$(date)] >>> EKSEKUSI SEGERA: Memutus & memblokir IP '$old_ip' (user: '$user')..."
sudo conntrack -D -s "$old_ip" -p udp 2>/dev/null
if ! sudo iptables -C "$IPTABLES_CHAIN" -s "$old_ip" -j DROP &> /dev/null; then
sudo iptables -A "$IPTABLES_CHAIN" -s "$old_ip" -j DROP -m comment --comment "Kicked $user on $(date +%F-%T)"
echo "[$(date)] >>> IP '$old_ip' telah diblokir SEGERA."
fi
}
# =================================================================
# --- 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 (setiap 1 menit - Pendekatan 2)
while true; do
cleanup
sleep 60 # Cek setiap 1 menit (bukan 5 menit)
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')."
# Panggil blocking segera (Pendekatan 1)
immediate_block "$USER" "$LAST_IP"
# Hapus entri lama tanpa menunggu grace period
sed -i "/^${USER}:${LAST_IP}:/d" "$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
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.