我需要监控两个没有安装 tcpdump 的主机之间的 TCP 网络,但我无法在它们上安装。
是否可以使用 tcpdump 和一些已知规则来实现这一点?
答案1
是的,您有多种选择:
- 在两台主机之间放置一个集线器。然后,您可以连接 tcpdump 机器并嗅探流量(请注意,性能会非常差。集线器只能达到 100mbit,即使这样,它们的速度也比交换式 100mbit 慢得多)
- 如果您有一个管理型交换机:为这两个接口添加一个镜像端口,将 tcpdump 机器连接到镜像端口。
- tcpdump 机器上的两个接口:将两个接口桥接在一起(http://www.tldp.org/HOWTO/BRIDGE-STP-HOWTO/set-up-the-bridge.html)并嗅探桥接接口
答案2
如果您无法在任何主机上安装 tcpdump,或者无法以任何方式修改其配置,则要转储数据包,您需要将它们从网络上移除。通常的“企业”方法是使用端口镜像,但当然您需要具有该功能的网络交换机和安装了 tcpdump 的第三台服务器。否则,如果您只有这些,则集线器可以完成此操作。
如果您安装了其他软件(如 netcat),并且只需要一个或两个端口,那么您可能可以将流量发送到主机外进行嗅探并返回,但如果您正在分析网络问题,那么这更像是一个问题,而不是一个解决问题的方法。为什么不能安装 tcpdump?
解决问题的另一种方法是问自己真正想做什么。如果你不需要查看数据包内容,也许你可以使用通常默认安装的工具(如 netstat、route、lsof、ss……)收集足够的信息。