dei*_*tch 11 namespaces iproute2 network-namespace
如果我将一个接口临时移动到一个 netns 中
ip link set eth10 netns myns
Run Code Online (Sandbox Code Playgroud)
然后它不再在根目录中可见,仅在名称空间 myns 中可见。
我如何将其移回,例如(这些显然不存在):
ip link unset eth10
Run Code Online (Sandbox Code Playgroud)
也许
ip link set eth10 netns root
Run Code Online (Sandbox Code Playgroud)
或类似?
dei*_*tch 14
我找到了答案。当然,你不能从 netns 内部做到这一点。但是,如果您ip netns exec ....
从根网络命名空间内执行,则一切正常。
ip netns exec <PID> ip link set eth10 netns 1
Run Code Online (Sandbox Code Playgroud)
然后它起作用了!在我们输入 netns 之前,它需要将我们分配给它的 PID(在本例中为 1)置于执行命令(包装器)的上下文中。完毕!
小智 6
您可以使用该ip netns delete
功能。从手册页:
ip [-all] netns delete [ NAME ] - 删除网络命名空间的名称
如果 NAME 出现在 /var/run/netns 中,它会被卸载并移除挂载点。如果这是网络命名空间的最后一个用户,则网络命名空间将被释放,所有物理设备都将移动到默认设备,否则网络命名空间将一直存在,直到没有更多用户为止。如果挂载点正在另一个挂载命名空间中使用,ip netns delete 可能会失败。
它不能用于所有目的,但它绝对是最简单的途径。