Git 403 ar pievienotu VPN: atrodiet, kas atbild
403 ir atbilde, nevis spriedums par VPN. Noskaidrojiet, kura komponente noraidīja pieprasījumu, tad salīdziniet vienu mainīgo reizē starp tīkliem un pierakstiet, kas mainījās.
Tas darbojas biroja Wi-Fi tīklā un neizdodas tālruņa hotspot tīklā, abos gadījumos VPN ir pievienots. Git atgriež 403, un kļūda ir trīs rindas gara. Kārdinājums ir uzskatīt hotspot par cēloni un mainīt tīkla iestatījumus, līdz kaut kas pakustas. HTTP 403 nozīmē, ka serveris saprata pieprasījumu un to noraidīja, tāpēc lietderīgais jautājums ir kurš serveris, un lietderīgais nākamais solis ir salīdzinājums, kas maina vienu lietu reizē.
Vispirms lasiet statusu, tad tīklu
403 nav neizdevusies meklēšana, ne TCP taimauts, ne nepabeigta TLS rokasspiediena. Tas ir lēmums, ko pieņēma kaut kas, kas analizēja jūsu pieprasījumu.
Kamēr nezināt, kas šo lēmumu pieņēma, katrs izmēģinātais tīkla grozījums ir minējums ar ticamu stāstu.
Kas var atbildēt ar 403?
Krātuves lietojumprogramma ir tikai viens kandidāts. Starpniekserveris, vārteja vai filtrēšanas pakalpojums var atrasties tās priekšā un atbildēt pirmais, un klients abos gadījumos redz to pašu statusu. Saglabājiet statusu, attiecīgos galvenes un attīrītu kļūdas saturu, pēc tam sasaistiet tos ar autorizētā pakalpojuma žurnāliem. Attālinātais URL un faktiski sasniegtais galapunkts var atšķirties arī DNS vai starpniekservera konfigurācijas dēļ, tāpēc pārbaudiet konfigurēto adresi un procesu, kas veic pieprasījumu.
Ja noraidījums nekad nesasniedza krātuvi, tās žurnāli klusēs, un šis klusums ir pierādījums.
Salīdziniet vienu mainīgo reizē
Salīdzinājums ar hotspot ir lietderīgs tāpēc, ka sašaurina problēmu, nevis tāpēc, ka pierāda cēloni. Divi tīkli vienā mirklī var atšķirties adresācijā, IP saimē, starpniekserverī, TLS sarunās un izejošās plūsmas politikā.
Mainiet vienu lietu katrā mēģinājumā un pierakstiet pārējo. Zemāk esošā tabula ir minimums, ko paturu piezīmē, to darot:
| 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 |
Vienīgā rinda, kas atšķiras starp strādājošo un neizdevušos izpildi, ir vieta, kur aiziet nākamā stunda.
Apietais risinājums ir pierādījums, nevis skaidrojums
Citas adrešu saimes uzspiešana var mainīt galamērķi, maršrutu vai izvēlēto starpnieku, tāpēc tā var mainīt rezultātu, nepierādot, ka IPv6 nav saderīgs ar krātuvi. Cita sarunāta TLS versija ir tās pašas kategorijas novērojums. Neviens no tiem neattaisno sertifikātu pārbaužu izslēgšanu vai savienojuma vājināšanu. Sekojiet noraidījušās komponentes politikai un žurnāliem līdz faktiskajam lēmumam, tā vietā lai apstātos pie pirmās izmaiņas, kas darbojas.
Apietais risinājums, ko nevarat izskaidrot, atkal neizdosies citur.
Uzrakstiet ziņojumu, ko izlabos
Dodiet atbildējušās komponentes īpašniekam to pašu darbību, divus ceļus un komponenti, kas atteicās. Pirms kaut ko kopīgot noņemiet autorizācijas galvenes, iegultos akreditācijas datus un privātas krātuves detaļas.
Lietderīgais ziņojums ir īss, atkārtojams un nosauc slāni, nevis simptomu.
Pārbaude, ko veicu, secībā
Apstipriniet attālināto URL un atrisināto galapunktu, pēc tam fiksējiet statusu un galvenes no neizdevušās izpildes. Atkārtojiet to pašu darbību otrā tīklā un salīdziniet abus ierakstus.
Pēc tam aiznesiet šo atšķirību komponentei, kas atbildēja:
- Starpniekservera konfigurācija klientā un tīklā.
- Izejas politika vai filtrēšana krātuves priekšā.
- Marķiera vai konta tvērums, ieskaitot derīguma termiņu un SSO nosacījumus.
- Krātuves atļauja identitātei, ko pārstāv marķieris.
Statusa semantika pati ir RFC 9110, un to ir vērts citēt, rakstot ziņojumu.