我有时会遇到带有 Tap 接口的机器(例如,当 KVM 运行时)。我如何知道哪个进程附加到 TAP 接口?
按照本指南进行设置macvtap效果很好。
该指南的摘录如下所示:
# ip link add link eth1 name macvtap0 type macvtap
# ip link set macvtap0 address 1a:46:0b:ca:bc:7b up
# ip link show macvtap0
Run Code Online (Sandbox Code Playgroud)
然后该指南继续解释您可以执行以下操作:
#qemu-system-x86_64 -net nic,model=virtio,addr=1a:46:0b:ca:bc:7b -net tap,fd=3 3<>/dev/tap11
Run Code Online (Sandbox Code Playgroud)
如果你的macvtap最终结果是/dev/tap11.
但是你如何检查哪个/dev/tapX接口实际上被分配给了macvtap0上面的接口呢?
我有很多服务随机在我的机器上设置点击设备。我无法猜测我的具体结果是哪一个。
我希望用以下命令启动 qemu 机器:
-netdev tap,ifname="macvtap0",id=network0,script=no,downscript=no \
-device i82559b,netdev=network0,mac=${MAC}
Run Code Online (Sandbox Code Playgroud)
可以,macvtap0我刚刚创建的设备在哪里。
然而,这给了我:
qemu-system-x86_64: could not configure /dev/net/tun (macvtap0): Invalid argument
本文概述:如何找到tap接口与其文件描述符之间的联系?- 他们描述了一种通过访问 PID 并检查关联文件描述符来实现此目的的方法,对我来说问题是 qemu 没有设置设备,而我是。并且没有与之关联的 PID。
/dev那么如何获取与新创建的接口关联的文件句柄macvtap? …