首先,为了避免 X/Y 问题,我要尝试实现以下目标:我想使用 Wireshark 从计算机 A 监控计算机 B 的原始网络流量(更具体地说npcap
)。
如果“远程”机器实际上是本地虚拟机,那么这是可能的,因为 VMware 将为虚拟机创建虚拟网络适配器,并且可以像真实接口一样轻松地从 Wireshark 中嗅探到这些适配器。
我希望可以创建一个类似的自定义“虚拟网关”,或者可以重用 VMware 现有的网关之一,以便第二台计算机可以连接到它,并且我可以使用 Wireshark 分析网络流量。所以我的问题是,是否有一个软件可以创建一个其他计算机可以连接的虚拟网络网关,以允许使用 npcap(Wireshark)进行远程数据包嗅探,或者我可以使用 VMware 现有的适配器之一来实现这一点。
两台计算机都运行 Windows。
答案1
您没有提到操作系统,只是提到了“计算机”,但您提到了 libpcap 而不是 Npcap 或 WinPcap,所以我假设它可以运行或能够运行 Linux 或 BSD。
Linux本身无需任何附加软件即可充当网关,并且确实用于在许多网络中构建真正的路由器/网关。如果您已经在不同的子网上有两个网络接口,则只需使用以下命令在内核中启用 IP 转发sysctl
:
sysctl net.{ipv4,ipv6}.conf.all.forwarding=1
现在,一个接口上的主机可以使用您作为网关来到达其他接口,或者您的路由表中的任何其他接口。
(如果您需要 NAT,可以通过 nftables 或 iptables 完成 - 它不是 IP 转发的一部分。确保 *tables 没有丢弃所有转发流量的规则。)
虽然你不需要 L3网关这里 – 将主机用作 L2 桥接器(两个网络接口都属于同一子网)可能会更简单,并且以“promisc”模式监视通过桥接器的数据包,同时不需要更改另一台主机的配置:
ip link add br0 type bridge; ip link set br0 up
ip link set eth0 master br0; ip link set eth1 master br0
大多数 BSD 类似地在内核中完全支持 IP 转发和 L2 桥接,尽管命令当然非常不同。
视窗曾经拥有支持 IP 路由;在“消费者”版本中,它被发现为不可配置的“Internet 连接共享”功能。我不知道它是否仍然存在于 Windows 10/11 中。可能还有其他线程解释如何启用它。
视窗做具有对以太网桥接的内置支持——您仍然可以通过ncpa.cpl
选择两个或多个以太网(非 Wi-Fi)接口来创建桥接。