Vaš razvojni strežnik je odgovoril pred minuto, in zdaj, ko je tunel dvignjen, zahteva poteče z imenom gostitelja, ki ga niste nikoli vtipkali. Skoraj vsak primer razložita dva mehanizma, in od zunaj sta videti enaka. Iskalna pripona spremeni kratko ime v podjetniško, medtem ko proxy pošlje loopback promet na gostitelja, ki ga ne more doseči. Ločevanje obeh stane eno poizvedbo in prihrani pravilo požarnega zidu, ki ste ga nameravali napisati.

Ko se localhost razreši v podjetniško cono

Preverite, v kaj se ime razreši, medtem ko je tunel dvignjen, nato zaženite isto poizvedbo s spuščenim tunelom in primerjajte oba odgovora. Znak je naslov v podjetniškem obsegu tam, kjer ste pričakovali 127.0.0.1. Zapis, kot je localhost.mycompany.corp, premaga vnos loopback, takoj ko odjemalec doda to pripono na iskalni seznam, in zahteva potuje na zasebnega gostitelja, kjer na teh vratih nič ne posluša. Berite iskalni seznam, namesto da bi ugibali, ker lahko odjemalec doda več kot eno domeno in vrstni red odloči, kateri kandidat se preizkusi prvi:

getent hosts localhost
resolvectl domain
ss -ltnp | grep 8080

Zamenjajte ime gostitelja z dobesednim naslovom v aplikaciji, odjemalcu podatkovne baze ali URL-ju beležnice in nato ponovite zahtevo. Če se napaka izgubi, ste imeli težavo s poimenovanjem in tunel je bil le sprožilec. Če vztraja, je naslednji osumljenec poslušalec ali pot, ime pa je bila le lažna sled.

Nastavitve proxyja, ki ujamejo loopback

Sistemski proxy, ki se uporabi ob dvigu tunela, bo sprejel zahtevo na 127.0.0.1 in jo posredoval oddaljenemu proxyju, ki nima pojma, kaj ste mislili. Prazen seznam izjem spremeni lokalno zahtevo v oddaljeno, in sporočilo o napaki to redko pove. Dodajte naslove loopback na seznam izjem za celotno sejo in ne za en ukaz, nato potrdite, da orodje to upošteva, preden sklepate karkoli o omrežju.

Aplikacijski ogrodji berejo svoje okoljske spremenljivke in včasih svojo konfiguracijsko datoteko, zato izjema, ki deluje za eno orodje, ne dokaže ničesar za naslednje. Brskalniki dodajo podrobnost: brskalniki na osnovi Chromium privzeto obidejo proxy za loopback, in žeton izjeme lahko to vedenje odstrani. Preverite dejansko odločitev proxyja, namesto da predpostavljate, da je nastavitev operacijskega sistema cela zgodba. Dva ukaza to razrešita za vse, kar se zažene iz lupine:

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

Naslov bind odloči, kdo se lahko poveže

Strežnik, zagnan na 127.0.0.1, sprejema povezave le s tega stroja, kar je običajno pravilna privzeta vrednost za razvoj. Strežnik na 0.0.0.0 odgovarja na vsakem vmesniku, vključno z adapterjem VPN, kar je večja izpostavljenost, kot jo namerava večina ljudi. Ko dobesedni naslov loopback ne uspe, najprej preverite bind.

Poglejte poslušajočo vtičnico in zapišite naslov, na katerega je vezana, ne le vrat. Če mora druga naprava ali vsebnik doseči storitev skozi tunel, jo vežite na določen vmesnik, ki ga bo uporabila, in ta vrata zavestno dovolite. Če jo potrebuje le vaš stroj, obdržite ozek bind in popravite odjemalca, namesto da razširite strežnik. Posredovanje vrat ali plast tunelov lahko poveže oboje, a vsak doda komponento, ki bo pozneje potrebovala lastno razhroščevanje.

Kjer orodje za razhroščevanje pričakuje LAN

Orodja za razhroščevanje nosijo predpostavke, ki jih tunel tiho zlomi. Most za razhroščevanje telefona izgubi napravo, ko VPN zajame podomrežje naprave, zato se ponovno povezovanje prek naslova LAN ali kabla izogne konfliktu. Središče za avtomatizacijo brskalnika poteče, ko je središče dostopno le prek proxyja, ali ko lokalni požarni zid spusti njegova nadzorna vrata. Oddaljeni razhroščevalnik lahko zahteva povišanje in naslov loopback tam, kjer je odjemalec prepisal pot.

Določite nadzorna vrata in podatkovna vrata ločeno, ker pogosto ena preživijo, druga pa ne. Nato odločite, ali popravek spada v konfiguracijo orodja, v pot za to podomrežje ali pravilu razdeljenega tunela. Urejanje datoteke hosts na vsakem razvijalčevem stroju se slabo skalira in se prvo pozabi. Dajte prednost nastavitvi, ki živi s profilom in jo lahko pregleda vsak, ki ima tunel.

Ustavite se pri prvi stopnji, ki spodleti

Pojdite skozi tri stopnje: razrešite ime, odprite vtičnico na dobesedni naslov in nato pustite orodju, da vzpostavi svojo povezavo. Vsaka stopnja odpravi eno plast, zato prva napaka poimenuje plast, ki jo je treba popraviti, in vse za njo ostane nepreizkušeno. Zapišite rezultat, preden karkoli spremenite, ker popravka, uporabljenega pred meritvijo, ni mogoče ločiti od sreče. Če prvi poskus ne uspe in ponovitev deluje, tunel verjetno ni bil pripravljen, ko se je orodje zagnalo.

Zamenjajte fiksno čakanje z omejenim preverjanjem pripravljenosti, ki čaka na pot, in obdržite neuspešno stopnjo v dnevniku, da naslednja oseba vidi, kje se je ustavilo. Orodje, ki si samo opomore, ni popravljeno, le srečo ima, in sreča se izteče na tujem stroju. Tunel spremenite nazadnje in le za stopnjo, ki je resnično spodletela. Ta vrstni red je tudi najkrajša pot nazaj do delujoče gradnje, ker vas ustavi pred ponovno gradnjo komponente, ki ni bila nikoli vključena.

Sorodni članki