Hvorfor din Mac-VPN falder ud, når du sætter en iPhone i USB
En iPhone i USB kan tilføje en hotspot-rute eller et Xcode-enhedslink. Tjek tjenesten, ruten og klientfejlen, før du sletter noget.
Du sætter en iPhone i for at lade den op, og et minut senere holder VPN'en på din Mac op med at føre trafik. Systemindstillinger viser en ny tjeneste kaldet iPhone USB, og det oplagte træk er at slette den. Det træk er ofte forkert. Tjenesten kan være telefonens Personlige Hotspot, eller den kan være et link, som Xcode og enhedsværktøjer bruger til at tale med telefonen, og de to opfører sig så forskelligt, at identifikation skal komme før sletning.
Trin 1: Læs den tjeneste, telefonen faktisk har oprettet
Åbn Systemindstillinger og derefter Netværk, og sammenlign tjenestelisten med telefonen frakoblet og tilsluttet. På den aktuelle macOS vises tjenesten som iPhone USB. Bemærk, om den er aktiv, hvor den står i tjenesterækkefølgen, og om Mac'en bruger den til standardruten. Tjenesterækkefølgen betyder noget, fordi macOS vælger den højeste aktive tjeneste, der kan nå en destination, ikke den, du kender navnet på.
Apples vejledning om Personlig Hotspot beskriver mekanismen: mens Personlig Hotspot er aktiveret på telefonen, kan en USB-forbindelse få Mac'en til at bruge telefonens mobilforbindelse, selv når du kun ville oplade. Det er ikke en fejl i VPN-klienten; rutetabellen følger en tjeneste, der kom op før Wi-Fi.
Hvis tjenesten findes, men forbliver inaktiv med telefonen tilsluttet, ser du højst sandsynligt en forbindelse, der kun er til opladning, eller et enhedslink frem for en hotspot. Behold den forskel, fordi de næste to trin tester den i stedet for at gætte ud fra ikonet.
Trin 2: Tjek, hvilken rute VPN-endepunktet bruger
Læs ruten til VPN-serverens opløste adresse, ikke til et websted. route -n get er kun læsning og udskriver det interface og den gateway, kernen ville bruge, og begge linjer betyder noget.
scutil --dns | head -20
route -n get 203.0.113.10Adressen ovenfor er en pladsholder til dokumentation. Erstat den med det endepunkt, din klient viser, og brug route -n get -inet6 til et IPv6-endepunkt. Sammenlign outputtet med telefonen frakoblet og tilsluttet, og tilføj eller fjern ikke ruter mellem de to læsninger. Hvis interfacet skifter fra en0 til iPhone USB-interfacet, har hotspot-ruten vundet opslaget, og VPN'ens ydre forbindelse kører nu over mobilnet.
En ruteændring forklarer ikke alle fejl. Klienten kan stadig nå serveren og fejle senere på tunnellens indre trafik, fordi den nye vej har en anden MTU, eller fordi operatøren blokerer protokollen. Læs klientens egen fejl, før du ændrer noget: en ydre handshake-timeout peger på tilgængelighed, mens en etableret tunnel, der holder op med at føre trafik, peger på MTU, DNS eller politik.
Trin 3: Adskil en hotspot fra et enhedskommunikationslink
Xcode 15 og nyere taler med en USB-tilsluttet enhed over en netværksbaseret kanal, der omfatter link-local IPv6, så en udvikler-Mac kan vise et ekstra interface, der intet har med internetadgang at gøre. Apples tekniske notat TN3158 dokumenterer den adfærd og advarer om, at VPN eller sikkerhedsfiltrering kan forstyrre den. Det er det omvendte af hotspot-problemet: VPN'en går ikke i stykker, fordi telefonen tilbyder internet; enhedsforbindelsen går i stykker, fordi VPN'en fanger den.
To observationer adskiller tilfældene uden en pakkefangst. For det første, tjek om interfacet har en rutbar adresse og en standardrute, eller kun en link-local fe80:: adresse; kun link-local betyder, at der ikke er nogen internetvej. For det andet, afslut VPN'en og se, om Xcode kan nå enheden igen. Hvis den kan, fanger VPN'ens ruter eller indholdsfilter link-local-trafikken, og rettelsen hører i split-tunnel- eller filterkonfigurationen, ikke i Netværkspanelet.
ifconfig | grep -A4 -E '^en[0-9]+:'
netstat -rn -f inet6 | headDøm ikke ud fra interfacenavnet alene. macOS opretter og nedlægger disse interfaces, efterhånden som enheder tilsluttes, og en-nummeret tildeles ved kørsel, så den samme Mac kan vise et andet nummer efter en genstart eller et kabelbytte.
Trin 4: Genskab fejlen med én variabel ad gangen
Når du ved, hvilken tjeneste der er involveret, genskab problemet i en fast rækkefølge. Start med telefonen frakoblet og VPN'en tilsluttet. Tilslut telefonen med Personlig Hotspot slået fra, vent på, at Netværkslisten falder til ro, og kør ruteopslaget igen. Frakobl, aktiver Personlig Hotspot, tilslut igen, og gentag. Skriv interface, gateway og klientfejl ned for hver af de tre tilstande, og du har en sammenligning i stedet for en erindring.
Hvis VPN'en kun fejler i hotspot-tilstanden, hold telefonen væk fra den vej: slå Personlig Hotspot fra under opladning, eller flyt iPhone USB-tjenesten ned under Wi-Fi i tjenesterækkefølgen. Hvis den fejler i enhver tilsluttet tilstand, også med hotspot slået fra, se på, hvordan klienten håndterer en netværksovergang. Nogle klienter river tunnelen ned, når den primære tjeneste ændres, og kræver en genopkobling; det er klientadfærd, ikke en telefonfejl.
Ændr én ting ad gangen. Sletning af tjenesten, nulstilling af VPN-konfigurationen og geninstallation af klienten i samme minut efterlader dig med en Mac, der virker, og ingen idé om, hvilken handling der løste det.
Trin 5: Beslut, hvad du vil beholde, og hvad du vil verificere
Lad enhedslinket være. At fjerne et interface, som Xcode bruger, løser ikke en VPN-rute, og det ødelægger enhedsdistribution indtil næste tilslutning. Hvis hotspot-tjenesten virkelig er uønsket, slå først Personlig Hotspot fra på telefonen; det er den dokumenterede kontrol, og den overlever en genstart.
Hvis du alligevel fjerner en tjeneste, fjern den, du identificerede, og verificer derefter to ting: ruten til VPN-endepunktet er tilbage på det forventede interface, og tunnelen fører trafik til en intern adresse, ikke kun til internettet. Noter tjenesterækkefølgen og klientversionen, fordi en macOS-opdatering kan ændre, hvordan telefonen fremstår.
Klassificér derefter den fejl, du faktisk så. En handshake-timeout, et MTU-stop efter tunnelen er oppe, og DNS-svar, der kommer fra operatøren, er tre forskellige problemer med tre forskellige løsninger. USB-tjenesten er udløseren i alle tre; den er sjældent årsagen.