![如何通过netns exec命名空间转发数据](https://linux22.com/image/229848/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87netns%20exec%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4%E8%BD%AC%E5%8F%91%E6%95%B0%E6%8D%AE.png)
我正在使用 zmq 从另一台电脑接收数据。我想通过命名空间将收到的数据格式化到互联网上。我创建了这个 python 脚本:
import subprocess
import zmq
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect("tcp://10.1.24.50:4000")
socket.subscribe("")
while True:
print("message rcv")
data = socket.recv_string()
command = ['sudo', 'ip', 'netns', 'exec', 'ue1', 'ping', '-i', '1', '-c', '1', '-s', str(len(data)), '8.8.8.8']
print(data)
subprocess.run(command, input=data, text=True)
当我在终端中执行脚本时,我得到这个输出。
message rcv
Lat 41.283637867194834, Lon=1.9846894680137672
PING 8.8.8.8 (8.8.8.8) 46(74) bytes of data.
54 bytes from 8.8.8.8: icmp_seq=1 ttl=114 time=184 ms
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 184.334/184.334/184.334/0.000 ms
但是,我没有看到传输的数据(使用wireshark)。
我做错了什么?