핫스팟에서 각 장치의 데이터 사용량을 모니터링하는 방법은 무엇입니까?

핫스팟에서 각 장치의 데이터 사용량을 모니터링하는 방법은 무엇입니까?

내 집 장치가 인터넷 데이터를 과도하게 사용하여 몇 가지 문제를 일으키고 있습니다. 문제는 어떤 장치가 내 데이터를 모두 잡아먹고 있는지 알 수 없다는 것입니다.

항상 켜져 있는 라즈베리 파이가 있습니다. 내 계획은 이더넷을 통해 파이를 액세스 포인트에 연결한 다음 파이에 핫스팟을 설정하여 모든 가전제품이 파이의 핫스팟에 연결되도록 하는 것입니다.

그러면 모든 인터넷 트래픽이 pi의 핫스팟을 통해 흐르게 되므로 pi를 사용하여 각 장치의 데이터 사용량을 모니터링할 수 있는 방법이 있어야 한다고 생각합니다.

내 연구에서 Wireshark를 발견했지만 이 사용 사례에서는 과도하고 비효율적인 것 같습니다. (아주 복잡한 것은 말할 것도 없습니다).

일부 사이트에서는 ntop 사용을 제안하지만 작동하는지 모르겠습니다.

Tcpdump: 또한 매우 복잡하고 과도해 보입니다.

내가 사용할 수 있는 것에 대한 제안이 있습니까? (내 라우터는 구동 기능을 사용하지 않으며 라우터를 구입하고 싶지 않습니다.) 파이의 열악한 네트워크 하드웨어로 인해 발생하는 작은 병목 현상을 감수할 수 있습니다.

답변1

먼저, 어떤 장치인지 알 수 있도록 장치를 식별할 수 있는 방법이 필요합니다. 개인 정보 보호를 위해 일부 최신 모바일 장치는 공장 기본 MAC 주소를 사용할 만큼 특정 네트워크를 신뢰하도록 특별히 구성하지 않는 한 MAC 주소를 무작위로 지정합니다.

일반적으로 고정 MAC 주소가 있으면 IP 주소를 어느 정도 안정적으로 유지하기에 충분하지만 RasPi 핫스팟의 DHCP 서버를 구성하여 항상 MAC 주소를 통해 각 클라이언트에 특정 고정 IP 주소를 제공할 수 있습니다.

알려진 IP 주소를 사용하는 클라이언트가 있으면 iptables다음과 같이 장치당 두 개의 규칙이 패킷/바이트 카운터 역할을 하는 자체 규칙 체인을 추가할 수 있습니다.

iptables -N packetcount   # create a custom rule chain
iptables -A packetcount -s <device IP> -o <wired interface> -j RETURN -m comment --comment "FROM <device name>"
iptables -A packetcount -i <wired interface> -d <device IP> -j RETURN -m comment --comment "TO <device name>"
[...add a pair of rules for each device...]

그런 다음 이 사용자 정의 체인을 다음과 같이 추가하십시오.첫 번째표준 규칙 체인의 FORWARD 규칙:

iptables -I FORWARD 1 -j packetcount

이제 장치별로 들어오고 나가는 데이터에 대한 패킷/바이트 카운터 세트가 있으며 다음을 사용하여 읽을 수 있습니다.

iptables -L packetcount -vn

( -n여기서 옵션을 사용하면 명령이 호스트 이름에 대한 IP를 확인하는 데 시간을 소비하지 않으며 이전 -m comment --comment ...작업으로 인해 각 카운터에 대해 사람이 읽을 수 있는 이름이 생성됩니다.)

목록의 길이는 80자를 초과하므로 넓은 터미널 창을 사용하여 확인하세요. 목록의 처음 두 열은 규칙과 일치하는 패킷 수와 총 바이트 수입니다.

카운터를 0으로 재설정하려면(예: 카운터를 읽은 후 하루에 한 번) 다음과 같이 할 수 있습니다.

iptables -Z packetcount

최대의 정확성을 위해 나열과 영점 조정을 결합하여 각 카운터가 영점 조정 직전에 나열되도록 할 수 있습니다.

iptables -Z packetcount -L -vn

관련 정보