There is a process running in its own network namespace. I would like to telnet to the machine and run a command in this process network namespace, something like that (17543 is the pid of the process with its own network namespace):

# ip netns exec /proc/17543/ns/net ifconfig
Cannot open network namespace "/proc/17543/ns/net": No such file or directory
# ls /proc/17543/ns/net
/proc/17543/ns/net

It complains that the network namespace is not there, but it looks that the file is there. How can I run a command in another process network namespace?

ip netns exec expects the name of the network namespace, not a file path.

You can find the network namespace name of a process using ip netns identify <pid>.

P.S. ifconfig may not be installed on modern Linux systems; use equivalent ip commands instead.

  • If the namespace wasn't setup with ip netns, then ip netns can't be used. Either nsenter is required, or mounting /proc/17543/ns/net at the proper place (on a dummy file in /var/run/netns/ ) to make ip netns believe it created it, can work. I do the later often to link a running lxc container with an ip netns name for convenience. – A.B Dec 12 at 16:56

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.