VPN укључен, а localhost престаје да ради: име, прокси или bind?
Localhost престаје да значи ваш рачунар када суфикс претраге или прокси преузму контролу. Поправите име, затим руту, затим ниску повезивања алата.
Ваш сервер за развој је одговорио пре минуту, а сада када је тунел подигнут захтев истиче са именом хоста које никада нисте унели. Скоро сваки случај објашњавају два механизма, а споља изгледају исто. Суфикс претраге претвара кратко име у корпоративно, док прокси шаље loopback саобраћај ка хосту који не може да га достигне. Раздвајање њих две кошта један упит и штеди правило заштитног зида које сте спремали да напишете.
Када се localhost разрешава у корпоративну зону
Проверите у шта се име разрешава док је тунел подигнут, затим покрените исти упит са спуштеним тунелом и упоредите два одговора. Знак је адреса у корпоративном опсегу тамо где сте очекивали 127.0.0.1. Запис као localhost.mycompany.corp побеђује loopback запис оног тренутка када клијент дода тај суфикс на листу претраге, и захтев путује до приватног хоста где ништа не слуша на том порту. Читајте листу претраге уместо да погађате, јер клијент може додати више од једног домена, а редослед одлучује који се кандидат први покушава:
getent hosts localhost
resolvectl domain
ss -ltnp | grep 8080
Замените име хоста буквалном адресом у апликацији, клијенту базе података или URL-у бележнице, па поновите захтев. Ако грешка нестане, имали сте проблем са именовањем и тунел је био само окидач. Ако се задржи, слушалац или рута је следећи осумњичени, а име је било само лажни траг.
Прокси подешавања која хватају loopback
Системски прокси примењен при подизању тунела прихватиће захтев за 127.0.0.1 и проследиће га удаљеном проксију који нема појма шта сте мислили. Празна листа изузетака претвара локални захтев у удаљени, а порука о грешци то ретко каже. Додајте loopback адресе на листу изузетака за целу сесију, а не за једну команду, па потврдите да алат то поштује пре него што закључите било шта о мрежи.
Оквири апликација читају сопствене променљиве окружења и понекад сопствену конфигурациону датотеку, па изузетак који ради за један алат ништа не доказује за следећи. Браузери додају нијансу: браузери засновани на Chromium имплицитно заобилазе прокси за loopback, а токен изузетка може уклонити то понашање. Проверите стварну одлуку проксија уместо да претпоставите да је подешавање оперативног система цела прича. Две команде решавају ово за све што се покреће из љуске:
curl --noproxy '*' http://127.0.0.1:8080/health
NO_PROXY=localhost,127.0.0.1,::1 your-tool
Адреса везе одлучује ко може да се повеже
Сервер покренут на 127.0.0.1 прихвата везе само са тог рачунара, што је обично исправан подразумевани избор за развој. Сервер на 0.0.0.0 одговара на сваком интерфејсу, укључујући VPN адаптер, што је већа изложеност него што већина људи намерава. Када буквална loopback адреса не успе, прво проверите bind.
Погледајте сокет који слуша и забележите адресу на коју је везан, не само порт. Ако други уређај или контејнер мора да достигне услугу кроз тунел, вежите се на одређени интерфејс који ће користити и намерно дозволите тај порт. Ако је потребан само вашем рачунару, задржите уску везу и поправите клијента уместо да проширите сервер. Прослеђивање порта или слој тунела може да споји оба, али сваки додаје компоненту којој ће касније требати сопствено отклањање грешака.
Где алат за отклањање грешака очекује LAN
Алати за отклањање грешака носе претпоставке које тунел тихо крши. Мост за отклањање грешака на телефону губи уређај када VPN захвати подмрежу уређаја, па поновно повезивање преко LAN адресе или кабла избегава сукоб. Чвориште за аутоматизацију браузера истиче када је чвориште доступно само преко проксија или када локални заштитни зид одбаци његов контролни порт. Удаљени дебагер може да захтева подизање привилегија и loopback адресу тамо где је клијент преписао руту.
Одредите контролни порт и порт за податке одвојено, јер често један преживи а други не. Затим одлучите да ли поправка припада конфигурацији алата, рути за ту подмрежу или правилу подељеног тунела. Уређивање hosts датотеке на сваком рачунару програмера најгоре се скалира и прво се заборавља. Преферирајте подешавање које живи са профилом и које може да прегледа онај ко поседује тунел.
Зауставите се на првој фази која не успева
Прођите кроз три фазе: разрешите име, отворите сокет ка буквалној адреси, затим пустите алат да успостави сопствену везу. Свака фаза уклања један слој, па први неуспех именује слој који треба поправити и све после тога остаје непроверено. Запишите резултат пре него што било шта промените, јер поправка примењена пре мерења не може да се разликује од среће. Ако први покушај не успе, а понављање ради, тунел вероватно није био спреман када је алат стартовао.
Замените фиксно чекање ограниченом провером спремности која чека руту и задржите фазу која не успева у дневнику да следећи човек види где се зауставило. Алат који сам се опоравља није поправљен, он има среће, а срећа се потроши на туђем рачунару. Мењајте тунел последњи и само за фазу која је заиста пропала. Тај редослед је и најкраћи пут назад ка работоспособној градњи, јер вас спречава да поново градите компоненту која никада није била укључена.