Utviklingsserveren din svara for eit minutt sidan, og no som tunnelen er oppe, går førespurnaden i timeout med eit vertsnamn du aldri skreiv. To mekanismar forklarer nesten kvart tilfelle, og utanfrå ser dei identiske ut. Eit søkjetillegg gjer eit kort namn om til eit bedriftsnamn, medan ein proxy sender loopback-trafikk til ein vert som ikkje kan nå han. Å skilje dei to kostar éi spørjing og sparar brannmurregelen du var i ferd med å skrive.

Når localhost resolver inn i bedriftssona

Sjekk kva namnet resolver til medan tunnelen er oppe, køyr deretter same spørjing med tunnelen nede og samanlikn dei to svara. Det avslørande er ei adresse i bedriftsområdet der du venta 127.0.0.1. Ein post som localhost.mycompany.corp vinn over loopback-oppføringa så snart klienten legg tillegget til søkjelista, og førespurnaden reiser til ein privat vert der ingenting lyttar på den porten. Les søkjelista i staden for å gjette, fordi ein klient kan leggje til meir enn eitt domene, og rekkjefølgja avgjer kva kandidat som vert prøvd først:

getent hosts localhost
resolvectl domain
ss -ltnp | grep 8080

Erstatt vertsnamnet med den bokstavelege adressa i applikasjonen, databaseklienten eller notatblokk-URL-en, og repeter deretter førespurnaden. Viss feilen forsvinn, hadde du eit namnepproblem, og tunnelen var berre utløysaren. Viss han held fram, er lyttaren eller ruta den neste mistenkte, og namnet var eit falskt spor.

Proxyinnstillingar som fangar loopback

Ein systemproxy som vert brukt når tunnelen kjem opp, godtek ein førespurnad til 127.0.0.1 og sender han vidare til ein ekstern proxy som ikkje anar kva du meinte. Ei tom unntaksliste gjer ein lokal førespurnad til ein ekstern, og feilmeldinga seier det sjeldan. Legg loopback-adressene til unntakslista for heile økta i staden for for éin kommando, og stadfest deretter at verktøyet respekterer ho før du konkluderer noko om nettverket.

Applikasjonsrammeverk les sine eigne miljøvariablar og stundom si eiga konfigurasjonsfil, så eit unntak som verkar for eitt verktøy, provar ingenting for det neste. Nettlesarar legg til ein vri: Chromium-baserte nettlesarar omgår proxyen for loopback implisitt, og eit unntakstoken kan fjerne den åtferda. Sjekk den faktiske proxyavgjerda i staden for å anta at operativsysteminnstillinga er heile historia. To kommandoar avgjer det for alt som vert starta frå eit skal:

curl --noproxy '*' http://127.0.0.1:8080/health
NO_PROXY=localhost,127.0.0.1,::1 your-tool

Bindingsadressa avgjer kven som kan kople til

Ein server som vert starta på 127.0.0.1, godtek berre tilkoplingar frå den maskinen, noko som vanlegvis er rett standard for utvikling. Ein server på 0.0.0.0 svarar på kvart grensesnitt, inkludert VPN-adapteren, noko som er meir eksponering enn dei fleste har tenkt. Når den bokstavelege loopback-adressa feilar, sjekk bindinga før alt anna.

Sjå på den lyttande socketen og noter adressa han er bunden til, ikkje berre porten. Viss ein annan eining eller container må nå tenesta gjennom tunnelen, bind til det spesifikke grensesnittet ho vil bruke, og tillat den porten med vilje. Viss berre di eiga maskin treng han, hald den tronge bindinga og rett klienten i staden for å utvide serveren. Ei portvideresending eller eit tunnellag kan byggje bru mellom dei to, men kvar av dei legg til ein komponent som seinare treng si eiga feilsøking.

Kvar eit feilsøkingsverktøy ventar LAN

Feilsøkingsverktøy ber på antakingar som ein tunnel stille bryt. Ei telefonfeilsøkingsbru mistar eininga når VPN-en fangar opp subnettet til eininga, så å kople til på nytt via LAN-adressa eller ein kabel unngår konflikten. Eit nettlesarautomatiserings-hub går i timeout når huben berre er tilgjengeleg via proxyen, eller når ein lokal brannmur slepp kontrollporten sin. Ein ekstern debuggar kan krevje forhøging og ei loopback-adresse der klienten skreiv om ruta.

Identifiser kontrollporten og datahamna kvar for seg, fordi den eine ofte overlever medan den andre ikkje gjer det. Avgjer deretter om rettinga høyrer til konfigurasjonen til verktøyet, i ei rute for det subnettet eller i ei regel for delt tunnel. Å redigere ei hosts-fil på kvar utviklarmaskin skalerer dårlegast og vert gløymt først. Føretrekk innstillinga som lever med profilen og kan gjennomgåast av den som eig tunnelen.

Stopp ved det første trinnet som feilar

Arbeid deg gjennom tre trinn: løys opp namnet, opne ein socket til den bokstavelege adressa, og la deretter verktøyet lage si eiga tilkopling. Kvart trinn eliminerer eitt lag, så den første feilen nemner laget som skal rettast, og alt etter det vert ståande utan test. Skriv ned resultatet før du endrar noko, fordi ei retting brukt før målinga ikkje kan skiljast frå flaks. Viss det første forsøket feilar og eit nytt verkar, var tunnelen truleg ikkje klar då verktøyet starta.

Erstatt den faste søvnen med ein avgrensa beredskapskontroll som ventar på ruta, og hald trinnet som feilar i loggen slik at neste person ser kvar det stoppa. Eit verktøy som kjem seg av seg sjølv, er ikkje retta, det er heldig, og flaksen tek slutt på maskinen til nokon andre. Endre tunnelen sist, og berre for trinnet som faktisk feila. Den rekkjefølgja er òg den kortaste vegen tilbake til eit fungerande bygg, fordi ho hindrar deg i å byggje på nytt ein komponent som aldri var involvert.

Relaterte artiklar