Otwierasz listę VPN, wybierasz drugi zapisany wpis i oczekujesz czystej zmiany: nowego adresu wyjściowego, a wszystko inne bez zmian. To założenie trzeba porzucić jako pierwsze. Na macOS zapisany VPN to pełna usługa sieciowa, a nie ustawienie wstępne, więc przełączenie usług może jednocześnie zmienić routing, DNS i uwierzytelnianie. Pasek menu pokazuje, która usługa jest aktywna; nie mówi, czy tunel pod nią odpowiada temu, co zamierzałeś.

Zapisana lista nie jest wyborem profilu

Każdy wpis w Ustawieniach systemowych > Sieć to osobna usługa, z własnym adresem serwera, kontem, metodą uwierzytelniania, serwerami DNS i opcjami takimi jak Wysyłaj cały ruch przez połączenie VPN. Starsze wersje mają tę samą listę w Preferencjach systemowych. Dwa wpisy mogą wskazywać tę samą nazwę hosta i mimo to zachowywać się inaczej, ponieważ protokół lub rozszerzenie klienta decyduje, jak budowany jest tunel.

Klienci innych firm prowadzą osobne listy. Tunnelblick czyta konfiguracje z własnego folderu, WireGuard ma własną listę tuneli, a OpenVPN Connect przechowuje profile w aplikacji. Niektóre rejestrują konfigurację w systemie; inne trzymają wszystko w aplikacji i nigdy nie pojawiają się na wbudowanej liście. Dlatego „przełącz na zapisaną” oznacza różne działania w zależności od tego, która aplikacja posiada profil.

scutil --nc list wypisuje usługi VPN zarejestrowane w konfiguracji systemu, z nazwami w cudzysłowach. Używaj dokładnie tych nazw, gdy skryptujesz przełączenie, i nie zakładaj, że lista obejmuje każdy tunel innej firmy.

Co naprawdę zmienia przełączenie

Cztery rzeczy poruszają się razem, gdy zmienia się aktywna usługa. Trasa domyślna podąża za nowym tunelem, jeśli ta usługa wysyła cały ruch; lista resolverów zmienia się na serwery DNS wskazane przez usługę; nowe połączenia biorą nowy adres tunelu jako źródło; a używane dane logowania należą do nowej usługi. Konfiguracja natywna i profil aplikacji nie są wymienne, nawet gdy oba kończą się na tej samej bramie.

What you assumeWhat the system does
Same server name means same tunnelProtocol, certificate and account are per service
All traffic follows the active VPNOnly when Send all traffic over VPN is on
DNS switches with the VPNOnly if that service defines DNS servers
Disconnect ends the connectionOn Demand or a management profile can reconnect
Open sessions survive the switchTCP sessions tied to the old address stall

Najbardziej zaskakuje część dotycząca DNS. macOS utrzymuje kolejność resolverów, a scutil --dns pokazuje, które resolvery są używane i na którym interfejsie. Usługa VPN bez skonfigurowanych serwerów DNS może pozostawić odpowiadanie resolverowi Wi-Fi, więc dostajesz nowy publiczny adres ze starym zachowaniem DNS i uznajesz, że przełączenie zadziałało połowicznie.

Dlaczego stara konfiguracja wraca

Jeśli rozłączysz się, a ta sama usługa po chwili połączy się ponownie, najpierw sprawdź On Demand. Reguła łączenia na żądanie może przywrócić usługę, gdy aplikacja rozwiąże pasującą domenę, a profil zarządzania może wymusić tę samą regułę. Usunięcie wpisu rzadko to naprawia: konfiguracja zainstalowana przez profil zwykle wraca przy następnej aktualizacji profilu, a ręczna może zostawić hasło w Keychain, gdy usługa już zniknęła.

Uruchomienie drugiej usługi nie zawsze zatrzymuje pierwszej. W zależności od klienta i protokołu możesz zostać z dwoma tunelami i dwoma zestawami tras, a o tym, który niesie ruch, decydują kolejność usług i szczegółowość trasy, nie ikona kliknięta na końcu. Sprawdź interfejsy, zanim uznasz, że nastąpiło przełączenie.

Sprawdź tunel, nie znacznik

Przejdź przez widok samego systemu, zanim dotkniesz ustawień.scutil --nc status "Name" zgłasza, co system uważa;ifconfig pokazuje, czy interfejs utun ma adres;netstat -rn -f inet pokazuje, gdzie wskazuje trasa domyślna;scutil --dns pokazuje resolver faktycznie używany. Potem otwórz nowe połączenie i potwierdź adres wyjściowy, bo strona, która była już zalogowana, może nadal używać gniazda przypisanego do starego tunelu.

Jeśli DNS nadal odpowiada z sieci lokalnej, porównaj skonfigurowane serwery usługi z listą resolverów. Jeśli trasa domyślna nadal wskazuje interfejs fizyczny, usługa działa w trybie dzielonego tunelu lub nie jest w pełni połączona. Oba przypadki to wynik konfiguracji, a nie dowód zepsutego klienta.

Kolejność przełączania bez niespodzianek

  1. Zanotuj bieżącą usługę i czy zarządza nią profil.
  2. Najpierw ją rozłącz, gdy dwa tunele nie mogą istnieć razem.
  3. Połącz cel i czekaj na Połączono, nie na Łączenie.
  4. Sprawdź trasę domyślną, listę resolverów i nowy adres wyjściowy.
  5. Uruchom ponownie aplikacje utrzymujące długie sesje.

Zachowaj stary wpis, aż nowy przejdzie te sprawdzenia, i nadaj każdemu wpisowi inną nazwę; identyczne etykiety utrudniają przypisanie kolejnej awarii. Pomoc Mac firmy Apple opisuje stronę natywną na Konfigurowanie połączenia VPN na Macu, która jest punktem odniesienia przed edycją konfiguracji zarządzanej.

Jeśli wybór wraca, potraktuj to najpierw jako politykę lub On Demand. Potwierdź, do kogo należy konfiguracja i czy jest ustawiona na automatyczne łączenie, a potem zdecyduj, czy przełączasz usługę, czy walczysz z profilem.

Powiązane artykuły