Hoe om ’n instaanbediener se uitgaande IP na te gaan
Vergelyk die adres wat die bestemming sien met die ingestelde instaanbedienereindpunt, sonder om curl se verbindingsmaat vir die uitgaande IP aan te sien.
Meet die uitgaande IP by die bestemming. Die adres in ’n instaanbedienerlys is die luisterpunt waarmee jou kliënt verbind; NAT, roetering of nog ’n uitgaande sprong kan veroorsaak dat die bestemming ’n ander bronadres sien.
Vergelyk dieselfde IP-kontrole-eindpunt met en sonder die instaanbediener. Hier is ’n vinnige voorbeeld met ’n openbare diens:
curl --noproxy '*' --connect-timeout 5 --max-time 15 https://httpbin.org/ip
curl --proxy http://203.0.113.10:8080 --noproxy '' --connect-timeout 5 --max-time 15 https://httpbin.org/ipVervang die voorbeeld se dokumentasieadres met jou werkende eindpunt. Vir ’n HTTP-inskrywing uit die HTTP-instaanbedienerlys moet jy die luisteradres en die waargenome uitgaande adres apart hou. Die eerste versoek omseil instaanbedieners, waar direkte toegang toegelaat word; die tweede verwyder omseilreëls en kies die instaanbediener. Die kontrolediens ontvang albei versoeke, so laat private data, koekies en tekens weg.
Kyk na die gerapporteerde adres, nie net HTTP 200 nie. ’n Ander adres wat met jou verwagting ooreenstem, ondersteun die roete wat vir hierdie versoek gebruik is. As die twee resultate ooreenstem, ondersoek eers omseilreëls en die opstelling voordat jy besluit die lysinskrywing is vals.
Kyk wat die IP-kontrolediens meet
httpbin se origin-resultaat kan X-Forwarded-For gebruik wanneer dit teenwoordig is. Dit kan ’n ketting bevat eerder as die rou adres van die sokverbinding se ander kant; dit is veral ter sake by toetse met gewone HTTP-aanstuur. As presisie saak maak, is ’n kontrolediens onder jou eie beheer verkieslik: teken die werklike verbindingsmaat by ’n bekende netwerkgrens aan en vertrou aanstuurkopvelde net wanneer jou infrastruktuur dit verskaf en valideer.
Die adres wat curl reeds ken
curl --proxy http://203.0.113.10:8080 --noproxy '' --output /dev/null --write-out 'peer=%{remote_ip}\n' https://example.com/remote_ip identifiseer curl se verbindingsmaat, normaalweg die HTTP-instaanbedienereindpunt in hierdie voorbeeld. Dit help bevestig waarheen curl verbind het, maar neem nie die instaanbediener se uitgaande bronadres waar nie. Die resultaat aan die bestemmingskant beantwoord daardie tweede vraag.
Herhaal die toets binne die toepassing wat die instaanbediener gaan gebruik. ’n Suksesvolle curl-versoek stel nie ’n blaaier op nie; profiele, uitbreidings, omseilreëls en toepassings wat stelselinstellings ignoreer, kan ander roetes kies. As ligging belangrik is, soek die waargenome uitgaande adres se ligging op en stoor die eindpunt én die uitgaande adres saam met die resultaat.