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

Дзе адрас PAC і проксі разыходзяцца

Адрас накшталт https://config.corp.example/proxy.pac называе дакумент для спампоўкі, а гэты дакумент называе сервер, праз які ідзе трафік. Устаўка URL у поле хаста проксі просіць кліент адкрыць проксі-злучэнне да файлавага сервера, які ніколі не чакае такога злучэння. Унутры файла ёсць функцыя, якую кліент выклікае для кожнага запыту, і яе вяртаемае значэнне — наступны крок для гэтай адзінай мэты. Гэтая ўскоснасць тлумачыць, чаму дзве машыны на адной сеткавай службе могуць паводзіць сябе па-рознаму, хаця абедзве маюць правільны URL. Яна таксама тлумачыць, чаму змена палітыкі набывае сілу без таго, каб хтосьці чапаў сам проксі.

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

Скрыпт трэба спампаваць, перш чым ён нешта вырашыць

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

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

scutil --proxy
networksetup -getautoproxyurl "Wi-Fi"
curl -sS -o /dev/null -w "%{http_code}\n" https://config.corp.example/proxy.pac

Першая каманда друкуе слоўнік проксі для актыўнай службы, уключаючы любы URL аўтаканфігурацыі, які трымае сістэма. Другая паведамляе URL, прывязаны да адной названай службы, што важна на наўтбуку, які перамяшчаецца паміж Wi-Fi і Ethernet. Трэцяя атрымлівае файл, не адлюстроўваючы яго, таму 404, тайм-аўт і збой рэзалвера застаюцца адрознымі. Калі апошняя каманда вяртае скрыпт, а праграмы ўсё яшчэ падаюць, праблема ўжо пайшла далей за атрыманне.

Што насамрэч абмінае адказ DIRECT

Спецыфікацыя PAC дае кліенту невялікі слоўнік, і DIRECT — адно з яго слоў. Гэтае слова кажа кліенту абысці проксі для гэтага запыту і нічога не кажа пра тое, які інтэрфейс пасля выкарыстае сокет. Прамы сокет на поўным тунелі ўсё роўна выходзіць праз VPN і ўсё роўна паказвае адрас выхаду тунеля мэце.

Чытанне DIRECT як знаходжання па-за VPN — гэта памылка, якая вядзе людзей да няправільнай панэлі налад. Люстраная карціна сустракаецца гэтак жа часта, бо да прыватнага проксі можна дабрацца праз раздвоены маршрут, пакуль астатняя частка машыны застаецца па-за тунелем. То тое, што паведамляе мэта, належыць уласнаму выхаду проксі, які можа знаходзіцца ў іншай краіне. Запіс чакання для аднаго ўнутранага хоста і аднаго публічнага хоста хутка гэта выяўляе, бо скрыпт часта адказвае гэтым двум па-рознаму. Калі вы ведаеце, які крок спарадзіў адрас, справаздача перастае быць загадкавай.

Тры збоі, якія выглядаюць як адна старонка памылкі

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

curl -v --max-time 8 http://proxy.corp.example:8080/
curl -v --max-time 8 https://intranet.corp.example/

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

Што перадаць разам з тыкетам

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

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

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