Proč VPN na Macu spadne, když připojíte iPhone přes USB
iPhone připojený přes USB může přidat trasu hotspotu nebo zařízení Xcode. Zkontrolujte službu, trasu a chybu klienta, než cokoli smažete.
Připojíte iPhone, aby se nabíjel, a o minutu později VPN na vašem Macu přestane propouštět provoz. Nastavení systému ukážou novou službu s názvem iPhone USB a zřejmým krokem je ji smazat. Ten krok je často špatný. Služba může být osobní hotspot telefonu, nebo to může být spojení, které Xcode a nástroje pro zařízení používají ke komunikaci s telefonem, a obojí se chová dostatečně odlišně, aby identifikace musela přijít před smazáním.
Krok 1: Přečtěte si službu, kterou telefon skutečně vytvořil
Otevřete Nastavení systému, pak Síť a porovnejte seznam služeb s telefonem odpojeným a připojeným. V aktuálním macOS je služba uvedena jako iPhone USB. Všimněte si, zda je aktivní, kde stojí v pořadí služeb a zda ji Mac používá pro výchozí trasu. Pořadí služeb je důležité, protože macOS vybírá nejvyšší aktivní službu, která se dostane k cíli, ne tu, jejíž název poznáte.
Appleův průvodce osobním hotspotem popisuje mechanismus: dokud je osobní hotspot v telefonu zapnutý, připojení přes USB může přimět Mac používat mobilní připojení telefonu, i když jste chtěli jen nabíjet. To není chyba VPN klienta; směrovací tabulka následuje službu, která se zvedla před Wi-Fi.
Pokud služba existuje, ale s připojeným telefonem zůstává neaktivní, nejspíš vidíte spojení jen pro nabíjení nebo spojení zařízení, ne hotspot. To rozlišení si ponechte, protože následující dva kroky ho testují, místo aby hádaly z ikony.
Krok 2: Zkontrolujte, kterou trasu používá koncový bod VPN
Přečtěte trasu k přeložené adrese serveru VPN, ne k webové stránce. route -n get je jen pro čtení a vypíše rozhraní a bránu, které by jádro použilo, a oba řádky jsou důležité.
scutil --dns | head -20
route -n get 203.0.113.10Adresa výše je zástupný údaj pro dokumentaci. Nahraďte ji koncovým bodem, který ukazuje váš klient, a použijte route -n get -inet6 pro koncový bod IPv6. Porovnejte výstup s telefonem odpojeným a připojeným a mezi oběma čteními trasy nepřidávejte ani neodebírejte. Pokud se rozhraní změní z en0 na rozhraní iPhone USB, vyhrála vyhledávání trasa přes hotspot a vnější spojení VPN teď jede přes mobilní síť.
Změna trasy nevysvětlí každé selhání. Klient se stále může dostat na server a selhat později na vnitřním provozu tunelu, protože nová cesta má jiné MTU nebo operátor blokuje protokol. Přečtěte si vlastní chybu klienta, než cokoli změníte: vnější časový limit navázání spojení ukazuje na dostupnost, zatímco zavedený tunel, který přestane propouštět provoz, ukazuje na MTU, DNS nebo politiku.
Krok 3: Oddělte hotspot od spoje pro komunikaci se zařízením
Xcode 15 a novější mluví se zařízením připojeným přes USB přes síťový kanál, který zahrnuje link-local IPv6, takže vývojový Mac může ukázat další rozhraní, které s přístupem k internetu nemá nic společného. Technická poznámka Apple TN3158 toto chování dokumentuje a varuje, že VPN nebo bezpečnostní filtrování do něj může zasahovat. To je opak problému s hotspotem: VPN se nerozbije proto, že telefon nabízí internet; spojení se zařízením se rozbije proto, že ho VPN zachytí.
Dvě pozorování oddělují případy bez zachytávání paketů. Za prvé zkontrolujte, zda má rozhraní směrovatelnou adresu a výchozí trasu, nebo jen link-local adresu fe80::; jen link-local znamená, že cesta k internetu není. Za druhé vypněte VPN a podívejte se, zda se Xcode k zařízení znovu dostane. Pokud ano, trasy VPN nebo filtr obsahu zachytávají link-local provoz a oprava patří do konfigurace rozděleného tunelu nebo filtru, ne do panelu Síť.
ifconfig | grep -A4 -E '^en[0-9]+:'
netstat -rn -f inet6 | headNesuďte jen podle názvu rozhraní. macOS tato rozhraní vytváří a ničí, jak se zařízení připojují, a číslo en se přiděluje za běhu, takže stejný Mac může po restartu nebo výměně kabelu ukázat jiné číslo.
Krok 4: Reprodukujte selhání s jednou proměnnou po druhé
Když víte, která služba je ve hře, reprodukujte problém v pevném pořadí. Začněte s odpojeným telefonem a připojenou VPN. Připojte telefon s vypnutým osobním hotspotem, počkejte, až se seznam Sítě ustálí, a znovu spusťte dotaz na trasu. Odpojte, zapněte osobní hotspot, připojte znovu a opakujte. Zapište rozhraní, bránu a chybu klienta pro každý ze tří stavů a máte srovnání místo vzpomínky.
Pokud VPN selhává jen ve stavu hotspotu, držte telefon mimo tu cestu: vypněte osobní hotspot během nabíjení nebo přesuňte službu iPhone USB pod Wi-Fi v pořadí služeb. Pokud selhává v každém připojeném stavu, i s vypnutým hotspotem, podívejte se, jak klient zvládá přechod sítě. Někteří klienti při změně primární služby tunel strhnou a potřebují nové připojení; to je chování klienta, ne závada telefonu.
Měňte jednu věc na pokus. Smazání služby, reset konfigurace VPN a přeinstalace klienta ve stejné minutě vás nechají s funkčním Mac a bez tušení, která akce to spravila.
Krok 5: Rozhodněte, co si nechat a co ověřit
Spojení zařízení nechte být. Odebrání rozhraní, které Xcode používá, neopraví trasu VPN a rozbije nasazování do zařízení až do dalšího připojení. Pokud je služba hotspotu opravdu nežádoucí, nejprve vypněte osobní hotspot v telefonu; to je dokumentovaná kontrola a přežije restart.
Pokud službu přece jen odeberete, odeberte tu, kterou jste identifikovali, a pak ověřte dvě věci: trasa ke koncovému bodu VPN je zpět na očekávaném rozhraní a tunel propouští provoz do interní adresy, ne jen do internetu. Poznamenejte si pořadí služeb a verzi klienta, protože aktualizace macOS může změnit, jak se telefon jeví.
Pak klasifikujte selhání, které jste skutečně viděli. Časový limit navázání spojení, zaseknutí MTU po zvednutí tunelu a odpovědi DNS přicházející od operátora jsou tři různé problémy se třemi různými opravami. Služba USB je spouštěčem ve všech třech; příčinou je jen zřídka.