Isolated sandbox with unshare

Spawn shell in fresh net+pid ns with private /proc; ip netns for named netns testing

unshare --net --pid --fork --mount-proc bash # then: ip netns add test; ip netns exec test ip a

tool
namespaces4 commands
tags
namespacesnetworksecuritykernel

More namespaces commands

  • lsns -p <pid>; readlink /proc/<pid>/ns/net /proc/1/ns/net # equal inode = same netns

    List all ns a PID belongs to; compare ns inode links to prove shared namespace

  • PID=$(docker inspect -f '{{.State.Pid}}' <name>); nsenter -t $PID -n tcpdump -ni any -c 50

    Sniff a container's traffic using host's tcpdump via its netns; no tools needed in image

  • nsenter -t $(pgrep -n <proc>) -n -m -p ss -tlnp

    Enter newest proc's net+mount+pid ns and list listening sockets it actually sees

all 4 namespaces commands