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 просто не даст вам этого.

Другие вопросы по тегам