Toets ’n HTTP-instaanbediener met curl
Gebruik ’n curl-toets met tydsperke om die instaanbedienerverbinding, HTTPS-tonnel, antwoordstatus en omseilreëls te ondersoek sonder om die toestel se globale instaanbediener te verander.
Vervang 127.0.0.1:8080 met ’n eindpunt van jou diens of uit die HTTP-instaanbedienerlys en voer dit teen ’n onskadelike HTTPS-bestemming uit:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Die teruglusadres beteken ’n luisterpunt op jou eie masjien. Hierdie opdrag kies dit uitdruklik, maak curl se omseillys vir dié oproep leeg en laat vyf sekondes toe vir die opstel van die verbinding en vyftien sekondes altesaam. Dit verander nie die blaaier of stelsel se instaanbedienerinstellings nie.
Gebruik die werklike uitvoerbare curl-lêer as jou dop curl as ’n alias vir ’n ander program gebruik; curl --version identifiseer die bouweergawe. As die luisterpunt self TLS vereis, gebruik sy gedokumenteerde instaanbediener-URL-skema.
Lees vier resultate, nie net een groen lig nie
- Verbind met die gekose instaanbediener: die adres en poort is bereikbaar.
- CONNECT aanvaar: die instaanbediener het ’n tonnel na die HTTPS-bestemming oopgemaak.
- Bestemmingsertifikaat geverifieer: TLS is met die verwagte vertrouenskontroles voltooi.
- Bestemming se antwoord ontvang: ondersoek die status en inhoud vir die resultaat wat jou toepassing nodig het.
’n Werkende tonnel kan deur ’n 403 of 429 van die bestemming gevolg word. curl kan ook suksesvol afsluit nadat dit ’n HTTP-foutantwoord ontvang het; teken dus die antwoordstatus én curl se foutresultaat aan. ’n TCP-verbinding of suksesvolle CONNECT alleen is onvoldoende.
’n Kompakte resultaat vir herhaalde vergelykings
In ’n Unix-agtige dop kan jy die antwoordliggaam weggooi en tonnelstatus, bestemmingstatus, die verbinding se eweknie en verstreke tyd druk:
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 beskryf die tonnelantwoord; http_code beskryf die finale HTTP-antwoord. remote_ip is curl se verbindingseweknie, nie ’n onafhanklike meting van die instaanbediener se uitgangsadres nie. Vervang /dev/null op ander stelsels of behou die antwoordliggaam.
As die toets misluk, vind die mislukte opstel- of oordragstap en vergelyk dieselfde bestemming direk waar daardie roete toegelaat word:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' omseil instaanbedieners. Sertifikaatverifikasie wat op albei roetes misluk, dui op ’n gedeelde vertrouensprobleem; ’n suksesvolle direkte verbinding saam met ’n verwerpte CONNECT dui op instaanbedienerverifikasie of beleid. Gaan die uitgebreide uitvoer na voordat jy dit deel, aangesien dit identifiserende inligting kan bevat.
Stoor die eindpunt, teiken en tydstempel saam met die uitslag. Dit lê vas wat vir daardie versoek gewerk het; toekomstige beskikbaarheid, privaatheid en werkverrigting onder las vereis afsonderlike bewyse.