С помощью этой команды вы можете уменьшить вывод из tcpdump только до 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
, ethertype0x0842 (формата магического пакета 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
можно было запускать другие действия.
Мне пришлось изменить файл fstab
, чтобы принять vfat
вместо fat32
, чтобы решить эту проблему. все хорошо идти!