ifconfig에는 패킷이 표시되지만 tcpdump에는 표시되지 않습니다.

ifconfig에는 패킷이 표시되지만 tcpdump에는 표시되지 않습니다.

ifconfig에서 전송/수신된 패킷 수와 tx/rx 값을 볼 수 있습니다. 인터페이스가 무차별 모드일 때 인터페이스에서 tcpdump를 열면 해당 인터페이스에서 보내고 받는 모든 패킷이 표시되어야 합니다. 그렇죠?

사용:

tcpdump -XX -e -n -s0 -i <iface>

(옵션에 중복이 있을 수 있습니다 :p)

하지만 전송된 모든 패킷이 표시되지는 않습니다. 어떤 아이디어가 있나요?

편집하다:또한 ifconfig 매뉴얼을 읽었는데 다음과 같습니다.

"Ifconfig는 커널에 있는 네트워크 인터페이스를 구성하는 데 사용됩니다."

그렇다면 ifconfig는 커널 수준에서 tx/rx를 읽습니다. 맞나요? 운전자 수준에서 이러한 판독값을 얻을 수 있는 방법이 있습니까?

편집 2:또한 커널과 실행 중인 프로그램에 패킷을 보내도록 드라이버를 프로그래밍할 수 있습니까?

편집 3:스니핑 프로그램 만들 수 있어?어느형식에 관계없이 인터페이스에 전달된 바이트 수는 무엇입니까? 어쩌면 tcpdump가 패킷 형식을 인식하지 못하기 때문에 패킷을 제공하지 않을 수도 있습니다.

답변1

iptables가 트래픽이 나가는 것을 차단하고 있는지 확인해보세요. iptables --list를 사용하여 확인하고 /etc/init.d/iptables stop을 사용하여 모든 규칙을 제거합니다.

답변2

tcpdump얻다복사패킷은 네트워크 스택의 상위 계층(대략 드라이버에서 커널로 전달되는 위치)에서 옵니다. (출처는 거기에 있습니다. 가서 확인해 보세요.) 나는 당신이 보고 있는 tx/rx 통계가 무엇인지, 네트워크 카드의 특정 드라이버를 모르기 때문에 그것이 어디서 왔는지 말할 수 없습니다. ethtool지원되는 경우 드라이버에서 직접 데이터를 요청할 수 있습니다. (커널이 추적하지 않는 통계도 포함됩니다.)

관련 정보