如何将界面移出networking命名空间?

如果我将界面临时移动到netns中

ip link set eth10 netns myns 

那么它不再在根中可见,只能在命名空间myns中看到。

我怎么把它移回来,就像(这些显然不存在):

 ip link unset eth10 

也许

 ip link set eth10 netns root 

或类似?

我find了答案。 当然,你不能从网内做到这一点。 但是,如果您从根networking名称空间内执行ip netns exec .... ,则一切正常。

 ip netns exec <PID> ip link set eth10 netns 1 

那就行了! 在我们进入netns之前,我们把它分配给的PID(在这种情况下是1)在执行命令(包装器)的上下文中。 完成!

你使用ip netns deletefunction。 从手册页:

ip [-all] netns删除[NAME] – 删除networking名称空间的名称

如果/ var / run / netns中存在NAME,则它将被卸载,并且挂载点将被删除。 如果这是networking名称空间的最后一个用户,networking名称空间将被释放, 所有物理设备将被移动到默认networking名称空间,否则networking名称空间会一直存在,直到它没有更多的用户。 如果挂载点正在另一个挂载名称空间中使用,则ip netns delete可能会失败。

它不能用于所有目的,但如果你可以使用这个选项,它似乎是最干净的。