Jawaban cepat
Bagaimana cara menggunakan proxy dengan curl?
Gunakan curl -x http://USERNAME:[email protected]:7777 https://api.ipify.org untuk proxy HTTP, atau --socks5-hostname gw.crawlrelay.com:7778 dengan -U USERNAME:PASSWORD untuk SOCKS5. CrawlRelay proxy residensial mengambil negara dan sesi lengket di username, seperti USERNAME-country-de-session-t1-ttl-10. Dari US$0,50/GB. Dibayar dengan crypto, tanpa KYC.
Flag curl yang Anda butuhkan
-x / --proxy | URL proxy: http://host:port, kredensial opsional di dalamnya |
|---|---|
-U / --proxy-user | Kredensial proxy sebagai USERNAME:PASSWORD, tidak dimasukkan ke URL |
--socks5-hostname | Proxy SOCKS5 dengan DNS yang di-resolve di titik keluar |
-v | Menampilkan pertukaran CONNECT dan baris status proxy |
-w | Mencetak waktu, ukuran dan %{http_connect}, status CONNECT proxy |
--max-time, --connect-timeout | Batas waktu total dan koneksi, dalam detik |
Apa saja perintah dasar proxy?
Masing-masing mencetak IP keluar yang dilihat situs web.
# Rotating exit, any country
curl -x http://gw.crawlrelay.com:7777 -U USERNAME:PASSWORD https://api.ipify.org
# Country and city (city availability varies)
curl -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us-city-chicago:PASSWORD https://api.ipify.org
# Sticky: run it twice, the IP stays the same for up to 10 minutes (it can change earlier)
curl -x http://gw.crawlrelay.com:7777 -U USERNAME-country-de-session-t1-ttl-10:PASSWORD https://api.ipify.org
# SOCKS5, DNS resolved at the exit
curl --socks5-hostname gw.crawlrelay.com:7778 -U USERNAME-country-gb:PASSWORD https://api.ipify.orgBagaimana cara saya debug koneksi proxy dengan curl?
Jalankan dengan -v dan baca baris di sekitar CONNECT. Terowongan yang bekerja menunjukkan HTTP/1.1 200 Connection established, lalu handshake TLS dengan situs web. Status lain pada baris itu berasal dari proxy: 407 berarti kredensial, 502 atau 504 berarti titik keluar atau target. Format -w di bawah mencetak informasi yang sama dalam satu baris, berguna dalam loop dan pengecekan CI.
# Full exchange, including the proxy's answer to CONNECT
curl -v -x http://gw.crawlrelay.com:7777 -U USERNAME:PASSWORD https://example.com/ -o /dev/null
# One line: proxy CONNECT status, HTTP status, compressed bytes and timings
curl -s --compressed -o /dev/null -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us:PASSWORD \
-w 'connect=%{http_connect} http=%{http_code} bytes=%{size_download} tcp=%{time_connect}s tls=%{time_appconnect}s ttfb=%{time_starttransfer}s total=%{time_total}s\n' \
https://example.com/Bagaimana cara saya mengecek rotasi dan sesi bekerja?
Minta IP beberapa kali. Tanpa session ID, setiap kali koneksi baru dan biasanya menunjukkan IP berbeda. Dengan session ID, IP harus tetap sama sampai TTL habis, walau bisa berubah lebih awal.
echo "rotating:"
for i in 1 2 3 4 5; do
curl -s -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us:PASSWORD https://api.ipify.org; echo
done
echo "sticky:"
for i in 1 2 3 4 5; do
curl -s -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us-session-loop1-ttl-5:PASSWORD https://api.ipify.org; echo
doneBagaimana cara menggunakan curl dengan proxy di Windows?
Panggil curl.exe, bukan curl. Di Windows PowerShell 5.1, curl adalah alias untuk Invoke-WebRequest, yang tidak mengenali -x atau -U. Windows 10 dan 11 menyediakan curl asli sebagai curl.exe. Di PowerShell, kutip argumen yang mengandung karakter khusus, dan tulis $ literal dalam kata sandi di dalam tanda kutip tunggal.
curl.exe -x http://gw.crawlrelay.com:7777 -U 'USERNAME-country-fr:PASSWORD' https://api.ipify.orgBagaimana cara menetapkan proxy sekali untuk setiap perintah?
curl membaca variabel lingkungan https_proxy dan http_proxy, dan banyak alat lain juga membacanya. Tetapkan untuk sesi shell, dan gunakan NO_PROXY untuk host yang tidak boleh lewat proxy, seperti API Anda sendiri. Hindari menaruh kata sandi di variabel yang diekspor ke setiap proses anak di mesin bersama.
export https_proxy="http://USERNAME-country-us:[email protected]:7777"
export http_proxy="$https_proxy"
export NO_PROXY="localhost,127.0.0.1,.internal.example"
curl https://api.ipify.org # now uses the proxy
unset https_proxy http_proxy # back to directcurl dan proxy: pertanyaan
Apa beda --socks5 dan --socks5-hostname?
Dengan --socks5, curl menyelesaikan hostname di mesin Anda dan mengirim IP ke proxy. Dengan --socks5-hostname, mengirim hostname dan proxy menyelesaikannya. Gunakan --socks5-hostname untuk scraping agar jawaban DNS sesuai dengan negara keluar, dan resolver lokal Anda tidak melihat domain yang Anda fetch.
Mengapa curl mengatakan 'CONNECT tunnel failed, response 407'?
Proxy menolak kredensial, atau tidak menerima sama sekali. Periksa username dan password, serta URL-encode karakter spesial jika ada di URL -x, atau kirim menggunakan -U. Halaman 407 menjelaskan penyebab lainnya.
Bagaimana cara melihat berapa byte yang dipakai sebuah halaman lewat proxy?
Tambahkan --compressed -o /dev/null -w '%{size_download}\n'. --compressed membuat curl minta gzip atau brotli seperti scraper Anda, dan %{size_download} menghitung byte terkompresi yang lewat jaringan. Tanpa itu, server mengirim halaman tanpa kompresi dan nilainya bisa jauh lebih besar. Jalankan di beberapa halaman nyata untuk memperkirakan traffic per 1.000 halaman.
Bisakah curl gunakan HTTP/2 atau HTTP/3 lewat proxy?
HTTP/2 bekerja di tunel CONNECT saat situs mendukungnya, karena tunnel membawa TLS end-to-end. HTTP/3 berjalan di atas UDP, yang tunnel CONNECT lewat proxy HTTP tidak dukung, jadi gunakan HTTP/2 atau HTTP/1.1 lewat gateway.
Uji target Anda dari command line
US$1,50 untuk 1 GB, cukup untuk ribuan uji curl.