捕获与路由器的TCP数据包

有没有一种方法来编写一个OpenWRT路由器来捕获发往networking服务器的TCP数据包? 我想发送一个WOL数据包到服务器,然后等待从hibernate状态中唤醒,然后再发送实际的消息。

注:我是一个networking初学者。 有些人声称我所描述的是不可能的,而另外一些则完全相反。 我想知道这是否可能,如果是这样(不失去显着的带宽)?

很难说正确的做法是什么,在没有更多信息的情况下给出更直接的答案。

如果你想“捕捉”从客户端发送到服务器的软件包,那么你几乎可以在任何Linux / Unix系统上执行该操作。

如果在服务器和客户端之间有防火墙(或者在这种情况下,OpenWRT路由器),则可以parsing防火墙,tcpdump或OpenWRT提供的日志。

当防火墙收到来自客户端的具有WoL UDP包模式的“睡眠”服务器的目的地的包时,您知道服务器已经收到它。 你可以比在你之前等待任何时间发送你的有效载荷。

最好的方法如果你有一个监控服务,你可以发送WoL UDP包,而不是等待你的监控服务,比如Zabbix指出服务器现在已经完全“清醒”了。 执行你的有效载荷。

有些人声称我所描述的是不可能的

这是极有可能的。

而不会丢失大量带宽

他们是没有理由的,你应该失去这个吞吐量。