Test en HTTP-proxy med curl
Brug en tidsbegrænset curl-test til at undersøge proxyforbindelse, HTTPS-tunnel, svarstatus og undtagelser uden at ændre enhedens globale proxy.
Erstat 127.0.0.1:8080 med et endepunkt fra din tjeneste eller listen over HTTP-proxyer, og kør dette mod en harmløs HTTPS-destination:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Loopbackadressen angiver et lyttepunkt på din egen maskine. Kommandoen vælger det udtrykkeligt, rydder curls undtagelsesliste for dette kald og tillader fem sekunder til at oprette forbindelsen og femten sekunder i alt. Den ændrer ikke browserens eller systemets proxyindstillinger.
Brug den faktiske curl-programfil, hvis din shell gør curl til et alias for et andet program; curl --version identificerer buildet. Hvis selve lyttepunktet kræver TLS, skal du bruge det proxy-URL-skema, som dokumentationen angiver.
Læs fire resultater frem for ét grønt lys
- Forbundet til den valgte proxy: adressen og porten kan nås.
- CONNECT accepteret: proxyen har åbnet en tunnel til HTTPS-destinationen.
- Destinationens certifikat verificeret: TLS er gennemført med de forventede tillidskontroller.
- Svar fra destinationen modtaget: undersøg status og indhold for at se, om resultatet opfylder applikationens behov.
En fungerende tunnel kan efterfølges af 403 eller 429 fra destinationen. curl kan også afslutte med succes efter et HTTP-fejlsvar, så registrer både svarstatus og curls fejlresultat. En TCP-forbindelse eller en vellykket CONNECT er ikke nok alene.
Et kompakt resultat til gentagne sammenligninger
I en Unix-lignende shell kan du kassere svarindholdet og udskrive tunnelstatus, destinationsstatus, forbindelsens modpart og forløbet tid:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/http_connect beskriver tunnelsvaret; http_code beskriver det endelige HTTP-svar. remote_ip er curls forbindelsesmodpart, ikke en uafhængig måling af proxyens udgangsadresse. Erstat /dev/null på andre systemer, eller behold svarindholdet.
Hvis testen mislykkes, find det fejlslagne trin i oprettelsen eller overførslen, og sammenlign med direkte adgang til samme destination, hvor den rute er tilladt:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' omgår proxyer. Hvis certifikatkontrollen fejler på begge ruter, peger det mod et fælles tillidsproblem. Hvis direkte adgang lykkes, mens CONNECT afvises, peger det mod proxygodkendelse eller politik. Gennemgå det detaljerede output, før du deler det, da det kan indeholde identificerende oplysninger.
Gem endepunkt, mål og tidsstempel sammen med resultatet. Det fastslår, hvad der virkede for den pågældende anmodning; fremtidig tilgængelighed, privatliv og ydeevne under belastning kræver særskilt dokumentation.