我为 VPN 设置了一个网络命名空间,这样并非所有流量都会通过 VPN。
当我输入以下内容时,它工作正常:
sudo ip netns exec vpn firefox
现在,所有 Firefox 流量都按预期通过 VPN。问题是每个以这种方式启动的程序都具有 root 权限。
我尝试这样做:
sudo ip netns exec vpn sudo -u user firefox
虽然应用程序启动正常,但它“离开”了命名空间并且不再使用 vpn。
有人可以帮忙吗?
答案1
进程不能“离开”命名空间——setns(2)函数需要root权限。
但很可能您已经有一个在命名空间之外运行的现有 Firefox 实例。每当您第二次运行 Firefox 时,它只会要求现有实例打开一个新窗口。
您可以通过使用单独的 Firefox 配置文件来避免这种情况,例如firefox -profile /tmp/testfox
。