HTTP-proxy tesztelése curl segítségével
Időkorlátos curl-teszttel vizsgálja meg a proxykapcsolatot, a HTTPS-alagutat, a válasz állapotát és a megkerülési szabályokat az eszköz globális proxybeállításának módosítása nélkül.
Cserélje a 127.0.0.1:8080 értéket a szolgáltatása egyik végpontjára vagy a HTTP-proxyk listájából választott címre, majd futtassa ezt egy ártalmatlan HTTPS-cél felé:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/A visszacsatolási cím a saját gépén működő figyelőt jelenti. A parancs kifejezetten ezt választja ki, az adott híváshoz kiüríti a curl megkerülési listáját, és öt másodpercet enged a kapcsolat felépítésére, összesen pedig tizenötöt. A böngésző és a rendszer proxybeállításait nem módosítja.
A tényleges curl futtatható állományt használja, ha a parancsértelmező a curl nevet egy másik program aliasaként kezeli; a curl --version azonosítja a buildet. Ha maga a figyelő TLS-t igényel, a dokumentációjában megadott proxy-URL-sémát használja.
Négy eredményt olvasson ki, ne egyetlen sikerjelzést
- Kapcsolat a kiválasztott proxyval: a cím és a port elérhető.
- CONNECT elfogadva: a proxy alagutat nyitott a HTTPS-célhoz.
- A cél tanúsítványa ellenőrizve: a TLS a várt bizalmi ellenőrzésekkel befejeződött.
- A cél válasza megérkezett: vizsgálja meg az állapotot és a tartalmat az alkalmazás számára szükséges eredmény szempontjából.
Működő alagutat is követhet a cél 403 vagy 429 válasza. A curl HTTP-hibaválasz után is sikeresen kiléphet, ezért a válasz állapotát és a curl hibaeredményét is rögzítse. Önmagában a TCP-kapcsolat vagy a sikeres CONNECT nem elegendő.
Tömör eredmény ismételt összehasonlításokhoz
Unix-szerű parancsértelmezőben dobja el a választörzset, és írassa ki az alagút állapotát, a cél állapotát, a kapcsolat túloldalát és az eltelt időt:
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/A http_connect az alagút válaszát, a http_code a végső HTTP-választ írja le. A remote_ip a curl kapcsolatának túloldala, nem a proxy kilépési címének független mérése. Más rendszereken cserélje le a /dev/null értéket, vagy tartsa meg a választörzset.
Ha a teszt nem sikerül, keresse meg a meghiúsult kapcsolatépítési vagy átviteli lépést, és hasonlítsa össze ugyanazt a célt közvetlen eléréssel, ahol ez az útvonal engedélyezett:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/A --noproxy '*' megkerüli a proxykat. Ha mindkét útvonalon meghiúsul a tanúsítvány ellenőrzése, az közös bizalmi problémára utal; a sikeres közvetlen elérés elutasított CONNECT mellett proxyhitelesítésre vagy szabályzatra utal. Megosztás előtt nézze át a részletes kimenetet, mert azonosításra alkalmas adatokat tartalmazhat.
Mentse a végpontot, a célt és az időbélyeget az eredménnyel együtt. Ez azt rögzíti, mi működött az adott kérésnél; a jövőbeli elérhetőség, az adatvédelem és a terhelés alatti teljesítmény külön bizonyítékot igényel.