tcpdump: socket: Address family not supported by protocol

29. April 2006

Ihr Problem

Sie wollen Netzwerkverkehr mit Hilfe des Programms tcpdump mithören, bekommen aber folgende Fehlermeldung:

root@linux# tcpdump -n tcp port 22
tcpdump: socket: Address family not supported by protocol

Die Ursache

Das Kernelmodul af_packet ist nicht geladen. Dies implementiert Raw-Sockets, mit denen man an TCP/IP vorbei direkt auf eine Netzwerkkarte zugreifen kann. Und genau das benötigt tcpdump.

Normalerweise wird das Modul automatisch geladen. Wenn das Modul aber fehlt oder die Modulabhängigkeiten nicht bekannt sind (depmod -a nicht ausgeführt wurde), kann es zu diesem Zustand kommen.

Abhilfe

Aktualsieren Sie evtl. Ihre Modulabhängigkeiten und laden dann das Modul von Hand:

root@linux# depmod -a
root@linux# modprobe af_packet

Kontrollieren Sie ggfls., ob das Modul vorhanden ist:

root@linux# find /lib/modules -name "af_packet*"
/lib/modules/2.6.13-15-default/kernel/net/packet/af_packet.ko

Wenn modprobe nicht funktioniert, können Sie versuchen, das Modul mit insmod direkt zu laden:

root@linux# insmod /lib/modules/2.6.13-15-default/kernel/net/packet/af_packet.ko