Tshark не может быть запущен под WSL (подсистема Windows Linux) ((сокет: семейство адресов не поддерживается протоколом))
Я посещаю курс компьютерных сетей. В целях обучения я хотел бы запустить tshark в моем WSL-Debian под Windows.
Я успешно установил его, используя:sudo apt-get install tshark
Моя версия с использованиемtshark -v
-->TShark (Wireshark) 3.4.10 (Git v3.4.10 packaged as 3.4.10-0+deb11u1)
sudo tshark -D
Выводит несколько «портов» (?)
но когда я использую простую командуtshark
В нем говорится: «Захват на 'eth0'tshark: сеанс захвата не может быть инициирован на интерфейсе 'eth0' (сокет: семейство адресов не поддерживается протоколом)..."
Запуск tshark на WSL — это иллюзия? Я где-то читал, что это возможно
-edit: Работа над WSL1
1 ответ
Мне нравится WSL, но в данном случае, вероятно, он вам не подойдет. Ни WSL1, ни WSL2 не подходят для перехвата пакетов по разным причинам:
По моему опыту, WSL1 вообще не будет работать. Сетевые интерфейсы в WSL1 не являются «настоящими» сетевыми интерфейсами Linux. Все системные вызовы Linux в WSL1 проходят через «уровень трансляции», где они сопоставляются с API-интерфейсами Windows. В этом есть свои преимущества и недостатки. Хотя вы действительно можете увидеть сетевые интерфейсы Windows с помощью команд Linux (например,
ip addr
), это сетевые интерфейсы Windows , а не Linux.Таким образом, переведено только «так много». И, черт возьми, ИМХО, WSL1 отлично справляется с такими ограничениями, но беспорядочные захваты сети не входят в число тех вещей, которые транслируются.
WSL2, с другой стороны, представляет собой настоящее ядро Linux, работающее в виртуализированной среде.
tshark
будет запускать и перехватывать пакеты, исходящие из виртуальной сети и предназначенные для нее, но он не будет видеть (например) трафик между вашим телефоном и вашим хостом Windows в сети Wi-Fi. WSL2 не имеет понятия об этой сети Wi-Fi, поскольку она находится за виртуальным коммутатором Hyper-V.
В любом случае, для этого вам, по крайней мере, следует переключиться на WSL2.
Однако я бы порекомендовал, чтобы лучшим вариантом для вашего курса было использование нескольких виртуальных машин с чем-то вроде VirtualBox (или даже Hyper-V, если у вас Windows Pro или Education). Это даст вам полный контроль над виртуальной сетью; WSL просто не даст вам этого.