Kort antwoord
Hoe gebruik ik een proxy met curl?
Gebruik curl -x http://USERNAME:[email protected]:7777 https://api.ipify.org voor de HTTP proxy, of --socks5-hostname gw.crawlrelay.com:7778 met -U USERNAME:PASSWORD voor SOCKS5. CrawlRelay residentiële proxy's gebruiken het land en een sticky sessie in de gebruikersnaam, bijvoorbeeld USERNAME-country-de-session-t1-ttl-10. Vanaf US$ 0,50/GB. Betaald met crypto, zonder KYC.
curl flags die je nodig hebt
-x / --proxy | Proxy URL: http://host:port, inloggegevens optioneel erin verwerkt |
|---|---|
-U / --proxy-user | Proxy inloggegevens als USERNAME:PASSWORD, buiten de URL gehouden |
--socks5-hostname | SOCKS5-proxy met DNS-resolutie aan de uitgang |
-v | Toont de CONNECT-uitwisseling en de statusregel van de proxy |
-w | Toont timing, grootte en %{http_connect}, de CONNECT-status van de proxy |
--max-time, --connect-timeout | Totale en verbindings-tijdslimieten in seconden |
Wat zijn de basisproxy-commando's?
Elk van deze toont het exit-IP dat de website ziet.
# 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.orgHoe debug ik een proxyverbinding met curl?
Start met -v en lees de regels rond CONNECT. Een werkende tunnel toont HTTP/1.1 200 Connection established, gevolgd door de TLS-handshake met de website. Elke andere status op die regel komt van de proxy: 407 betekent credentials, 502 of 504 betekent de uitgang of de target. Het hieronder weergegeven -w-formaat toont dezelfde info in één regel, handig in loops en CI-checks.
# 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/Hoe controleer ik of rotatie en sessies werken?
Vraag meerdere keren het IP op. Zonder sessie-ID is elke run een nieuwe verbinding en toont meestal een ander IP. Met sessie-ID blijft het IP hetzelfde tot de TTL eindigt, maar kan eerder wijzigen.
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
doneHoe gebruik ik curl met een proxy op Windows?
Roep curl.exe aan, niet curl. In Windows PowerShell 5.1 is curl een alias voor Invoke-WebRequest, die -x of -U niet begrijpt. Windows 10 en 11 leveren de echte curl als curl.exe. In PowerShell, zet argumenten met speciale tekens tussen aanhalingstekens en schrijf een letterlijke $ in een wachtwoord binnen enkele aanhalingstekens.
curl.exe -x http://gw.crawlrelay.com:7777 -U 'USERNAME-country-fr:PASSWORD' https://api.ipify.orgHoe stel ik de proxy één keer in voor elk commando?
curl leest de omgevingsvariabelen https_proxy en http_proxy, en veel andere tools ook. Stel ze in voor een shellsessie, en gebruik NO_PROXY voor hosts die niet via de proxy moeten, zoals je eigen API. Vermijd het wachtwoord in een variabele te zetten die wordt doorgegeven aan elk childproces op een gedeelde machine.
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 en proxies: vragen
Wat is het verschil tussen --socks5 en --socks5-hostname?
Met --socks5 lost curl de hostnaam op je eigen machine op en stuurt het IP naar de proxy. Met --socks5-hostname stuurt het de hostnaam en lost de proxy het op. Gebruik --socks5-hostname voor scrapen zodat DNS-antwoorden overeenkomen met het exitland, en je lokale resolver de opgevraagde domeinen niet ziet.
Waarom zegt curl 'CONNECT tunnel failed, response 407'?
De proxy wees de credentials af, of ontving ze niet. Controleer gebruikersnaam en wachtwoord, en URL-encode speciale tekens als die in de -x URL staan, of geef ze door met -U. De 407-pagina geeft andere oorzaken.
Hoe zie ik hoeveel bytes een pagina kost via de proxy?
Voeg --compressed -o /dev/null -w '%{size_download}\n' toe. --compressed laat curl om gzip of brotli vragen zoals je scraper, en %{size_download} telt dan de gecomprimeerde bytes die over het netwerk gingen. Zonder dit stuurt de server de pagina ongecomprimeerd en kan het aantal veel hoger zijn. Test dit op een paar echte pagina's om je verkeer per 1.000 pagina's te schatten.
Kan curl HTTP/2 of HTTP/3 via de proxy gebruiken?
HTTP/2 werkt binnen de CONNECT-tunnel als de website het ondersteunt, omdat de tunnel TLS end-to-end draagt. HTTP/3 loopt over UDP, wat een CONNECT-tunnel via een HTTP-proxy niet ondersteunt, gebruik dus HTTP/2 of HTTP/1.1 via de gateway.
Test je targets vanaf de opdrachtregel
US$ 1,50 voor 1 GB, genoeg voor duizenden curl-tests.