如何找出接口入站流量正在使用?

如何找出接口入站流量正在使用?

对于传出的数据包,route我可以知道正在使用哪个接口,但是对于传入的数据包,如何找出正在使用哪个接口?

答案1

您正在寻找ip route get命令。这相当于 BSD route get

ip route get 50.232.186.20例如将显示使用哪条路由到达该 IP。此命令不会自行解析主机名。

答案2

一般来说,Linux 希望数据包通过相同的接口进入和退出。

如果不是这种情况,内核会将数据包报告为火星数据包,并且如果您设置了以下 sysctl 值,则如果从无法路由回的接口(标准rp中的rp_filter反向路径)看到数据包,则会丢弃数据包。

net.ipv4.conf.all.rp_filter = 1

因此,通常情况下,除非您有特别复杂的路由表或设置,否则您可以检查输出ip r并做出有根据的猜测。最有可能的是,您会想要检查您的默认路由是什么,并且您的问题的答案很有可能是“您的默认路由指向的任何接口”。

如果有必要,管理员可以更改以上所有内容,但一般来说,据我所知,大多数系统都是这样工作的。

答案3

数据包将来自其 IP 地址接口(目标地址),否则它将无法到达接口并且数据包将被忽略(就像在集线器中一样)如果数据包是广播,那么它将来自连接到该广播域的所有接口(只有一个 IP 应该位于同一个 IP 子网中的原因之一)

MAC 级别同样如此

相关内容