使用路由器捕获 TCP 数据包

使用路由器捕获 TCP 数据包

有没有办法编写脚本让 OpenWRT 路由器捕获发往网络服务器的 TCP 数据包?我想向该服务器发送一个 WOL 数据包,然后等待从休眠状态唤醒后再发送实际消息。

注意:我是网络新手。有些人声称我所描述的是不可能的,而另一些人则恰恰相反。我想知道这是否可行,如果可行,如何实现(不会损失大量带宽)?

答案1

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

如果您想“捕获”从客户端发送到服务器的包,那么几乎可以使用任何 Linux / Unix 系统来执行此操作。

如果服务器和客户端之间有防火墙(或在本例中是 OpenWRT 路由器),您可以解析防火墙、tcpdump 或 OpenWRT 提供的日志。

当防火墙收到来自客户端的数据包(其目的地为“休眠”服务器,且数据包为 WoL UDP 数据包模式)时,您就知道服务器已收到该数据包。然后,您可以等待任意时间,然后再发送有效载荷。

最佳方法 如果您有监控服务,您可以发送 WoL UDP 包,然后等待您的监控服务(如 Zabbix)指示服务器现在已完全“唤醒”。然后执行您的有效负载。

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

这是很有可能的。

不会损失大量带宽

您没有理由因此而损失任何吞吐量。

相关内容