gpt4 book ai didi

linux - 如何将网络接口(interface)或某个端口接收到的包保存到文件中,并在需要时重新发送接收到的包?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:16 26 4
gpt4 key购买 nike

我正在 Linux 上的一个服务器服务程序上工作,该程序处理发送到它监听的套接字的包。已经有一个旧的这样的服务在端口上监听并完成它的工作,并且我无法停止旧服务器服务,我需要将包发送到旧服务器并将它们发送到我的新服务器服务以确保它运行良好。我如何才能获取包并将它们重新发送到我的新服务?是否有这样的工具或 tcpdump 等工具已经提供的一些功能?谢谢:)

最佳答案

对于 UDP 等无连接协议(protocol),您可以使用 tcpdump 记录数据并使用 netcat 重新发送。

对于像 TCP 这样的面向连接的协议(protocol),我认为这并不容易,因为 TCP 期望您的数据包在确认确认号中具有正确的值,这将在您记录的数据包和新建立的 TCP 连接之间有所不同。在这种情况下,您需要手动建立连接(即为此目的使用自定义应用程序)并仅重新发送负载。也许,有一些现成的应用程序可以用于此目的(从 tcpdump 格式中提取有效负载并将其发送到远程),我不能说。但是编写这样的应用程序非常容易。

顺便说一句,同样的事情甚至适用于 UDP,如果您的服务器维护他自己的某种排序 - 重新发送的数据包可能具有您的服务器不希望收到的序列号。

关于linux - 如何将网络接口(interface)或某个端口接收到的包保存到文件中,并在需要时重新发送接收到的包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com