How to run a command in another process's network namespace?

wulujey asked:

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

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?

My answer:

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.

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.