Ваш сервер распрацоўкі адказаў хвіліну таму, а цяпер, калі тунель узняты, запыт сканчаецца тайм-аўтам з іменем хоста, якое вы ніколі не ўводзілі. Дзве механікі тлумачаць амаль усе выпадкі, і звонку яны выглядаюць аднолькава. Суфікс пошуку ператварае кароткае імя ў карпаратыўнае, а праксі адпраўляе трафік вяртання на хост, які не можа яго дасягнуць. Раздзяленне гэтых двух каштуе аднаго запыту і зберагае правіла брандмаўэра, якое вы вось-вось збіраліся напісаць.

Калі localhost развязавецца ў карпаратыўную зону

Праверце, у што развязавецца імя, пакуль тунель узняты, потым выканайце той жа запыт з выключаным тунелем і параўнайце два адказы. Падказка — адрас у карпаратыўным дыяпазоне там, дзе вы чакалі 127.0.0.1. Запіс накшталт localhost.mycompany.corp перамагае запіс вяртання, як толькі кліент дадае гэты суфікс у спіс пошуку, і запыт ідзе на прыватны хост, дзе на гэтым порце нічога не слухае. Чытайце спіс пошуку замест здагадак, бо кліент можа дадаць больш за адзін дамен, і парадак вырашае, які кандыдат будзе паспрабаваны першым:

getent hosts localhost
resolvectl domain
ss -ltnp | grep 8080

Замяніце імя хоста на літаральны адрас у праграме, кліенце базы даных або URL нататніка, потым паўтарыце запыт. Калі збой знікае, у вас была праблема з найменнем, а тунель быў толькі спускавым кручком. Калі ён застаецца, наступны падазроны — слухач або маршрут, а імя было толькі ілжывым следам.

Налады праксі, якія захопліваюць вяртанне

Сістэмны праксі, які ўключаецца пры ўзняцці тунеля, прыме запыт да 127.0.0.1 і пераадрасуе яго аддаленаму праксі, які не ўяўляе, што вы мелі на ўвазе. Пусты спіс выключэнняў ператварае лакальны запыт у аддалены, і паведамленне пра памылку рэдка пра гэта гаворыць. Дадайце адрасы вяртання ў спіс выключэнняў на ўсю сесію, а не на адну каманду, потым пацвердзіце, што інструмент гэта шануе, перш чым рабіць высновы пра сетку.

Фрэймворкі праграм чытаюць свае зменныя асяроддзя, а часам і свой файл канфігурацыі, таму выключэнне, якое працуе для аднаго інструмента, нічога не даказвае для наступнага. Браўзеры дадаюць нюанс: браўзеры на Chromium абыходзяць праксі для вяртання неяўна, і токен выключэння можа прыбраць гэтыя паводзіны. Праверце фактычнае рашэнне праксі, а не меркуйце, што налада аперацыйнай сістэмы — гэта ўся гісторыя. Дзве каманды вырашаюць гэта для ўсяго, што запускаецца з абалонкі:

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, а гэта большая адкрытасць, чым маюць на ўвазе большасць людзей. Калі літаральны адрас вяртання не спрацоўвае, праверце прывязку перш за ўсё.

Паглядзіце на сокет, які слухае, і адзначце адрас, да якога ён прывязаны, а не толькі порт. Калі іншая прылада або кантэйнер павінны дасягнуць сэрвісу праз тунель, прывяжыце да пэўнага інтэрфейсу, які ён выкарыстае, і свядома дазвольце гэты порт. Калі гэта патрэбна толькі вашай машыне, пакіньце вузкую прывязку і выпраўце кліент, а не пашырайце сервер. Перанакіраванне порта або пласт тунеляў могуць злучыць два бакі, але кожны дадае кампанент, якому пазней спатрэбіцца сваё наладжванне.

Дзе інструмент адладкі чакае LAN

Інструменты адладкі нясуць здагадкі, якія тунель ціха ламае. Маст адладкі тэлефона губляе прыладу, калі VPN захоплівае падсетку прылады, таму перападключэнне праз адрас LAN або кабель пазбягае канфлікту. Цэнтр аўтаматызацыі браўзера сканчаецца тайм-аўтам, калі цэнтр дасягальны толькі праз праксі або калі лакальны брандмаўэр скідае яго порт кіравання. Аддалены адладчык можа патрабаваць павышэння правоў і адраса вяртання там, дзе кліент перапісаў маршрут.

Вызначце порт кіравання і порт даных асобна, бо адзін часта выжывае, а другі не. Потым вырашыце, ці належыць выпраўленне да канфігурацыі інструмента, да маршруту для гэтай падсеткі або да правіла раздзеленага тунеля. Рэдагаванне файла hosts на кожнай машыне распрацоўшчыка маштабуецца найгорш і забываецца першым. Аддайце перавагу наладзе, якая жыве з профілем і якую можа прагледзець той, хто валодае тунелем.

Спыніцеся на першым этапе, які збаіў

Прайдзіце тры этапы: развязайце імя, адкрыйце сокет да літаральнага адраса, потым дайце інструменту стварыць сваё злучэнне. Кожны этап прыбірае адзін пласт, таму першы збой называе пласт, які трэба выправіць, а ўсё пасля яго застаецца неправераным. Запішыце вынік перад любым змяненнем, бо выпраўленне, ужытае да вымярэння, немагчыма адрозніць ад удачы. Калі першая спроба не ўдалася, а паўтор працуе, тунель, верагодна, не быў гатовы, калі інструмент стартаваў.

Замяніце фіксаваную паўзу на абмежаваную праверку гатоўнасці, якая чакае маршрут, і пакіньце этап, што збаіў, у журнале, каб наступны чалавек бачыў, дзе ўсё спынілася. Інструмент, які сам аднаўляецца, не выпраўлены, яму проста пашанцавала, а ўдача сканчаецца на чужой машыне. Змяняйце тунель апошнім і толькі для этапу, які сапраўды збаіў. Гэты парадак — таксама найкарацейшы шлях назад да працоўнай зборкі, бо ён не дае вам перарабляць кампанент, які ніколі не ўдзельнічаў.

Падобныя артыкулы