一个如何捕获虚拟接口上的流量?

固体小吃

我想捕获Linux虚拟接口上的流量,以进行调试。我一直在尝试vethtun而且dummy接口类型; 在这三个方面,我都很难tcpdump显示任何东西。

这是我设置虚拟界面的方法:

ip link add dummy10 type dummy
ip addr add 99.99.99.1 dev dummy10
ip link set dummy10 up

在一个终端中,通过以下方式观看tcpdump

tcpdump -i dummy10

一秒钟,用以下命令收听nc

nc -l 99.99.99.1 2048

第三,使用发出HTTP请求curl

curl http://99.99.99.1:2048/

尽管在2号航站楼中我们可以从curl请求中看到数据,但从中看不到任何内容tcpdump

一个TUN / TAP教程澄清某些情况下,内核可能不会实际发送当一个本地接口上运行的任何数据包:

查看tshark的输出,我们什么都没看到。没有流量通过该接口。这是正确的:由于我们要对接口的IP地址执行ping操作,因此操作系统正确地确定不需要“在线”发送任何数据包,并且内核本身正在答复这些ping操作。如果您考虑一下,这就是您对另一个接口的IP地址(例如eth0)执行ping操作时将发生的情况:不会发送任何数据包。这听起来似乎很明显,但一开始可能会引起混乱(对我而言)。

但是,很难看到这如何适用于TCP数据包。

也许tcpdump应该以不同的方式绑定到接口?

震荡器

流量通过lo接口。

将IP添加到框中后,该地址的路由将添加到“本地”表中。该表中的所有路由均通过环回接口路由流量。

您可以使用以下方法查看“本地”表的内容:

ip route show table local

在我的系统上看起来像这样:

local 10.230.134.38 dev tun0  proto kernel  scope host  src 10.230.134.38 
broadcast 10.230.134.38 dev tun0  proto kernel  scope link  src 10.230.134.38 
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
broadcast 172.17.0.0 dev docker0  proto kernel  scope link  src 172.17.42.1 
local 172.17.42.1 dev docker0  proto kernel  scope host  src 172.17.42.1 
broadcast 172.17.255.255 dev docker0  proto kernel  scope link  src 172.17.42.1 
broadcast 192.168.0.0 dev enp6s0  proto kernel  scope link  src 192.168.0.20 
local 192.168.0.20 dev enp6s0  proto kernel  scope host  src 192.168.0.20 
broadcast 192.168.0.255 dev enp6s0  proto kernel  scope link  src 192.168.0.20 

所以基本上,如果我发送任何流量10.230.134.38127.0.0.0/8127.0.0.1(冗余)172.17.42.1或者192.168.0.20,流量将被路由通过回环接口,即使这些IP地址是真正不同的接口上。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何给结构一个“虚拟” typedef?

来自分类Dev

在虚拟接口上收听

来自分类Dev

netplan是否在一个接口上支持DHCP和静态地址?

来自分类Dev

如何将所有流量放在一个接口上,而某些流量放在另一个接口上

来自分类Dev

虚拟主机在Webrick的另一个端口上运行服务器

来自分类Dev

Wireshark流量捕获-一个子网到另一个子网

来自分类Dev

在两个网络接口上分离网络流量

来自分类Dev

将流量从一个地址路由到一个接口上的另一个地址,再通过另一个接口路由到其他所有地址

来自分类Dev

如何在虚拟接口上阻止传入流量?

来自分类Dev

netplan是否在一个接口上支持DHCP和静态地址?

来自分类Dev

如何将一个接口上的入站流量路由到同一台计算机上的另一个接口?

来自分类Dev

OpenvSwitch:一个绑定接口上的多个虚拟网桥

来自分类Dev

在Virtual Box中使用Wireshark时,一个虚拟机的流量与另一虚拟机的流量隐藏

来自分类Dev

如何使所有流量通过Linux中的一个接口

来自分类Dev

了解一个接口上的以太网地址

来自分类Dev

一个接口上有多个静态IP Debian 9 Stretch

来自分类Dev

在回送接口上捕获lvsadm UDP流量

来自分类Dev

如何连接2个虚拟网桥,以便流量从一个流向另一个?

来自分类Dev

虚拟接口如何实际路由流量?

来自分类Dev

Lambda表达式在一个接口上工作吗?

来自分类Dev

RMI:rmi服务器只能同时在一个网络接口上运行吗

来自分类Dev

在Linux中,如何在一个接口上获取具有多个IP地址的每个IP地址的流量?

来自分类Dev

在一个接口上发送数据包,并在另一接口上接收数据包以进行测试

来自分类Dev

通过指定接口路由一个 IP 地址的流量

来自分类Dev

如何在一个接口上通过一个绑定共享多个 vlan

来自分类Dev

如何在一个接口上链接多个子网?

来自分类Dev

如何将所有流量放在一个接口上,将一些流量放在另一个接口上

来自分类Dev

交换两个接口上的流量的 IP 表规则

来自分类Dev

在一个接口上同时使用 DHCP 和静态 IP 地址

Related 相关文章

  1. 1

    如何给结构一个“虚拟” typedef?

  2. 2

    在虚拟接口上收听

  3. 3

    netplan是否在一个接口上支持DHCP和静态地址?

  4. 4

    如何将所有流量放在一个接口上,而某些流量放在另一个接口上

  5. 5

    虚拟主机在Webrick的另一个端口上运行服务器

  6. 6

    Wireshark流量捕获-一个子网到另一个子网

  7. 7

    在两个网络接口上分离网络流量

  8. 8

    将流量从一个地址路由到一个接口上的另一个地址,再通过另一个接口路由到其他所有地址

  9. 9

    如何在虚拟接口上阻止传入流量?

  10. 10

    netplan是否在一个接口上支持DHCP和静态地址?

  11. 11

    如何将一个接口上的入站流量路由到同一台计算机上的另一个接口?

  12. 12

    OpenvSwitch:一个绑定接口上的多个虚拟网桥

  13. 13

    在Virtual Box中使用Wireshark时,一个虚拟机的流量与另一虚拟机的流量隐藏

  14. 14

    如何使所有流量通过Linux中的一个接口

  15. 15

    了解一个接口上的以太网地址

  16. 16

    一个接口上有多个静态IP Debian 9 Stretch

  17. 17

    在回送接口上捕获lvsadm UDP流量

  18. 18

    如何连接2个虚拟网桥,以便流量从一个流向另一个?

  19. 19

    虚拟接口如何实际路由流量?

  20. 20

    Lambda表达式在一个接口上工作吗?

  21. 21

    RMI:rmi服务器只能同时在一个网络接口上运行吗

  22. 22

    在Linux中,如何在一个接口上获取具有多个IP地址的每个IP地址的流量?

  23. 23

    在一个接口上发送数据包,并在另一接口上接收数据包以进行测试

  24. 24

    通过指定接口路由一个 IP 地址的流量

  25. 25

    如何在一个接口上通过一个绑定共享多个 vlan

  26. 26

    如何在一个接口上链接多个子网?

  27. 27

    如何将所有流量放在一个接口上,将一些流量放在另一个接口上

  28. 28

    交换两个接口上的流量的 IP 表规则

  29. 29

    在一个接口上同时使用 DHCP 和静态 IP 地址

热门标签

归档