如何在另一个进程的网络命名空间中运行命令?

wul*_*jey 4 linux namespaces network-namespace

有一个进程在其自己的网络命名空间中运行。我想远程登录到机器并在此进程网络命名空间中运行命令,类似这样(17543 是具有自己的网络命名空间的进程的 pid):

# 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
Run Code Online (Sandbox Code Playgroud)

它抱怨网络名称空间不存在,但看起来该文件存在。如何在另一个进程网络命名空间中运行命令?

小智 5

$ sudo nsenter -t 16882 -n ip link show

其中ip link show是在 pid 16882 的目标程序的网络命名空间中运行的命令示例。

-t标志用于指定目标程序的pid

-n 标志代表目标程序的网络命名空间