objectif
Déboguer un espace de noms réseau/montages d’un processus en entrant “à l’intérieur” sans docker/ctr.
code minimal
# ouvrir un shell dans tous les namespaces du PID
sudo nsenter --target "$PID" --mount --uts --ipc --net --pid -- bash -l
utilisation
# trouver le PID du process (ex: nginx)
PID="$(pgrep -xo nginx)"
sudo nsenter --target "$PID" --mount --net -- bash -l
# vérifier interfaces réseau et routes du namespace
ip addr
ip route
# voir les montages isolés
mount | head
variante(s) utile(s)
# exécuter une commande unique (ici: traceroute interne)
sudo nsenter --target "$PID" --net -- traceroute -n data.pm
# changer seulement le namespace réseau
sudo nsenter -t "$PID" -n bash -c 'ip a; ip r'
notes
- nécessite les privilèges root sur l’hôte.
- pratique pour des containers démarrés par d’autres runtimes (systemd-nspawn, containerd, cri-o).
- complémentaire à
ip netns(namespaces nommés).