Otevřete seznam VPN, vyberete jinou uloženou položku a čekáte čistou výměnu: novou výstupní adresu a vše ostatní beze změny. To je předpoklad, kterého je třeba se nejdřív vzdát. Na macOS je uložená VPN plná síťová služba, ne předvolba, takže přepnutí služeb může současně změnit směrování, DNS i autentizaci. Řádek nabídky ukazuje, která služba je aktivní; neříká, zda tunel pod ní odpovídá vašemu záměru.

Uložený seznam není výběr profilů

Každá položka v Systémovém nastavení > Síť je samostatná služba s vlastní adresou serveru, účtem, metodou autentizace, servery DNS a možnostmi, jako je Odesílat veškerý provoz přes připojení VPN. Starší verze drží stejný seznam v Systémových předvolbách. Dvě položky mohou ukazovat na stejný název hostitele a přesto se chovat odlišně, protože protokol nebo rozšíření klienta rozhoduje o tom, jak se tunel staví.

Klienti třetích stran mají vlastní seznamy. Tunnelblick čte konfigurace ze své složky, WireGuard si drží vlastní seznam tunelů a OpenVPN Connect ukládá profily uvnitř aplikace. Někteří zaregistrují konfiguraci v systému; jiní drží všechno uvnitř aplikace a v zabudovaném seznamu se nikdy neobjeví. „Přepni na uloženou“ proto znamená různé kroky podle toho, která aplikace profil vlastní.

scutil --nc list vypíše služby VPN zaregistrované v systémové konfiguraci, se jmény v uvozovkách. Při skriptování přepnutí používejte přesně tato jména a nepředpokládejte, že seznam pokrývá každý tunel od třetí strany.

Co přepnutí skutečně změní

Při změně aktivní služby se hýbou čtyři věci současně. Výchozí trasa jde za novým tunelem, pokud tato služba posílá veškerý provoz; seznam resolverů se změní na servery DNS, které služba určuje; nová připojení berou novou adresu tunelu jako svůj zdroj; a použité přihlašovací údaje patří nové službě. Nativní konfigurace a profil aplikace nejsou zaměnitelné, ani když oba končí na stejné bráně.

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

Na části s DNS se lidé často zaseknou. macOS udržuje pořadí resolverů a scutil --dns ukazuje, které resolvery se používají a na kterém rozhraní. Služba VPN bez nastavených serverů DNS může nechat odpovídat resolver z Wi-Fi, takže dostanete novou veřejnou adresu se starým chováním DNS a usoudíte, že přepnutí fungovalo napůl.

Proč se stará konfigurace vrací

Když se odpojíte a stejná služba se za chvíli připojí znovu, podívejte se nejdřív na On Demand. Pravidlo připojení na vyžádání může službu vrátit, když aplikace přeloží odpovídající doménu, a konfigurační profil může stejné pravidlo vynutit. Smazání položky to málokdy vyřeší: konfigurace nainstalovaná profilem se obvykle vrátí při příští obnově profilu a ruční konfigurace může nechat heslo v Keychainu, i když služba zmizela.

Spuštění druhé služby vždy nezastaví první. Podle klienta a protokolu můžete skončit se dvěma tunely a dvěma sadami tras a o tom, kdo nese provoz, rozhoduje pořadí služeb a specificita tras, ne ikona, na kterou jste klikli naposledy. Než budete předpokládat, že k výměně došlo, zkontrolujte rozhraní.

Ověřte tunel, ne zaškrtnutí

Projděte si vlastní pohled systému, než sáhnete na nastavení.scutil --nc status "Name" hlásí, co si systém myslí;ifconfig ukazuje, zda rozhraní utun má adresu;netstat -rn -f inet ukazuje, kam míří výchozí trasa;scutil --dns ukazuje, který resolver se skutečně používá. Pak otevřete nové připojení a potvrďte výstupní adresu, protože stránka, která už byla přihlášená, může stále používat socket vázaný na starý tunel.

Pokud DNS stále odpovídá z místní sítě, porovnejte nakonfigurované servery služby se seznamem resolverů. Pokud výchozí trasa stále ukazuje na fyzické rozhraní, služba je split-tunnel nebo není plně připojená. Obojí je výsledek konfigurace, ne důkaz rozbitého klienta.

Pořadí přepnutí bez překvapení

  1. Poznamenejte si aktuální službu a zda ji spravuje profil.
  2. Nejprve ji odpojte, když dva tunely nemohou existovat vedle sebe.
  3. Připojte cíl a čekejte Připojeno, ne Připojování.
  4. Zkontrolujte výchozí trasu, seznam resolverů a novou výstupní adresu.
  5. Restartujte aplikace, které drží dlouhodobé relace.

Ponechte starou položku, dokud nová neprojde těmito kontrolami, a každé položce dejte odlišné jméno; stejné štítky ztěžují přiřazení příští poruchy. Nápověda Macu od Applu popisuje nativní stranu na Nastavení připojení VPN na Macu, což je reference, kterou je třeba zkontrolovat před úpravou spravované konfigurace.

Pokud se volba vrací, berte to nejdřív jako zásadu nebo On Demand. Ověřte, kdo konfiguraci vlastní a zda je nastavena na automatické připojení, a pak se rozhodněte, zda přepínáte službu, nebo bojujete s profilem.

Související články