V kancelářské Wi-Fi to funguje a na hotspotu telefonu to selhává, přičemž VPN je v obou případech připojená. Git vrací 403 a chyba má tři řádky. Pokušením je považovat hotspot za příčinu a měnit síťová nastavení, dokud se něco nepohne. HTTP 403 znamená, že server žádost pochopil a odmítl ji, takže užitečná otázka je který server, a užitečný další krok je srovnání, které mění jednu věc po druhé.

Přečtěte stav dřív než síť

403 není neúspěšné hledání, ani timeout TCP, ani nedokončený handshake TLS. Je to rozhodnutí, které učinilo něco, co analyzovalo vaši žádost.

Dokud nevíte, co to rozhodnutí učinilo, každá síťová změna, kterou zkusíte, je odhad s věrohodným příběhem.

Kdo může odpovědět 403?

Aplikace repozitáře je jen jeden kandidát. Proxy, brána nebo filtrační služba mohou stát před ní a odpovědět první a klient vidí v obou případech stejný stav. Uložte stav, příslušné hlavičky a očištěné tělo chyby, pak je spojte s protokoly autorizované služby. Vzdálená URL a skutečně dosažený koncový bod se mohou lišit také kvůli DNS nebo konfiguraci proxy, proto zkontrolujte nakonfigurovanou adresu a proces, který žádost odesílá.

Pokud odmítnutí nikdy nedorazilo do repozitáře, jeho protokoly budou mlčet, a to mlčení je důkaz.

Porovnávejte jednu proměnnou po druhé

Srovnání s hotspotem je užitečné, protože zužuje problém, ne proto, že dokazuje příčinu. Dvě sítě se mohou současně lišit v adresování, rodině IP, proxy, vyjednávání TLS a výstupní politice.

Měňte jednu věc na pokus a zbytek zapisujte. Tabulka níže je minimum, které si při tom držím v poznámce:

Keep constantRecord when it changes
Repository, operation and credentialsResolved address and IP family
Git process and configurationProxy use and the responding component
Intended VPN profileActual route and exit seen by the service

Jediný řádek, který se liší mezi fungujícím a selhávajícím během, je místo, kam jde další hodina.

Obchvat je důkaz, ne vysvětlení

Vynucení jiné rodiny adres může změnit cíl, trasu nebo zprostředkovatele, který se vybere, takže může změnit výsledek, aniž by dokázalo, že IPv6 je s repozitářem nekompatibilní. Jiná vyjednaná verze TLS je pozorování ve stejné kategorii. Ani jedno neopravňuje vypnout kontroly certifikátů nebo oslabit spojení. Sledujte politiku a protokoly odmítající komponenty až ke skutečnému rozhodnutí, místo abyste se zastavili u první změny, která funguje.

Obchvat, který nedokážete vysvětlit, znovu selže jinde.

Napište hlášení, které se opraví

Dejte vlastníkovi komponenty, která odpověděla, stejnou operaci, dvě cesty a komponentu, která řekla ne. Před sdílením čehokoli odstraňte autorizační hlavičky, vložené přihlašovací údaje a soukromé údaje repozitáře.

Užitečné hlášení je krátké, opakovatelné a pojmenovává vrstvu, ne symptom.

Kontrola, kterou dělám, v pořadí

Potvrďte vzdálenou URL a přeložený koncový bod, pak zachyťte stav a hlavičky ze selhávajícího běhu. Zopakujte stejnou operaci v druhé síti a porovnejte oba záznamy.

Pak vezměte ten rozdíl ke komponentě, která odpověděla:

  • Konfigurace proxy na klientovi a v síti.
  • Výstupní politika nebo filtrování před repozitářem.
  • Rozsah tokenu nebo účtu, včetně expirace a podmínek SSO.
  • Oprávnění repozitáře pro identitu, kterou token zastupuje.

Samotná sémantika stavu je v RFC 9110, a stojí za to ji citovat, když píšete hlášení.

Související články