我有一台带有多个虚拟网卡的 CentOS 虚拟机。我正在做一个项目,需要在每个网卡上建立一个回显服务器,监听特定的端口。客户端和服务器,以及流量,都是本地的。当我启动客户端并连接到本地 IP/端口时,我观察到流量中出现了奇怪的行为。以下是我所看到的:1. 客户端成功连接到服务器 IP,并成功发送数据。2. 服务器成功接收数据。
到目前为止一切顺利。该项目的另一部分是从系统文件(具体来说,是从 /proc/net/dev)收集网络统计信息。
我在 /proc/net/dev 上循环运行 cat 命令,并 grep 查找我在客户端应用程序中定位的适配器。我在“接收字节”和“发送字节”列中看不到任何数据。但是,我确实在环回适配器(“lo”)上看到了流量。
所以问题是,为什么我没有在 /proc/net/dev 文件中看到目标适配器上的任何流量,而所述适配器上的服务器确实从客户端接收了数据包?
其次,这是一个路由表问题吗?如果是,我们可以采取一些措施,以便我们可以从 /proc/net/dev 文件中收集该特定适配器的指标吗?
在此先感谢您的帮助!
答案1
根据您的描述,所有流量都是同一系统的本地流量;即使您专门针对绑定到 NIC 的 IP 地址,系统仍会将此流量视为环回;它实际上不会流经 NIC 本身。