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
|