Зашто VPN на Mac-у пада када прикључите iPhone преко USB-а
iPhone прикључен преко USB-а може додати руту хотспота или везу уређаја Xcode. Проверите услугу, руту и грешку клијента пре него што било шта избришете.
Прикључите iPhone да се пуни, а минут касније VPN на вашем Mac-у престаје да пропушта саобраћај. Подешавања система приказују нову услугу под називом iPhone USB, а очигледан потез је да је избришете. Тај потез је често погрешан. Услуга може бити лични хотспот телефона или веза коју Xcode и алати за уређаје користе за разговор са телефоном, и те две се понашају довољно различито да идентификација мора доћи пре брисања.
Корак 1: Прочитајте услугу коју је телефон заиста створио
Отворите Подешавања система, затим Мрежу и упоредите листу услуга са телефоном искљученим и прикљученим. У актуелном macOS-у услуга је наведена као iPhone USB. Забележите да ли је активна, где стоји у редоследу услуга и да ли је Mac користи за подразумевану руту. Редослед услуга је важан јер macOS бира највишу активну услугу која може да стигне до одредишта, а не ону чије име препознајете.
Apple-ов водич за лични хотспот описује механизам: док је лични хотспот укључен на телефону, повезивање преко USB-а може натерати Mac да користи мобилну везу телефона, чак и када сте желели само да га пуните. То није грешка VPN клијента; табела рутирања прати услугу која се подигла пре Wi-Fi-ја.
Ако услуга постоји али остане неактивна са прикљученим телефоном, највероватније гледате везу само за пуњење или везу уређаја, а не хотспот. Задржите ту разлику, јер је наредна два корака тестирају уместо да нагађају по икони.
Корак 2: Проверите коју руту користи крајња тачка VPN-а
Прочитајте руту до решене адресе VPN сервера, а не до веб-сајта. route -n get је само за читање и штампа интерфејс и мрежни пролаз које би кернел користио, и оба реда су важна.
scutil --dns | head -20
route -n get 203.0.113.10Адреса горе је резервисано место за документацију. Замените је крајњом тачком коју приказује ваш клијент и користите route -n get -inet6 за крајњу тачку IPv6. Упоредите излаз са телефоном искљученим и прикљученим и не додајте нити уклањајте руте између два читања. Ако се интерфејс промени са en0 на интерфејс iPhone USB, пут преко хотспота је победио у претрази и спољашња веза VPN-а сада иде преко мобилне мреже.
Промена руте не објашњава сваки неуспех. Клијент и даље може да стигне сервер и касније не успе на унутрашњем саобраћају тунела, јер нови пут има други MTU или оператер блокира протокол. Прочитајте сопствену грешку клијента пре него што било шта промените: спољни истек времена руковања указује на доступност, док успостављен тунел који престане да пропушта саобраћај указује на MTU, DNS или политику.
Корак 3: Одвојте хотспот од везе за комуникацију са уређајем
Xcode 15 и новије верзије разговарају са уређајем прикљученим преко USB-а преко мрежног канала који укључује локални за везу IPv6, па развојни Mac може приказати додатни интерфејс који нема никакве везе са приступом интернету. Apple-ова техничка белешка TN3158 документује то понашање и упозорава да VPN или безбедносно филтрирање може да му смета. Ово је обрнуто од проблема са хотспотом: VPN се не квари зато што телефон нуди интернет; веза са уређајем се квари зато што је VPN пресреће.
Два запажања раздвајају случајеве без хватања пакета. Прво, проверите да ли интерфејс има рутабилну адресу и подразумевану руту или само локалну за везу адресу fe80::; само локална за везу значи да нема пута до интернета. Друго, искључите VPN и погледајте да ли Xcode поново стиже до уређаја. Ако стиже, руте или филтер садржаја VPN-а хватају локални саобраћај и исправка припада конфигурацији подељеног тунела или филтера, а не панелу Мрежа.
ifconfig | grep -A4 -E '^en[0-9]+:'
netstat -rn -f inet6 | headНе просуђујте само по имену интерфејса. macOS ствара и уништава ове интерфејсе како се уређаји прикључују, а број en се додељује у току рада, па исти Mac може приказати други број после рестартовања или замене кабла.
Корак 4: Репродукујте неуспех са једном променљивом одједном
Када знате која је услуга укључена, репродукујте проблем у фиксном редоследу. Почните са искљученим телефоном и повезаним VPN-ом. Прикључите телефон са искљученим личним хотспотом, сачекајте да се листа Мрежа стабилизује и поново покрените упит руте. Искључите, укључите лични хотспот, прикључите поново и поновите. Запишите интерфејс, мрежни пролаз и грешку клијента за свако од три стања и имате поређење уместо сећања.
Ако VPN пада само у стању хотспота, држите телефон даље од тог пута: искључите лични хотспот док пуните или преместите услугу iPhone USB испод Wi-Fi-ја у редоследу услуга. Ако пада у сваком прикљученом стању, укључујући и са искљученим хотспотом, погледајте како клијент обрађује прелаз мреже. Неки клијенти руше тунел када се промени примарна услуга и траже поновно повезивање; то је понашање клијента, а не квар телефона.
Мењајте једну ствар по покушају. Брисање услуге, ресетовање VPN конфигурације и поновна инсталација клијента у истом минуту остављају вас са Mac-ом који ради и без идеје која је радња то поправила.
Корак 5: Одлучите шта да задржите и шта да проверите
Оставите везу са уређајем на миру. Уклањање интерфејса који Xcode користи не поправља VPN руту и квари распоређивање на уређаје до следећег прикључивања. Ако услуга хотспота заиста није пожељна, прво искључите лични хотспот на телефону; то је документована контрола и преживљава рестартовање.
Ако ипак уклоните услугу, уклоните ону коју сте идентификовали и затим проверите две ствари: рута до крајње тачке VPN-а је поново на очекиваном интерфејсу и тунел пропушта саобраћај до унутрашње адресе, не само до интернета. Запишите редослед услуга и верзију клијента, јер ажурирање macOS-а може да промени како се телефон појављује.
Затим класификујте неуспех који сте заиста видели. Истек времена руковања, застој MTU-а после подизања тунела и DNS одговори који долазе од оператера су три различита проблема са три различита решења. Услуга USB је окидач у сва три; узрок је ретко.