Firefox spuštěný v namespace předal URL existující instanci
Příkaz v prohlížeči může předat URL procesu, který už běží v jiném namespace. Než sáhnete na směrování, ověřte, která instance požadavek odesílá.
Příkaz se spouští uvnitř namespace VPN, objeví se okno Firefoxu a stránka přesto odchází přes běžné připojení. Nastavení směrování pravděpodobně není první věc, kterou je třeba přestavět. Ověřte, zda příkaz vytvořil instanci prohlížeče, kterou jste očekávali, nebo předal URL té, která už běžela někde jinde. Tento rozdíl vysvětluje výsledek v jednom kroku a ušetří hodinu s nftables.
Známkou je, že se okno objeví okamžitě, bez studeného startu.
Nové okno není nová instance
Desktopové aplikace běžně znovu používají existující proces. Spouštěč v jedné síťové namespace nepřesune již běžícího příjemce do této namespace, protože příjemce nikdy nebyl součástí spuštění. Chování Firefoxu při vzdáleném ovládání souvisí s profily: spuštění proti profilu, který se už používá, předá argumenty jeho vlastníkovi. Nové okno je skutečné; nová síťová cesta ne.
Soukromé prohlížení a volba nového okna nejsou nástroje izolace sítě.
Stejně tak přepínač příkazového řádku, který ovlivňuje jen režim okna. Je-li profil obsazen, požadavek jde procesu, který ho vlastní, a ten si ponechá namespace, ve kterém začal.
Vynuťte samostatnou instanci v samostatném profilu
Použijte vyhrazený profil vytvořený podporovaným pracovním postupem pro profily prohlížeče a spusťte ho výslovně s tímto profilem. V sestaveních Firefoxu, která to podporují, --new-instance žádá novou instanci místo okna v existující. Podívejte se na vlastní nápovědu nainstalovaného sestavení, protože dostupné přepínače se liší podle verze.
Nesnažte se otevřít stejný živý profil souběžně a neberte varování „profil se používá“ jako pokyn mazat zámkové soubory.
Spouštějte prohlížeč také pod běžným uživatelem bez root. Nastavení sítě často vyžaduje administrativní práva a je lákavé dát prohlížeči tatáž, protože je součástí stejného experimentu. Grafický prohlížeč je nepotřebuje a spuštění jako root vytváří zvláštní třídu problémů s profilem a oprávněními. Držte privilegium a síťovou cestu jako dvě nezávislá rozhodnutí.
Zkontrolujte, který proces nese provoz
V Linuxu je síťová namespace procesu viditelná přes odkaz na namespace. Přečtěte ho pro proces, o kterém si myslíte, že požadavek odesílá, a pak pro proces, který ho skutečně odesílá.
readlink /proc/ACTUAL_PID/ns/net
Prohlížeče spouštějí několik procesů, takže záleží na identitě: obsahový proces, který navazuje spojení, nemusí být ten, který jste zkontrolovali první. Porovnejte odkaz s namespace, kterou jste zamýšleli, a potvrďte novým neškodným požadavkem, který můžete připsat jedné instanci. Přiřazení je celý test. Pokud nemůžete říct, který proces spojení navázal, namespace jste netestovali.
Když je namespace skutečně špatná
Někdy spouštěč opravdu selže a nová instance začne ve špatné namespace. Zkontrolujte službu nebo obal, který ji vytvořil, protože unit nebo položka plochy může ztratit namespace, když se znovu spustí přes sběrnici sezení. Poté znovu otestujte z shellu uvnitř správné namespace, než obviníte prohlížeč. Jedna proměnná najednou je jediný způsob, jak to zůstane diagnostikovatelné.
Sdílení displeje nesdílí ani resolver.
Pokud je proces ve správné namespace a překlad jmen stále selhává,prozkoumejte jeho prostředí resolveru jako samostatný problém. Další změna směrování nemůže přesunout požadavek, který byl předán špatné instanci ještě předtím, než vůbec začal.