@volucris1

Как работает интернет в WSL?

Сегодня я хотел поменять TTL на WSL — у меня это получилось. Но вот что я выяснил: трафик WSL сначала проходит через "точку доступа" windows, а ̶з̶н̶а̶ч̶и̶т̶ TTL теряет 1 еденицу. Потом трафик винды теряет еще 1 еденицу.

Контроль TTL часто используются провайдерами для обнаружения трафика несанкционированного подключенного устройства. К примеру, если на смартфоне включить режим «Мобильная точка доступа» (тетеринг), TTL от подключенных устройств будет на 1 меньше ожидаемого. Тем самым блокируется доступ для этих устройств.

Но в то же время, Microsoft говорит, мол, никаких виртуальных машин:

The Windows Subsystem for Linux lets developers run a GNU/Linux environment -- including most command-line tools, utilities, and applications -- directly on Windows, unmodified, without the overhead of a traditional virtual machine or dualboot setup.

Так если это не машина, которая запускается внутри Windows, тогда это просто слой совместимости:

Windows Subsystem for Linux (WSL) is a compatibility layer for running Linux binary executables (in ELF format) natively on Windows 10, Windows 11,[2] and Windows Server 2019.

И тогда выходит, что WSL сначала обращается к виндовс, а виндовс передает этот запрос в интернет. Прямо как транслятор? Типа Rossetta?
  • Вопрос задан
  • 774 просмотра
Решения вопроса 2
hint000
@hint000
у админа три руки
И тогда выходит, что WSL сначала обращается к виндовс, а виндовс передает этот запрос в интернет.
Досюда рассуждения верные, хотя и мало что объясняют. :)
Прямо как транслятор? Типа Rossetta?
Нет. Rossetta для другой архитектуры процессора. Внутри WSL всё работает на той же x86\x64, что и снаружи WSL. Скорее как Wine.

В WSL удалось полностью избавиться от использования ядра Linux, по сути пользовательское окружение Ubuntu работает поверх ядра Windows. Запуск исполняемых файлов Linux реализован путём включения специальной прослойки (код подсистемы закрыт), которая в режиме реального времени транслирует системные вызовы Linux в системные вызовы Windows. Концептуально, такой подход чем-то вроде среды WINE (только транслирует не WinAPI -> LinuxAPI, а наоборот LinuxAPI -> WinAPI).
https://winehq.org.ru/WSL

работа линуксовых приложений организуется без использования контейнеров виртуализации, отдельной пересборки утилит и даже без использования ядра Linux — родные исполняемые файлы Linux запускаются благодаря специальной прослойке, на лету транслирующей системные вызовы Linux в системные вызовы Windows. По сути, реализован обратный аналог системы Wine
https://xakep.ru/2016/07/01/windows-subsystem-for-...

WSL essentially is to Linux what WINE is to Windows.
https://news.ycombinator.com/item?id=16355144

Но линуксовый сетевой стек реализован в ядре, а в WSL как раз нет ядра Linux.
Сеть WSL2 виртуальная:
In WSL2, the network interfaces are virtualized. Virtualized network interfaces mean that WSL2 network instances can hold different IP configurations than their Windows 10 counterparts.
At the time of this writing, IP addresses for WSL2 Linux use Network Address Translation (NAT) to access network resources on Windows, though Microsoft has mentioned removing NAT is high on their backlog of issues to fix.
https://adamtheautomator.com/windows-subsystem-for...

https://docs.microsoft.com/en-us/windows/wsl/networking

https://davidbombal.com/wsl-2-networking/
Ответ написан
Комментировать
Oxyd
@Oxyd
Linux enthusiast
WSL первой версии был таким транслятором. WSL2 это сильно интегрированная в винду, достаточно легковесная, но всё-таки виртуальная машина.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Drno
Wsl это виртуалка. Ибо линкс и виндовс абсолютно разные ОС со своими ядрами
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы