linux - 在 QEMU 中,是否可以拦截 Linux guest 操作系统发送/接收的数据包?

标签 linux sockets virtualization system-calls qemu

我们正在做一个小项目,涉及从管理程序层(即 QEMU)监控 guest 操作系统(例如 Linux)。我们要监控的其中一件事是进出客户操作系统的网络流量。是否可以在不修改 guest 操作系统的情况下这样做?

一种方法是拦截创建套接字时进行的相关系统调用,并在执行指令时从相关寄存器中获取值。但是我们不太确定这是否容易或者它是否是正确的方法。

最佳答案

除了@usr57368 的回答—— 对于使用“-netdev”创建的设备,请使用“-object filter-dump,...”代替 -net dump:

-object filter-dump,id=id,netdev=dev,file=filename][,maxlen=len]

Dump the network traffic on netdev dev to the file specified by filename. At most len bytes (64k by default) per packet are stored. The file format is libpcap, so it can be analyzed with tools such as tcpdump or Wireshark.

关于linux - 在 QEMU 中,是否可以拦截 Linux guest 操作系统发送/接收的数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5722737/

相关文章:

linux - 汇编语言接受用户输入但显示输出

android - 使用 OkHttp 检查套接字是否连接或断开连接的更好方法?

linux - qcow2 header 有多大?

linux - 访问引用两次的变量 UNIX

linux - 如何使用 GNU "sort"对一个键进行随机排序,而另一个键保持其原始排序顺序

Linux查找具有相似名称的文件并移动到新目录

windows - 为什么 ping 在没有管理员权限的情况下也能正常工作?

javascript - 在谷歌浏览器扩展中打开 Socket.IO 连接

在 Windows 7 上测试软件。安装与虚拟化

64-bit - 设置 IA32 EFER.LME 时出现三重故障