Вы падключаеце 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 — спусковы кручок ва ўсіх трох; прычынай яна бывае рэдка.

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