【发布时间】:2011-06-02 14:36:25
【问题描述】:
我在一台 Linux 机器 server1 上有一个 Python 进程,它接收和处理原始 UDP 数据包。我想要另一台 Linux 机器 server2 能够监听 server1 正在接收的相同 UDP 数据包。
是否有任何 Python 解决方案能够嗅探发往另一台 (Linux) 机器的 UDP 数据包?
【问题讨论】:
-
流量通过几个非托管交换机,因此我无法从网络方面做太多事情。在同一台服务器上添加一个 python 进程怎么样:server1?是否可以让多个 Python 进程在同一台机器上的同一端口号上侦听相同的 UDP 数据包?
-
No- 只有单个进程可以监听套接字。但是您可以让某些东西监听套接字并将数据发送到多个其他子进程。在同一台机器或其他机器上。它是什么样的数据?
-
这是一个UDP数据包,里面有大约150个文本字符。
-
如果您想要不同机器上的进程(您认为一台机器无法完成所有工作),我会让一台 Linux 机器接收数据,并使用 iptables 将其发送到其他多台机器。也许到同一台机器上的不同插座。这是可能的,因为它的UDP。如果你想在同一台机器上做这一切,我会有一个进程,它产生连接
PIPEs的子进程,绑定UDP套接字并将数据复制到每个子进程的管道;也许在一些输入验证之后。 -
虽然我没有读完,但这可能会有所帮助:bjou.de/blog/2008/05/… 我认为您正在寻找
--tee标志/目标。
标签: python linux networking ubuntu network-programming