Dasar proxy2 menit baca

HTTP, HTTPS, atau SOCKS5?

Satu endpoint, tiga cara terhubung. Beda proxy HTTP, HTTPS lewat CONNECT, dan SOCKS5, kapan memakai masing-masing, dan cara mencegah kebocoran DNS.

Semua protokol di WaroengProxy memakai endpoint yang sama, proxy.waroengproxy.com:8000, dengan username dan password yang sama. Tidak ada port khusus per protokol: yang membedakan hanya skema yang kamu tulis di tool, http:// atau socks5h://. Lalu, mana yang sebaiknya dipakai?

Proxy HTTP

Proxy HTTP memahami bahasa web. Untuk alamat http://, klienmu mengirim request lengkap ke proxy, lalu proxy meneruskannya ke situs tujuan. Isi request dan responsnya lewat tanpa enkripsi, sehingga bisa dibaca di sepanjang jalur. Username dan password proxy dikirim di header Proxy-Authorization.

HTTPS lewat terowongan CONNECT

Untuk alamat https://, klien meminta proxy membuka terowongan ke situs tujuan dengan metode CONNECT. Setelah itu, enkripsi TLS berlangsung langsung antara klienmu dan situs tujuan. Proxy hanya meneruskan data terenkripsi: nama domain tujuannya terlihat, isinya tidak.

Karena itu, pakai situs https:// setiap kali tersedia. Browser, curl, dan hampir semua library HTTP menangani CONNECT otomatis saat kamu memasang proxy dengan skema http://.

SOCKS5

SOCKS5 bekerja satu lapis lebih rendah. Ia meneruskan koneksi TCP apa pun tanpa peduli protokolnya. Autentikasinya memakai metode username/password bawaan SOCKS5, jadi kredensial yang sama tetap berlaku. Pilih SOCKS5 kalau aplikasimu bukan browser atau HTTP client biasa, atau kalau aplikasinya hanya menyediakan opsi SOCKS.

Kebocoran DNS: socks5 atau socks5h

Dengan skema socks5://, banyak klien, termasuk curl dan library Python, mencari alamat IP situs tujuan lewat DNS milikmu sendiri sebelum menghubungi proxy. Akibatnya, penyedia internetmu tetap melihat domain yang kamu buka, dan DNS lokal bisa mengarahkanmu ke server CDN yang dekat dengan lokasimu, bukan dengan lokasi IP proxy. Skema socks5h:// menyerahkan pencarian nama domain ke proxy.

Terminal
# HTTP, juga untuk situs https://
curl -x "http://USERNAME-cc-ID:PASSWORD@proxy.waroengproxy.com:8000" https://ipinfo.io/json
# SOCKS5, nama domain dicari oleh proxy
curl -x "socks5h://USERNAME-cc-ID:PASSWORD@proxy.waroengproxy.com:8000" https://ipinfo.io/json

Di Python, pasang dulu dukungan SOCKS untuk requests dengan pip install "requests[socks]", lalu tulis socks5h:// di pengaturan proxies.

Ringkasnya

  • Scraping, browser, dan sebagian besar tool: http://. Paling luas didukung, dan situs https:// tetap terenkripsi dari ujung ke ujung.
  • Aplikasi non-HTTP atau yang hanya mendukung SOCKS: socks5h://.
  • Tool menolak salah satu skema? Coba skema lain dengan kredensial yang sama, karena endpoint-nya satu.
Autentikasi proxy di kedua protokol dikirim tanpa enkripsi ke gateway. Hindari memakai kredensial di jaringan yang tidak kamu percaya, atau pakai whitelist IP untuk server dengan IP tetap.