"ip-netns"和"unshare"如何保存其持久网络命名空间?他们能互相利



要使用unshare创建持久名称空间,请使用语法:

touch /root/mynetns1
unshare --net==/root/mynetns1

要使用ip创建持久名称空间,请使用以下语法:

ip netns add mynetns2

ip命令不列出或可以访问由unshare创建的命名空间,反之亦然。

ip命令在自定义网络名称空间方面要好得多,但unshare命令允许您启动具有多个不同名称空间的程序。理想情况下,我会用ip创建一个名称空间,但用unshare启动其他名称空间的命令。要做到这一点,unshare需要能够引用ip创建的名称空间,这是如何做到的?

现在我使用ip netns exec mynetns1 unshare [other namespaces] ...作为破解工具,但我更喜欢使用unshare更干净地启动。

我还希望我的程序能够与他们单独创建的网络命名空间进行交互,因此有关如何列出和访问他们的网络命名空间的信息也会很有帮助。

unshare --net=/somefileip netns add somename都创建了一个新的网络名称空间,并将其绑定到某个位置。唯一的区别是unshare绑定将它装载到您指定的任何文件,而ip绑定将它安装到/var/run/netns/中的一个新文件。换句话说,如果您使用/var/run/netns/mynetns1来代替/root/mynetns1,那么您以后可以使用ip与它进行交互。

最新更新