Git 403 su prisijungtu VPN: raskite, kas atsako
403 yra atsakymas, o ne nuosprendis apie VPN. Nustatykite, kuris komponentas atmetė užklausą, tada lyginkite po vieną kintamąjį tarp tinklų ir užrašykite, kas pasikeitė.
Tai veikia biuro Wi-Fi tinkle ir nepavyksta telefono hotspot tinkle, abiem atvejais VPN prisijungtas. Git grąžina 403, o klaida yra trijų eilučių. Pagunda yra laikyti hotspot priežastimi ir keisti tinklo nustatymus, kol kažkas pajudės. HTTP 403 reiškia, kad serveris suprato užklausą ir ją atmetė, todėl naudingas klausimas yra kuris serveris, o naudingas kitas žingsnis yra palyginimas, keičiantis vieną dalyką vienu metu.
Pirmiausia skaitykite būseną, paskui tinklą
403 nėra nepavykusi paieška, nei TCP skirtasis laikas, nei nebaigtas TLS rankos paspaudimas. Tai sprendimas, kurį priėmė kažkas, kas išanalizavo jūsų užklausą.
Kol nežinote, kas priėmė tą sprendimą, kiekvienas išbandytas tinklo pakeitimas yra spėjimas su tikėtina istorija.
Kas gali atsakyti 403?
Saugyklos programa tėra tik vienas kandidatas. Tarpinė tarnyba, šliuzas ar filtravimo paslauga gali stovėti priešais ją ir atsakyti pirmoji, o klientas abiem atvejais mato tą pačią būseną. Išsaugokite būseną, susijusias antraštes ir išvalytą klaidos turinį, tada susiekite juos su autorizuotos paslaugos žurnalais. Nuotolinis URL ir faktiškai pasiektas galinis taškas taip pat gali skirtis dėl DNS ar tarpinės tarnybos konfigūracijos, todėl patikrinkite sukonfigūruotą adresą ir užklausą atliekantį procesą.
Jei atmetimas niekada nepasiekė saugyklos, jos žurnalai tylės, ir ta tyla yra įrodymas.
Lyginkite po vieną kintamąjį
Palyginimas su hotspot naudingas todėl, kad susiaurina problemą, o ne todėl, kad įrodo priežastį. Du tinklai tuo pačiu metu gali skirtis adresavimu, IP šeima, tarpine tarnyba, TLS derybomis ir išėjimo politika.
Keiskite po vieną dalyką per bandymą, o likusį užrašykite. Lentelė žemiau yra minimumas, kurį laikau užraše tai darydamas:
| 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 |
Vienintelė eilutė, kuri skiriasi tarp veikiančio ir nepavykusio paleidimo, yra vieta, kur eina kita valanda.
Apėjimas yra įrodymas, o ne paaiškinimas
Kitos adresų šeimos primetimas gali pakeisti paskirties vietą, maršrutą ar pasirenkamą tarpininką, todėl gali pakeisti rezultatą neįrodžius, kad IPv6 nesuderinamas su saugykla. Kita suderėta TLS versija yra tos pačios kategorijos stebėjimas. Nė vienas nepateisina sertifikatų patikrų išjungimo ar ryšio silpninimo. Sekite atmetusio komponento politiką ir žurnalus iki tikrojo sprendimo, o nesustokite ties pirmu veikiančiu pakeitimu.
Apėjimas, kurio negalite paaiškinti, vėl nepavyks kitur.
Parašykite ataskaitą, kuri bus pataisyta
Duokite atsakiusio komponento savininkui tą pačią operaciją, du kelius ir komponentą, kuris pasakė ne. Prieš ką nors bendrindami pašalinkite autorizacijos antraštes, įterptus prisijungimo duomenis ir privačias saugyklos detales.
Naudinga ataskaita trumpa, atkuriama ir įvardija sluoksnį, o ne simptomą.
Patikra, kurią atlieku, iš eilės
Patvirtinkite nuotolinį URL ir išspręstą galinį tašką, tada užfiksuokite būseną ir antraštes iš nepavykusio paleidimo. Pakartokite tą pačią operaciją antrame tinkle ir palyginkite du įrašus.
Tada nuneškite tą skirtumą komponentui, kuris atsakė:
- Tarpinės tarnybos konfigūracija kliente ir tinkle.
- Išėjimo politika arba filtravimas prieš saugyklą.
- Žetono ar paskyros apimtis, įskaitant galiojimo pabaigą ir SSO sąlygas.
- Saugyklos leidimas tapatybei, kurią atstovauja žetonas.
Pačios būsenos semantika yra RFC 9110, ir verta ją cituoti rašant ataskaitą.