답변1
이 명령을 사용하면 다음을 줄일 수 있습니다.TCP 덤프그냥MAC 주소깨어나려고 노력 중:
tcpdump -UlnXi eth0 ether proto 0x0842 or udp port 9 2>/dev/null |
sed -nE 's/^.*20: (ffff|.... ....) (..)(..) (..)(..) (..)(..).*$/\2:\3:\4:\5:\6:\7/p'
이것은 깨어나는 것을 포착합니다.etherwake
,에테르형 0x0842(AMD 매직 패킷 형식), 그리고wakeonlan
(UDP: 9), 그러나 실행하려면 인터페이스가 필요합니다.promiscuous mode
.
이 예제의 출력은 다음과 같습니다.
44:55:33:11:56:66
11:22:33:66:56:af
11:be:33:ef:56:af
예를 들어 다른 컴퓨터에서 테스트하려면 다음과 같이 하세요.
wakeonlan 12:de:ad:be:ef:56
etherwake -i wlp2s0 -b 31:32:33:34:35:36
UDP를 통해 전송된 데이터(예: wakeonlan
명령)만 캡처하려면 무차별 모드가 필요하지 않은 스크립트를 사용할 수 있습니다.
nc -dknl -p 9 -u |
stdbuf -o0 xxd -c 6 -p |
stdbuf -o0 uniq |
stdbuf -o0 grep -v 'ffffffffffff' |
while read ; do
echo ${REPLY:0:2}:${REPLY:2:2}:${REPLY:4:2}:${REPLY:6:2}:${REPLY:8:2}:${REPLY:10:2};
done
대신 다른 작업을 시작할 수 있습니다 while read ... echo blabla
.
답변2
위키피디아Wake-on-LAN 패킷의 구조에 대해 다음과 같은 말이 있습니다(강조).
매직 패킷은 페이로드의 어느 위치에나 255개 중 6바이트(16진수로 FF FF FF FF FF FF FF)를 포함하고 이어서 대상 컴퓨터의 48비트 MAC 주소가 16번 반복되어 총 102바이트를 포함하는 브로드캐스트 프레임입니다.
매직 패킷은 위의 문자열만 스캔하고 전체 프로토콜 스택에서 실제로 구문 분석되지는 않으므로모든 네트워크 계층 및 전송 계층 프로토콜로 전송될 수 있습니다.그러나 일반적으로 포트 0, 7 또는 9에 UDP 데이터그램으로 전송되거나 EtherType 0x0842로 이더넷을 통해 직접 전송됩니다.
따라서 현재 캡처 필터는 모든 WOL 패킷 캡처를 보장하지 않습니다. 그리고문서에 따르면, WakeMeOnLan 응용 프로그램에는 WOL 패킷을 보내는 여러 가지 방법이 있는 것으로 보이므로 필터링되지 않은 간단한 테스트 캡처를 수행하여 응용 프로그램이 보내는 WOL 패킷 유형을 확인한 다음 그에 따라 필터를 조정할 수 있습니다.