在ip netns
创建参考的(命名)网络命名空间/var/run/ns
,它可以很容易地跟踪.此外,同样可以通过确定/proc/[pid]/ns/net
.但是,某些自定义程序可能会创建一个net ns并将相应的inode保存在其他非常规位置.这可能使得难以确定是否存在我们可以列出的净ns.
其次,unshare
当进程退出时会破坏net ns,这很好.但是,ip netns exec
即使命令/进程退出,也会保留ns.所以我相信,任何自定义程序都可以这样做.
因此,问题是:自定义程序是否可能创建一个未命名的net ns,并且它与任何进程无关?
此外,如果我们不知道inode的路径,是否可以从用户空间列出这样的(隐藏的)网络?(内核当然有一个net ns的链表).代码片段会很有帮助.