是否有可能,如果可以,如何单步执行通过 Linux 网络堆栈的数据包?

是否有可能,如果可以,如何单步执行通过 Linux 网络堆栈的数据包?

我正在寻找一种方法来更好地理解 Linux 网络堆栈的每一步以及如何检查某些配置值如何改变行为。我知道有队列、iptables链条等等。当数据包放入队列或传输等时,我想输出日志或其他内容。

是否有可能(如果可以)如何单步执行通过 Linux 网络堆栈的数据包?

答案1

我怀疑是否有一种工具可以说明数据包的整个方式。我猜涉及太多不同的组件。

但是对于数据包过滤器,您可以将数据包(而不是太多)发送到链TRACE中的目标raw,请参阅man iptables-extensions。这会针对每个决策向内核环形缓冲区 ( dmesg) 写入一条消息,即显示规则是否匹配以及该链的哪个策略或是否决定数据包的命运。

相关内容