Hadiah Ganda

IP berotasi:Beli 50GB, dapatkan 10GB gratis

IP statis:Dapatkan tambahan 7 hari untuk setiap pembelian 30 hari, plus 500MB per pesanan

Beli Sekarang >

Peringatan KeamananSitus web palsu untuk phishing ( rola-ip.com) menyamar sebagai situs web resmi kami sebelumnya. Satu-satunya situs web resmi ROLA IP adalah rola-ip.co (pastikan menggunakan .co sebagai akhiran domainnya). Untuk melindungi dana Anda, jangan melakukan pembayaran di domain lain mana pun!

Bot keamanan Discord: cara setup, AutoMod, izin, dan proxy

Chloe Sun

9 Nov 2026 · Panduan · 16 menit baca

Bot keamanan Discord membantu menghapus spam, memverifikasi anggota baru, dan mencatat tindakan moderasi secara otomatis. Sebelum memasangnya, periksa pengembangnya, pahami izin yang diminta, lalu uji fiturnya di server privat.

Mulai dari AutoMod dan pengaturan keamanan bawaan Discord. Tambahkan bot jika ada kebutuhan khusus, misalnya perlindungan terhadap penghapusan channel atau perubahan role secara massal. Moderasi server sehari-hari tidak memerlukan proxy.

Admin server dapat berfokus pada izin, verifikasi, AutoMod, dan pengujian moderasi. Pengembang bot sendiri dapat melanjutkan ke bagian worker eksternal dan proxy Rola IP. Contoh Python di sini hanya menjadi acuan konfigurasi; koneksi nyata ke Rola IP belum diuji.

Apa fungsi bot keamanan Discord?

Bot keamanan menjalankan tindakan moderasi sesuai aturan dan izin di server. Kemampuan setiap produk berbeda: menghapus pesan, memverifikasi anggota, dan mencegah kerusakan struktur server bukan fitur yang sama.

Tentukan dulu masalah yang ingin Anda tangani:

  • Spam dan mention berlebihan: menyaring pesan serta membatasi mention tanpa mengganggu percakapan normal.
  • Anggota baru: mengatur verifikasi, pemberian role, dan akses awal ke channel.
  • Penelusuran insiden: menyimpan log dengan konteks yang cukup untuk ditinjau moderator.
  • Perubahan destruktif: mendeteksi atau membatasi penghapusan channel dan perubahan role yang merusak server. Perlindungan ini umum disebut anti-nuke.

Server komunitas game mungkin lebih membutuhkan pengendalian mention dan alur masuk anggota. Komunitas profesional dapat memprioritaskan log dan prosedur eskalasi. Jika banyak role memiliki hak akses tinggi, rapikan izin terlebih dahulu sebelum menambah aplikasi lain yang juga berwenang luas.

Bot penghapus spam tidak otomatis menyediakan perlindungan anti-nuke. Tidak ada pula satu dashboard “Security Bot” untuk semua produk. Buka dashboard melalui situs atau dokumentasi resmi pengembang, bukan pesan pribadi yang mendesak Anda melakukan verifikasi.

Apakah bot keamanan Discord aman digunakan?

Nama, avatar, dan jumlah pengguna tidak cukup untuk membuktikan keamanan bot. Periksa aplikasi yang tepat, pengelolanya, izin yang diminta, serta domain yang digunakan untuk verifikasi.

Cocokkan tautan undangan dengan jalur pemasangan resmi. Baca kebijakan privasinya untuk memahami pengelolaan isi pesan, log moderasi, dan data verifikasi. Direktori bot atau komunitas besar tidak menggantikan pemeriksaan tersebut.

Sebelum menyelesaikan verifikasi:

  1. Buka sendiri channel verifikasi di server.
  2. Periksa alamat tujuan dan izin yang diminta.
  3. Jika ada otorisasi OAuth, pastikan proses otorisasi berlangsung melalui Discord.
  4. Hentikan proses jika halaman pihak ketiga meminta token akun, kode pemulihan, atau perintah yang harus dijalankan di komputer.
  5. Hubungi moderator melalui channel yang sudah Anda kenal jika alurnya berubah atau terlihat mencurigakan.

VPN atau proxy bukan bukti bahwa anggota berniat jahat. Jaringan bersama dan alat privasi dapat memicu salah deteksi. Jika server menggunakan situs verifikasi eksternal, jelaskan data yang dikumpulkan dan sediakan jalur pengajuan keberatan.

Event Guild Member Add memuat objek anggota dan ID server. Skema guild member dan user yang dirujuk tidak mencantumkan kolom alamat IP anggota. Catatan pemeriksaan dokumentasi yang dirujuk bertanggal 29 Oktober 2026, bukan pemeriksaan baru. Batasan ini hanya berlaku pada payload bot yang disebutkan; situs verifikasi eksternal dapat mengumpulkan data lain saat dikunjungi.

Cara memilih bot keamanan Discord yang sesuai

Pilih bot berdasarkan tindakan yang dibutuhkan server, lalu uji tindakan tersebut sebelum berlangganan. Gunakan fitur bawaan sebagai dasar dan tambahkan aplikasi untuk kebutuhan yang belum terpenuhi.

Pilihan Kapan perlu dipertimbangkan Yang harus diperiksa
AutoMod Discord Filter kata, spam, dan mention Aturan tersedia, pengecualian, dan tindakan saat aturan terpicu
Wick Risiko perubahan destruktif pada server Fitur anti-nuke, karantina, pemulihan, serta izin yang diperlukan
Bot moderasi umum Pekerjaan rutin atau alur moderasi tertentu Aturan, pengecualian, kualitas log, dan cakupan paket
Proyek GitHub Bot yang dikembangkan atau dihosting sendiri Pemeliharaan, dependensi, kode yang dijalankan, dan pengelolaan rahasia

AutoMod Discord menyediakan kontrol bawaan tanpa memasang bot pihak ketiga. Fitur ini tetap berguna meskipun Anda memakai aplikasi khusus.

Dokumentasi Wick menjelaskan pemantauan anti-nuke, karantina, dan pemulihan. Perlindungannya bergantung pada konfigurasi dan kewenangan bot. Jangan menganggap semua fitur langsung aktif setelah pemasangan; uji di lingkungan terpisah yang aman untuk dihapus.

Jika mencari bot keamanan Discord gratis, mulai dari fitur bawaan lalu periksa batas paket gratis kandidat lain. Pastikan fitur yang Anda butuhkan tidak bergantung pada paket berbayar. Hindari hukuman yang tumpang tindih pada beberapa bot karena satu insiden dapat memicu tindakan yang saling bertentangan.

Untuk proyek GitHub, periksa pembaruan kode, dependensi, skrip instalasi, dan penyimpanan kredensial. Jumlah bintang bukan audit keamanan. Diskusi Reddit dapat membantu menemukan keluhan berulang, tetapi tidak membuktikan keamanan produk.

Menyiapkan keamanan dasar sebelum menambahkan bot

Gunakan server privat untuk pengujian, pisahkan role anggota dan pengelola, lalu buat channel log khusus moderator. Persiapan ini membantu Anda memeriksa tindakan bot tanpa mengganggu komunitas.

Gambar berikut merupakan contoh dari tutorial resmi Discord, bukan bukti konfigurasi server yang diuji untuk artikel ini. Nama menu dapat berbeda sesuai bahasa dan versi aplikasi.

1. Atur role, log, dan tingkat verifikasi

Tentukan role untuk anggota biasa, moderator, dan administrator. Tulis prosedur pemulihan agar tim tahu langkah yang harus diambil saat bot tidak tersedia.

Atur tingkat verifikasi di bagian keamanan server. Pada server Community, kontrol ini dapat berada di DM and Spam Protection dalam Safety Setup. Lihat panduan tingkat verifikasi Discord untuk persyaratan dan jalur menu yang berlaku.

verification-settings

community-verification

2. Pasang aplikasi yang benar

Untuk bot yang dihosting penyedia, gunakan undangan dari dokumentasi resminya dan pilih server uji. Anda tidak perlu membuat aplikasi pengembang baru hanya untuk memasang bot milik pihak lain.

Jika membuat bot sendiri:

  1. Buat aplikasi di Discord Developer Portal.
  2. Konfigurasikan pengguna bot dan pengaturan pemasangan server pada Guild Install.
  3. Simpan token di pengelola rahasia atau variabel lingkungan.
  4. Minta hanya scope otorisasi dan izin yang diperlukan.
  5. Gunakan library yang aktif dipelihara, lalu aktifkan Gateway intents sesuai event yang diproses.

Pemeriksaan isi pesan mungkin memerlukan intent istimewa Message Content. Jangan mengaktifkan intent istimewa lain hanya karena tercantum pada tutorial lama. Tutorial bot pertama Discord menjelaskan pembuatan dan pemasangan aplikasi; contoh tersebut bukan bot keamanan siap pakai.

3. Periksa izin dan hierarki role

Petakan setiap fitur ke izin yang dibutuhkan, lalu periksa pengaturan per channel. Administrator memberi akses luas, jadi cocokkan permintaan izin itu dengan kebutuhan yang dijelaskan pengembang.

Tindakan Izin yang diperlukan Batasan yang perlu diperiksa Cara menguji
Menghapus pesan Manage Messages Pengaturan channel dapat menolak izin Kirim pesan uji yang tidak berbahaya di channel tersebut
Memberi timeout Moderate Members Role tertinggi target harus berada di bawah role tertinggi bot; ada batasan tambahan untuk akun berhak istimewa Gunakan akun uji tanpa hak admin
Memblokir anggota dari server dengan ban Ban Members Periksa hierarki role dan batasan tindakan Gunakan akun khusus pengujian di server uji
Memberikan role verifikasi Manage Roles Role bot harus berada di atas role yang diberikan Selesaikan verifikasi dengan akun anggota biasa

Letakkan role bot di atas role yang perlu dikelolanya. Izin aktif tidak menghapus batasan hierarki. Referensi izin Discord menjelaskan aturan tersebut.

Sebagian produk anti-nuke memerlukan kewenangan luas. Jika memberikannya, batasi siapa yang boleh mengubah konfigurasi, lindungi akun pemilik dengan autentikasi multifaktor, dan tinjau perubahan pengaturan.

Cara setting AutoMod Discord dan menguji aturan

Aturan kata kunci sementara dapat menguji dua hal: pesan diblokir dan notifikasi masuk ke channel moderator. Gunakan akun anggota biasa karena akun dengan izin tertentu dapat dikecualikan dari aturan.

Uji pemblokiran kata kunci

  1. Buka Server Settings → AutoMod, atau kontrol AutoMod di Safety Setup.
  2. Buat Custom Keyword Rule bernama Baseline test.
  3. Tambahkan kata kunci uji moderation-test-only.
  4. Aktifkan Block Message dan Send Alert, lalu pilih channel privat moderator.
  5. Simpan aturan. Pastikan channel dan role akun uji tidak masuk daftar pengecualian.
  6. Dari akun tanpa Administrator atau Manage Server, kirim tepat moderation-test-only.
  7. Periksa kedua hasil: anggota melihat pemberitahuan pemblokiran dan channel moderator menerima notifikasi.
  8. Catat hasilnya, lalu hapus aturan sementara.

Langkah ini merupakan prosedur uji penerimaan berdasarkan dokumentasi AutoMod, bukan catatan pengujian yang sudah dilakukan pada server artikel ini. Simpan hasil pengujian Anda sebelum menyatakan alurnya terverifikasi.

automod-blocked-message

spam-response-actions

Batasi spam mention sesuai aktivitas komunitas

Aturan kedua dapat membatasi jumlah mention dalam satu pesan. Tentukan ambang yang masih mengizinkan aktivitas wajar, lalu sesuaikan berdasarkan salah deteksi yang muncul.

mention-limit

Mulai dengan Block message dan notifikasi ke channel log. Tambahkan Timeout member setelah Anda mengetahui frekuensi pemicunya dan memastikan aturan tidak sering menghukum anggota yang beraktivitas normal.

mention-response-actions

Cara setting bot keamanan Discord dengan contoh Wick

Pasang dan uji bot di server privat sebelum menerapkannya pada komunitas aktif. Checklist berikut mengacu pada dokumentasi Wick; ini bukan hasil instalasi yang telah diuji dan tidak memastikan batas paket gratis atau berbayarnya saat ini.

  1. Buka sumber resmi. Periksa nama aplikasi dan catat tanggal dokumentasi yang Anda gunakan.
  2. Otorisasi hanya server uji. Cocokkan izin pada layar otorisasi dengan fitur yang akan diaktifkan.
  3. Buka dashboard dan panduan setup. Panduan setup Wick menjelaskan pemilihan server dan penggunaan wizard. Ikuti tampilan yang tersedia pada akun Anda.
  4. Pilih role verifikasi dan channel log. Gunakan role khusus serta channel privat moderator. Pastikan keduanya benar-benar ada di Discord, bukan hanya muncul di dashboard.
  5. Perbaiki hierarki role. Letakkan bot di atas role yang perlu dikelolanya dan di bawah role yang tidak boleh dikendalikannya.
  6. Uji tindakan yang tidak merusak. Misalnya, selesaikan verifikasi dengan akun anggota biasa dan periksa konteks log. Jangan melakukan simulasi masuk massal atau menguji anti-nuke pada komunitas aktif.
  7. Siapkan langkah pemulihan. Ketahui cara menjeda aturan, menghapus role sementara, dan mengeluarkan aplikasi dari server.

Jika ada langkah yang berbeda dari dokumentasi, periksa kembali domain resminya sebelum melanjutkan. Bot lain dapat memiliki dashboard dan kebutuhan izin yang berbeda.

Kriteria penerimaan dan uji kegagalan

Dengan akun non-admin, pastikan:

  • Anggota baru melihat channel awal yang benar.
  • Anggota yang memenuhi syarat dapat berpartisipasi.
  • Pemicu uji yang aman menghasilkan tindakan sesuai aturan.
  • Log privat mencatat konteks yang cukup untuk ditinjau.

Kemudian pindahkan role khusus pengujian ke atas role bot dan amati cara bot melaporkan tindakan yang gagal. Jika menggunakan worker sendiri, hentikan sementara worker tersebut: bot harus melaporkan pemeriksaan tidak tersedia, bukan menyatakan tautan aman. Kembalikan konfigurasi setelah setiap pengujian.

Kapan bot Discord memerlukan proxy Rola IP?

Proxy relevan jika Anda mengendalikan proses yang mengirim permintaan eksternal. Membeli proxy tidak memberi Anda kendali atas rute jaringan bot yang dihosting penyedia lain.

Skenario Di mana proxy dapat diatur? Kebutuhan IP keluar Cara memeriksa
Bot pihak ketiga yang dihosting penyedia Jaringan dikendalikan penyedia Tidak ada pengaturan langsung di sisi Anda Tinjau dokumentasi dan log penyedia
Worker sendiri yang mengakses API dengan daftar IP diizinkan Pada sesi HTTP worker IP tetap dan stabil Cocokkan IP yang teramati dengan IP yang dialokasikan
Worker sendiri untuk pemeriksaan regional berizin Pada sesi HTTP worker IP keluar dari wilayah yang diizinkan Cocokkan IP dan lokasi yang diharapkan

Pisahkan dua jalur permintaan:

  • Klien Discord: terhubung ke Gateway dan REST API Discord, dengan penanganan rate limit tersendiri.
  • Worker eksternal: mengakses endpoint HTTPS pihak ketiga yang disetujui melalui proxy. Jika koneksi gagal, worker melaporkan status tidak tersedia tanpa diam-diam mencoba koneksi langsung.

Sebagai contoh, alur moderasi dapat mengirim sebuah domain ke API reputasi yang hanya menerima permintaan dari IP asal tetap. Worker mencatat hasil dan ID permintaan. Jika layanan gagal diakses, hasilnya diteruskan ke moderator sebagai “tidak tersedia”. Jangan menjadikan URL sembarang dari anggota sebagai alamat tujuan permintaan worker.

Discord event -> application queue -> external worker -> configured Rola proxy -> approved reputation API

Worker result -> moderator review / log -> Discord client -> Discord API

Arsitektur ini merupakan rancangan acuan. Rola IP belum diuji dengan layanan reputasi tertentu, dan skrip berikut hanya memeriksa jalur keluar jaringan, bukan integrasi pemeriksaan reputasi.

Gunakan IP tetap untuk API dengan daftar IP diizinkan

Jika layanan eksternal mensyaratkan IP asal tertentu, pertimbangkan proxy residensial statis Rola IP. Sebelum membeli, konfirmasikan alokasi IP, perilaku saat perpanjangan, kuota trafik, dan protokol pada paket yang dipilih.

Istilah “statis” saja tidak menjelaskan semua ketentuan tersebut. Periksa apakah tujuan menerima IP itu. Pantau timeout, kegagalan autentikasi, dan gangguan koneksi secara terpisah dari keputusan moderasi. IP yang tidak berubah tidak membuktikan layanan selalu tersedia atau dipercaya oleh tujuan.

Gunakan IP residensial berotasi untuk pemeriksaan regional berizin

Halaman proxy residensial Rola IP menjelaskan layanan berotasi dengan opsi lokasi dan sesi. Pastikan opsi yang benar-benar tersedia pada paket Anda sebelum menuliskannya ke konfigurasi worker.

Sticky session berguna saat beberapa permintaan terkait membutuhkan IP keluar yang sama selama periode tertentu. Rotasi cocok untuk tugas yang memang membutuhkan sudut pengamatan dari jaringan berbeda.

Konfirmasikan perilaku endpoint, durasi sesi, dan tindakan layanan saat IP keluar tidak tersedia. Panduan ini tidak mengasumsikan ukuran pool, jumlah negara, batas koneksi bersamaan, trafik tanpa batas, atau jaminan ketersediaan tertentu.

Pahami batas perlindungan proxy

Permintaan yang diarahkan dengan benar memperlihatkan IP keluar proxy kepada tujuan. Ini dapat memisahkan jalur keluar worker dari IP hosting, tetapi tidak menyembunyikan semua jalur menuju host atau melindungi endpoint masuk yang terbuka dari serangan DDoS.

Proxy juga tidak membuat tautan berbahaya menjadi aman. Utamakan pengiriman indikator ke layanan reputasi yang disetujui. Jika perlu inspeksi langsung, gunakan worker terisolasi dengan:

  • Pembatasan jaringan dan tanpa kredensial layanan cloud.
  • Kontrol redirect.
  • Batas ukuran respons serta durasi eksekusi.
  • Pemblokiran alamat privat, loopback, link-local, dan layanan metadata pada batas jaringan, termasuk setelah resolusi DNS dan redirect.

Proxy untuk bot Discord Python: contoh konfigurasi

Skrip ini mengakses endpoint tetap untuk mengamati IP keluar. Koneksi nyata ke Rola IP belum diuji, sehingga contoh ini bukan deployment tervalidasi atau pemindai malware.

Catatan simulasi yang dirujuk mencantumkan tanggal 29 Oktober 2026, lingkungan Linux, Python 3.12.3, dan Requests 2.33.1. Skenarionya mencakup konfigurasi kosong atau tidak valid, proxy lokal yang menolak koneksi atau tidak merespons, HTTP 403 dan 429 simulasi, serta isi respons valid dan tidak valid. Hasil tersebut belum diverifikasi secara independen dan tidak membuktikan koneksi ke layanan Rola IP.

Perintah instalasi menggunakan requests==2.34.2, berbeda dari versi dalam catatan simulasi. Instalasi dan eksekusi pada versi ini masih memerlukan validasi. Belum ada keluaran koneksi nyata yang berhasil untuk membandingkan akses langsung dan akses melalui proxy Rola IP.

Siapkan lingkungan Python dan endpoint

Simpan kode sebagai proxy_check.py. Pada PowerShell, buat lingkungan terisolasi dan pasang dependensinya:

py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install requests==2.34.2
.\.venv\Scripts\python.exe --version
.\.venv\Scripts\python.exe -m pip show requests

Perintah ini memerlukan Python 3.12 yang tersedia melalui launcher py. Simulasi yang dirujuk menggunakan Linux, bukan urutan perintah PowerShell di atas. Periksa versi dependensi sebelum dipakai di produksi.

Panduan proxy Python Requests menjelaskan pengaturan endpoint. Dari konfigurasi produk di akun Anda, ambil:

  • Hostname gateway atau IP yang dialokasikan.
  • Port dan protokol yang didukung.
  • Kredensial proxy, jika diperlukan.
  • Ketentuan autentikasi melalui daftar IP diizinkan.

URL dengan username dan password menggunakan format http://USER_ENCODED:PASSWORD_ENCODED@HOST:PORT. Komponen tersebut adalah placeholder, bukan endpoint siap pakai. Lakukan URL encoding pada username dan password secara terpisah. Gunakan username buatan sistem akun, termasuk akhiran lokasi atau sesi jika ada; jangan mengarang nama parameter.

Untuk autentikasi berbasis IP allowlist, daftarkan IP publik asal worker yang sebenarnya dan ikuti format penyedia. Jika kedua metode diwajibkan, konfigurasikan keduanya.

Tujuan tetap menggunakan HTTPS meskipun proxy HTTP membawa tunnel CONNECT. Mulai dari endpoint proxy HTTP yang didukung paket Anda; jangan mengasumsikan port atau ketersediaan wilayah tertentu.

Atur variabel dan jalankan pemeriksaan

Pada PowerShell 7, input tersamarkan mencegah URL lengkap tersimpan sebagai perintah literal dalam riwayat shell. Namun, variabel lingkungan tetap merupakan rahasia proses, bukan penyimpanan kredensial terenkripsi.

$env:ROLA_PROXY_URL = Read-Host 'Proxy URL' -MaskInput
.\.venv\Scripts\python.exe .\proxy_check.py --direct
.\.venv\Scripts\python.exe .\proxy_check.py
Remove-Item Env:ROLA_PROXY_URL

Eksekusi pertama, dengan --direct, sengaja mengakses endpoint tanpa proxy aplikasi dan memperlihatkan IP keluar normal host kepada endpoint tersebut. Jalankan hanya jika pemeriksaan pembanding ini diizinkan. Eksekusi kedua mewajibkan ROLA_PROXY_URL dan tidak beralih ke koneksi langsung setelah gagal. Gunakan pengelola rahasia untuk deployment.

"""Fixed-endpoint egress diagnostic for an approved external worker.

Live Rola connectivity has not been tested with this script.
Errors are reported by category and status code only; raw exception text
(which can contain proxy credentials) is never printed.
"""
import argparse
import ipaddress
import os
from urllib.parse import urlsplit

import requests

ENDPOINT = "https://api.ipify.org?format=json"
TIMEOUT = (5, 15)  # (connect, read) seconds


class EgressError(Exception):
    """A sanitized failure category that is safe to print."""


def observe_exit(proxy_url=None):
    with requests.Session() as session:
        session.trust_env = False
        if proxy_url:
            session.proxies = {"http": proxy_url, "https": proxy_url}
        try:
            response = session.get(ENDPOINT, timeout=TIMEOUT, allow_redirects=False)
        except requests.exceptions.ProxyError:
            # CONNECT failures, including proxy auth (407), usually surface here.
            raise EgressError("ProxyError: proxy refused or could not tunnel; "
                              "check endpoint, credentials, allowlist; no direct retry") from None
        except requests.exceptions.Timeout:
            raise EgressError("Timeout: check DNS, port and proxy reachability; "
                              "retest manually; no direct retry") from None
        except requests.exceptions.SSLError:
            raise EgressError("SSLError: certificate verification failed; "
                              "do not disable verification") from None
        except requests.exceptions.ConnectionError:
            raise EgressError("ConnectionError: could not connect; "
                              "check DNS and network path; no direct retry") from None
        except requests.exceptions.RequestException:
            raise EgressError("RequestException: request failed; no direct retry") from None

        status = response.status_code
        if status == 429:
            wait = response.headers.get("Retry-After", "")
            wait = wait if wait.isdigit() else "not provided"
            raise EgressError(f"HTTP 429 from the check endpoint (Retry-After: {wait}); "
                              "stop, wait, then rerun manually")
        if status != 200:
            raise EgressError(f"HTTP {status} from the check endpoint; no direct retry")
        try:
            return str(ipaddress.ip_address(response.json()["ip"]))
        except (ValueError, KeyError, TypeError):
            raise EgressError("InvalidResponse: HTTP 200 without a valid ip field; "
                              "not a success") from None


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--direct", action="store_true")
    args = parser.parse_args()
    proxy = None if args.direct else os.environ.get("ROLA_PROXY_URL", "")
    if not args.direct:
        if not proxy:
            parser.exit(2, "ROLA_PROXY_URL is required; no request sent\n")
        try:
            parsed = urlsplit(proxy)
            valid = (parsed.scheme in {"http", "https", "socks5h"}
                     and parsed.hostname and parsed.port)
        except ValueError:
            valid = False
        if not valid:
            parser.exit(2, "Invalid proxy URL; no request sent\n")
    try:
        print("Observed exit:", observe_exit(proxy))
    except EgressError as exc:
        parser.exit(1, f"Egress check failed - {exc}\n")


if __name__ == "__main__":
    main()

Ini adalah pemeriksaan manual satu kali, sehingga skrip berhenti saat gagal. Worker produksi perlu antrean dan retry terbatas, tanpa fallback otomatis ke koneksi langsung.

Tentukan hasil yang dianggap berhasil

Setiap eksekusi yang berhasil harus menerima HTTP 200 dan membaca alamat IP valid dari kolom ip. Bandingkan kedua alamat secara privat.

IP proxy yang berbeda dan sesuai dengan alokasi atau catatan penyedia mendukung kesimpulan bahwa permintaan tersebut melewati jalur lain. Jika IP sama, penggunaan jalur proxy belum terkonfirmasi. Satu permintaan berhasil tidak membuktikan ketersediaan berkelanjutan, ketepatan lokasi, atau kompatibilitas bot. Samarkan alamat sebelum membagikan keluaran nyata.

Skrip menggunakan timeout 5 detik untuk koneksi dan 15 detik untuk pembacaan, yaitu TIMEOUT = (5, 15). Pengaturan session.trust_env = False menonaktifkan pewarisan konfigurasi lingkungan pada sesi. Skrip juga tidak mengikuti redirect.

Tabel berikut merangkum hasil simulasi yang dirujuk, bukan catatan koneksi nyata Rola IP atau pengujian yang dilakukan untuk panduan ini.

Skenario simulasi Hasil yang dilaporkan
ROLA_PROXY_URL tidak diatur ROLA_PROXY_URL is required; no request sent; kode keluar 2
Skema tidak didukung atau port kosong Invalid proxy URL; no request sent; kode keluar 2
Port proxy lokal tertutup ProxyError, tanpa retry langsung; kode keluar 1
Proxy lokal menerima koneksi tetapi tidak merespons Timeout, tanpa retry langsung
HTTP 403 simulasi HTTP 403 from the check endpoint; no direct retry
HTTP 429 simulasi dengan Retry-After: 30 Menampilkan waktu tunggu 30 detik dan meminta pengulangan manual setelah menunggu
HTTP 200 simulasi tanpa kolom ip InvalidResponse; tidak dianggap berhasil
HTTP 200 simulasi dengan IP khusus dokumentasi Menampilkan alamat; hanya keberhasilan simulasi

Kode tidak mencetak teks lengkap exception yang dapat memuat kredensial. Klaim bahwa kredensial tidak muncul dalam suatu pengujian tetap membutuhkan log pengujian; jangan menganggapnya terbukti hanya dari tabel. Pertahankan verifikasi sertifikat dan periksa log sebelum dibagikan.

Untuk endpoint SOCKS yang kompatibel, pasang requests[socks]==2.34.2 dan pilih skema yang didukung penyedia. socks5h:// meminta resolusi hostname melalui proxy. Dokumentasi proxy Requests menjelaskan URL proxy dan perilaku SOCKS. Koneksi SOCKS belum diuji pada contoh ini.

Gunakan alat cek IP Rola untuk menelusuri alamat yang teramati. Klasifikasi IP tidak membuktikan kepercayaan tujuan. Hasil “IP saya” di browser menggambarkan jalur browser, yang belum tentu sama dengan jalur worker.

Contoh ini bersifat sinkron. Jika dipakai pada bot Discord asinkron, jalankan di worker atau thread agar tidak menghambat pemrosesan event. Jika pemeriksaan tidak tersedia, laporkan status tersebut dan beri tahu operator, bukan menyatakan tautan aman.

Mengatasi masalah izin, proxy, dan rate limit

Cari komponen yang gagal terlebih dahulu: izin Discord, koneksi proxy, dan respons layanan eksternal memerlukan penanganan berbeda. Status bot online hanya menunjukkan adanya koneksi, bukan bahwa semua tindakan dapat dijalankan.

Gejala Yang diperiksa Tindakan
Bot online tetapi tidak dapat memoderasi Tindakan yang gagal, role target, dan izin channel Perbaiki hierarki atau izin channel, lalu ulangi dengan akun uji
Verifikasi selesai tetapi anggota tetap tidak mendapat akses Pemberian role, izin channel, serta konflik dengan bot penyambutan lain Catat operasi yang gagal dan perbaiki alurnya, bukan meminta verifikasi berulang
ProxyError atau HTTP 407 pada permintaan eksternal Format endpoint, kredensial, akhiran username, dan IP allowlist Perbaiki autentikasi atau hubungi penyedia; pada HTTPS, 407 dapat muncul sebagai error proxy
Timeout atau ConnectionError DNS, port, protokol, dan keterjangkauan host proxy Perbaiki jalur koneksi, lalu uji ulang manual tanpa fallback langsung
HTTP 429 dari Discord retry_after dan header rate limit Antrekan pekerjaan, tunggu, dan kurangi permintaan yang tidak perlu
HTTP 429 dari layanan eksternal Header Retry-After, jika tersedia Hentikan pemeriksaan, tunggu, lalu ulangi diagnosis ini secara manual
HTTP 403 dari layanan eksternal Otorisasi dan kebijakan akses Selesaikan izin dengan layanan; mengganti IP atau negara tidak memberikan hak akses

Rotasi IP tidak menggantikan penanganan batas aplikasi atau token. Ikuti referensi rate limit Discord, dan tangani batas layanan eksternal secara terpisah.

Menjaga konfigurasi tetap andal

Tinjau perubahan izin, kredensial kedaluwarsa, dan salah deteksi moderasi secara berkala. Tim juga perlu mengetahui langkah yang harus diambil saat bot atau layanan pendukung tidak tersedia.

Tetapkan siapa yang berwenang:

  • Menjeda undangan dan memperketat verifikasi.
  • Menonaktifkan integrasi yang tidak aman.
  • Meninjau blokir atau hukuman yang keliru.
  • Menghubungi anggota saat terjadi insiden.

Jika membeli proxy untuk worker sendiri, konfirmasikan satuan penagihan, pembelian minimum, masa berlaku trafik, apakah permintaan gagal menghabiskan kuota, dan batas biaya yang akan menghentikan worker. Ambil ketentuan tersebut dari paket akun Anda.

Keamanan server bertumpu pada izin yang jelas, verifikasi yang sesuai, serta tindakan moderasi yang sudah diuji tim. Untuk kebutuhan IP tetap atau pemeriksaan regional berizin, pertimbangkan opsi proxy statis dan berotasi Rola IP pada lapisan permintaan eksternal. Validasi jalurnya sebelum memperluas penggunaan dan tetap patuhi rate limit Discord.

FAQ