Mac VPN жана PAC прокси: бир жөндөө эмес, эки чечим
PAC файлы ар бир суроо үчүн проксини тандайт, VPN болсо маршрутту тандайт. Жүктөөнү, тандоону жана сокетти көзөмөлдөңүз жана DIRECTти офлайн деп окууну токтотуңуз.
Сиздин 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 прокси сөздүгүн этибарга албайт, эгер кабык прокси өзгөрмөлөрүн экспорттобосо, ошондуктан адегенде аларды тазалаңыз. Эки зонддун эч бири экинчисин далилдебейт, ошондуктан бир ката бети ушунча узак адаштырат.
Билет менен эмнени өткөрүп берүү керек
Активдүү тармактык кызматты, PAC URLин, ийгиликсиз хост үчүн баалоо жыйынтыгын жана ката пайда болгон баскычты жөнөтүңүз. Бул төртөө кийинки адамга кайсы катмар катышканын болжолдоонун ордуна чечимди кайра жаратууга мүмкүндүк берет. Тест учурундагы туннелдин абалын кошуңуз, анткени кайра туташуудан мурун алынган жыйынтык эскирген. Скрипттин ревизиясын да сактаңыз, анткени саясат файлы эскертүүсүз өзгөрөт жана кечээки жооп мындан ары актуалдуу болбошу мүмкүн.
Скриптти алуу мүмкүн болбогондо кардардын кандай жүрүшүн жазыңыз, анткени ишке ашыруулар ар башка жана прокси чечими бүткүл түзмөктүн өчүргүчү эмес. Кээ бирлери түз байланышка кайтышат, башкалары жабык абалда ийгиликсиз болушат, жана бул айырма үзгүлтүк бузулган проксиге же иштеп жаткан саясатка окшош көрүнүшүн өзгөртөт. Окуя учурунда ага таянбастан мурун так кардар жана версия үчүн жүрүм-турумду ырастаңыз.