Git 403 s povezanim VPN: poiščite, kdo odgovarja
403 je odgovor, ne sodba o VPN. Ugotovite, kateri gradnik je zavrnil, nato primerjajte eno spremenljivko naenkrat med omrežji in zapišite, kaj se je spremenilo.
Deluje na pisarniškem Wi-Fi in ne uspe na mobilni točki telefona, pri čemer je VPN povezan v obeh primerih. Git vrne 403 in napaka je dolga tri vrstice. Skušnjava je, da bi mobilno točko imeli za vzrok in spreminjali omrežne nastavitve, dokler se kaj ne premakne. HTTP 403 pomeni, da je strežnik zahtevo razumel in jo zavrnil, zato je koristno vprašanje kateri strežnik, koristen naslednji korak pa je primerjava, ki spreminja eno stvar naenkrat.
Preberite status pred omrežjem
403 ni neuspešno iskanje, časovna omejitev TCP ali rokovanje TLS, ki se nikoli ni končalo. To je odločitev, ki jo je sprejelo nekaj, kar je razčlenilo vašo zahtevo.
Dokler ne veste, kaj je sprejelo to odločitev, je vsaka omrežna sprememba, ki jo poskusite, ugibanje z verjetno zgodbo.
Kdo lahko odgovori s 403?
Aplikacija repozitorija je le en kandidat. Posrednik, prehod ali storitev filtriranja lahko stoji pred njo in odgovori prva, odjemalec pa v vsakem primeru vidi isti status. Ohranite status, ustrezne glave in očiščeno telo napake, nato jih povežite z dnevniki pooblaščene storitve. Oddaljeni URL in dejansko dosežena končna točka se lahko razlikujeta tudi zaradi DNS ali konfiguracije posrednika, zato preverite nastavljeni naslov in postopek, ki pošilja zahtevo.
Če zavrnitev ni nikoli prispela v repozitorij, bodo njegovi dnevniki tihi, in ta tišina je dokaz.
Primerjajte eno spremenljivko naenkrat
Primerjava z mobilno točko je koristna, ker zoži težavo, ne zato, ker dokazuje vzrok. Dve omrežji se lahko hkrati razlikujeta v naslavljanju, družini IP, posredniku, pogajanju TLS in izhodni politiki.
Spremenite eno stvar na poskus in zapišite ostalo. Spodnja tabela je minimum, ki ga imam v zapisku, medtem ko to počnem:
| Keep constant | Record when it changes |
|---|---|
| Repository, operation and credentials | Resolved address and IP family |
| Git process and configuration | Proxy use and the responding component |
| Intended VPN profile | Actual route and exit seen by the service |
Ena vrstica, ki se razlikuje med delujočim in neuspešnim izvajanjem, je kraj, kam gre naslednja ura.
Obhod je dokaz, ne razlaga
Vsiljevanje druge družine naslovov lahko spremeni cilj, pot ali posrednika, ki je izbran, zato lahko spremeni rezultat, ne da bi dokazalo, da je IPv6 nezdružljiv z repozitorijem. Druga pogajana različica TLS je opažanje v isti kategoriji. Nobeno od tega ne opravičuje izklopa preverjanja potrdil ali slabitve povezave. Sledite politiki in dnevnikom gradnika, ki je zavrnil, do dejanske odločitve, namesto da bi se ustavili pri prvi spremembi, ki deluje.
Obhod, ki ga ne znate razložiti, bo spet spodletel drugje.
Napišite poročilo, ki bo popravljeno
Dajte lastniku gradnika, ki je odgovoril, isto operacijo, dve poti in gradnik, ki je rekel ne. Odstranite glave za avtorizacijo, vdelane poverilnice in podrobnosti zasebnega repozitorija, preden karkoli delite.
Koristno poročilo je kratko, ponovljivo in poimenuje plast, ne simptoma.
Preverjanje, ki ga izvajam, po vrsti
Potrdite oddaljeni URL in razrešeno končno točko, nato zajemite status in glave iz neuspešnega izvajanja. Ponovite isto operacijo v drugem omrežju in primerjajte dva zapisa.
Nato odnesite to razliko gradniku, ki je odgovoril:
- Konfiguracija posrednika na odjemalcu in v omrežju.
- Izhodna politika ali filtriranje pred repozitorijem.
- Obseg žetona ali računa, vključno s potekom in pogoji SSO.
- Dovoljenje repozitorija za identiteto, ki jo žeton predstavlja.
Sama semantika statusa je v RFC 9110, in vredna je navedbe, ko pišete poročilo.