Кратко о цели: настроить WSL2 Debian 12 на Windows 11 (хост в LAN с IP 192.168.2.100), чтобы после перезагрузки Windows автоматически поднимался Linux и были доступны из интернета сервисы SSH (22), HTTP (80), HTTPS (443) и MySQL (3306). Рассмотрим несколько сетевых вариантов (NAT + portproxy, Mirrored Networking, бридж), проброс портов на MikroTik, установку Nginx/Apache, OpenSSH, MariaDB/MySQL, а также firewall и Fail2Ban.
- 1. Введение
- 2. Руководство для обычного пользователя
- Мини‑оглавление раздела 2
- 2.1 Требования и подготовка
- 2.2 Установка WSL 2 и Debian 12
- 2.3 «Постоянный IP» через portproxy на Windows (простой путь)
- 2.4 Установка SSH, веб‑сервера и MySQL в Debian
- 2.5 Проброс портов на MikroTik (WAN → 192.168.2.100)
- 2.6 Автозапуск WSL и сервисов после перезагрузки Windows
- 2.7 Резюме для пользователя
- 3. Руководство для разработчика
- Мини‑оглавление раздела 3
- 3.1 Что важно знать о сети WSL 2 при разработке
- 3.2 Автообновление правил portproxy (скрипт PowerShell)
- 3.3 Mirrored Networking: доступ из LAN без portproxy (Win 11 22H2+)
- 3.4 Бридж Hyper‑V (альтернатива, менее рекомендуемая)
- 3.5 Интеграция с инструментами (IDE, БД‑клиенты, Docker)
- 3.6 Мини‑безопасность для dev: UFW и Fail2Ban
- 4. Руководство для администратора
- Мини‑оглавление раздела 4
- 4.1 Выбор сетевого режима: NAT / Mirrored / Bridged
- 4.2 Установка/подготовка Debian 12 в WSL 2 + systemd
- 4.3 Сервисы: OpenSSH, Apache/Nginx, MariaDB/MySQL
- 4.4 MikroTik: DST‑NAT, Firewall и проверка
- 4.5 Полный автозапуск WSL и служб
- 4.6 Дополнительные сценарии
- 4.7 Тестирование и отладка (чек‑лист)
- 4.8 Безопасность: Windows FW, UFW/nftables, Fail2Ban
- 4.9 Выводы
- 5. Глоссарий терминов
1. Введение
Сценарий: ПК на Windows 11 с локальным IP 192.168.2.100 в сети 192.168.2.0/24, за маршрутизатором MikroTik с белым WAN‑IP (статическим). В WSL 2 установлен Debian 12, где должны работать SSH (22), HTTP (80), HTTPS (443) и MySQL (3306). Требования:
— постоянная достижимость из интернета (через проброс с MikroTik),
— автоматический подъём WSL и служб после перезагрузки Windows,
— установка и базовая защита (Windows Firewall, UFW/nftables, Fail2Ban).
Сетевые варианты:
- NAT (по умолчанию в WSL 2) + portproxy на Windows (простой универсальный вариант). (Microsoft Learn)
- Mirrored Networking (Windows 11 22H2+): доступ к сервисам WSL по IP хоста без portproxy (рекомендуется на новых системах). (Microsoft Learn)
- Bridged (устаревает): WSL как отдельный узел в LAN с собственным IP (опционально/редко, см. § 3.4). (Microsoft Learn)
2. Руководство для обычного пользователя
Идея: минимально сложный путь — оставить WSL в режиме NAT и настроить на Windows «порт‑прокси» (netsh portproxy), а на MikroTik — DST‑NAT с WAN на IP 192.168.2.100. Этот подход стабилен и не требует редких/новых возможностей. (Microsoft Learn, MikroTik Help)
Мини‑оглавление раздела 2
- 2.1 Требования и подготовка · 2.2 Установка WSL 2/Debian · 2.3 portproxy (простое решение) · 2.4 Сервисы в Debian · 2.5 NAT на MikroTik · 2.6 Автозапуск · 2.7 Резюме
2.1 Требования и подготовка
- Windows 11 с правами администратора.
- Включённые компоненты WSL и Virtual Machine Platform.
- Установленный из Store Debian 12.
- Доступ к админке MikroTik (WebFig/WinBox).
- Статический LAN‑IP для ПК Windows (192.168.2.100) — зафиксируйте в DHCP на MikroTik или вручную в Windows.
- Желательно доменное имя (для HTTPS/Let’s Encrypt), но не обязательно.
2.2 Установка WSL 2 и Debian 12
Откройте PowerShell от администратора и выполните:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Перезагрузитесь. Затем установите Debian:
wsl --install -d Debian
Проверьте версию:
wsl -l -v
# при необходимости:
wsl --set-version Debian 2
Обновите Debian:
sudo apt update && sudo apt upgrade -y
Примечание: доступ к приложениям WSL с Windows по localhost (например, сайт на порту 5000) — работает из коробки. Для доступа с других устройств LAN/Интернета потребуется настройка из § 2.3 и § 2.5. (Microsoft Learn)
2.3 «Постоянный IP» через portproxy на Windows (простой путь)
Почему так: в WSL 2 по умолчанию NAT‑сеть — Linux получает внутренний динамический IP, меняющийся при рестарте. Непосредственно «статический IP» на интерфейсе WSL назначить нельзя, зато можно слушать порты на Windows и проксировать их в текущий IP WSL (netsh interface portproxy). Тогда извне подключаются к 192.168.2.100:порт, а трафик попадает в WSL. (Microsoft Learn)
- Узнайте IP WSL (в Debian):
hostname -I
# пример: 172.30.98.229
- Добавьте правила portproxy (PowerShell от администратора, замените
<WSL_IP>):
netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=<WSL_IP>
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=<WSL_IP>
netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=<WSL_IP>
netsh interface portproxy add v4tov4 listenport=3306 listenaddress=0.0.0.0 connectport=3306 connectaddress=<WSL_IP>
Проверка:
netsh interface portproxy show all
Почему
0.0.0.0: Microsoft в примерах рекомендует слушать на 0.0.0.0 (на всех адресах). Практика показывает, что так меньше сбоев после перезагрузки, чем при привязке к конкретному адресу; в ряде кейсов после рестарта правила с конкретнымlistenaddressвизуально остаются, но перестают работать до пересоздания. (Microsoft Learn, Stack Overflow)
- Откройте порты в Windows Firewall (PowerShell от администратора):
New-NetFirewallRule -Name "WSL-SSH" -DisplayName "Allow WSL SSH" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
New-NetFirewallRule -Name "WSL-HTTP" -DisplayName "Allow WSL HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -Name "WSL-HTTPS"-DisplayName "Allow WSL HTTPS"-Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
New-NetFirewallRule -Name "WSL-MySQL"-DisplayName "Allow WSL MySQL"-Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow
(или через WF.msc графически). (Microsoft Learn)
- Проверьте локально:
Test-NetConnection 192.168.2.100 -Port 22
Если всё ок, из LAN уже можно подключаться к
192.168.2.100:22/80/443/3306, а из интернета будет доступно после § 2.5.
2.4 Установка SSH, веб‑сервера и MySQL в Debian
SSH (22)
sudo apt install -y openssh-server
sudo systemctl enable ssh --now # если включён systemd; иначе: sudo service ssh start
sudo ss -tulpn | grep :22
Веб‑сервер (Apache или Nginx)
# вариант 1: Apache
sudo apt install -y apache2
sudo systemctl enable apache2 --now
# вариант 2: Nginx
sudo apt install -y nginx
sudo systemctl enable nginx --now
Для HTTPS установите certbot и выпуск TLS‑сертификата для вашего домена; порт 80/443 должен быть проброшен извне (см. § 2.5).
MariaDB/MySQL (3306)
sudo apt install -y mariadb-server
sudo systemctl enable mariadb --now
sudo mysql_secure_installation
Откройте удалённый доступ (по необходимости): в /etc/mysql/mariadb.conf.d/50-server.cnf заменитеbind-address = 127.0.0.1 на bind-address = 0.0.0.0, затем рестарт: sudo systemctl restart mariadb.
Создайте пользователя для удалённого подключения и выдать права:
CREATE USER 'dbuser'@'%' IDENTIFIED BY 'StrongPassword';
GRANT ALL ON *.* TO 'dbuser'@'%';
FLUSH PRIVILEGES;
Безопасность: по возможности не открывайте 3306 в интернет без ограничений — лучше ограничить по IP на MikroTik/Windows FW и в Linux‑FW (см. § 4.8).
2.5 Проброс портов на MikroTik (WAN → 192.168.2.100)
Через WebFig/WinBox (NAT/DST‑NAT):
- IP → Firewall → NAT → Add
- Chain:
dstnat - Protocol:
tcp - Dst. Port:
22(аналогично 80, 443, 3306) - In. Interface List:
WAN
- Action:
- Action:
dst-nat - To Addresses:
192.168.2.100 - To Ports: соответствующий порт (22/80/443/3306).
CLI‑пример:
/ip firewall nat
add chain=dstnat in-interface-list=WAN protocol=tcp dst-port=22 action=dst-nat to-addresses=192.168.2.100 to-ports=22
add chain=dstnat in-interface-list=WAN protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.2.100 to-ports=80
add chain=dstnat in-interface-list=WAN protocol=tcp dst-port=443 action=dst-nat to-addresses=192.168.2.100 to-ports=443
add chain=dstnat in-interface-list=WAN protocol=tcp dst-port=3306 action=dst-nat to-addresses=192.168.2.100 to-ports=3306
Справка:
dst-natменяет адрес назначения входящих пакетов на внутренний хост — классический проброс портов. Убедитесь, что Firewall/Forward пропускает dst-nat‑соединения (в дефолтной конфигурации правило accept established,related обычно уже есть). (MikroTik Help, wiki.mikrotik.com, MikroTik community forum)
Проверка:
— с мобильного интернета: ssh user@<ваш_WAN_IP>;
— браузером: http://<ваш_WAN_IP>;
— на MikroTik: IP → Firewall → Connections или временно включить log=yes у NAT‑правила.
2.6 Автозапуск WSL и сервисов после перезагрузки Windows
Вариант A (проще): включите systemd в Debian и отметьте службы на автозапуск (см. § 4.2.2). Тогда при старте WSL они поднимутся сами. Запустить WSL на логон можно через Планировщик заданий:
- Триггер: «При входе в систему» (или «При запуске»).
- Действие:
Program: wsl
Arguments: -d Debian --exec /bin/true
Это просто запускает дистрибутив; systemd затем поднимет ssh, nginx/apache, mariadb, т.к. они enabled.
Вариант B: без systemd — в действии Планировщика запускайте сразу нужные сервисы, например:
wsl -d Debian -u root -- service ssh start
Подсказка: также можно автоматизировать пересоздание portproxy при каждом логоне — см. § 3.2.
Systemd в WSL включается через/etc/wsl.conf→[boot] systemd=trueи перезапускwsl --shutdown. (Microsoft Learn)
2.7 Резюме для пользователя
- Настроен простым способом доступ к WSL через IP Windows 11 (192.168.2.100) и portproxy.
- На MikroTik сделан DST‑NAT с WAN на 192.168.2.100:22/80/443/3306.
- Включён автозапуск WSL/служб.
- Базовая безопасность — пароли/ключи, обновления, при необходимости см. § 4.8.
3. Руководство для разработчика
Цель: удобный доступ к сервисам WSL с реальных устройств, IDE и инструментов, минимально вмешиваясь в ОС.
Мини‑оглавление раздела 3
- 3.1 Сеть WSL 2 для девелопера · 3.2 Скрипт автопрокси · 3.3 Mirrored Networking · 3.4 Бридж · 3.5 Интеграция · 3.6 Fail2Ban/UFW в dev
3.1 Что важно знать о сети WSL 2 при разработке
- Windows ⇄ WSL (localhost): из Windows обращение к сервисам WSL по
localhost:портработает по умолчанию. Для доступа с других машин LAN/Интернета — настраиваем как в § 2.3/§ 3.3. (Microsoft Learn) - При запуске серверов биндитесь на
0.0.0.0, чтобы принимать запросы из сети (иначе только localhost). (Microsoft Learn)
3.2 Автообновление правил portproxy (скрипт PowerShell)
Когда WSL получает новый IP после перезапуска, старые правила portproxy могут указывать на неактуальный адрес. Скрипт ниже пересоздаёт правила под актуальный IP WSL при каждом входе в систему.
Сохраните как C:\Scripts\WSLPortForward.ps1:
# Получаем текущий IP WSL (дистрибутив Debian должен быть установлен)
$wslIP = wsl -d Debian hostname -I | ForEach-Object { $_.Trim() } | ForEach-Object { $_.Split(" ")[0] }
if (-not $wslIP) { Write-Host "WSL not running or IP not found!"; exit 1 }
# Порты для проброса
$ports = 22,80,443,3306
foreach ($port in $ports) {
# Чистим старое правило
netsh interface portproxy delete v4tov4 listenport=$port listenaddress=0.0.0.0 2>$null
# Создаём новое правило на все адреса Windows (0.0.0.0) в сторону актуального IP WSL
netsh interface portproxy add v4tov4 listenport=$port listenaddress=0.0.0.0 connectport=$port connectaddress=$wslIP
}
# Открываем/проверяем Windows Firewall
foreach ($port in $ports) {
if (-not (Get-NetFirewallRule -DisplayName "Allow WSL Port $port" -ErrorAction SilentlyContinue)) {
New-NetFirewallRule -Name "WSL-Port-$port" -DisplayName "Allow WSL Port $port" `
-Direction Inbound -Protocol TCP -LocalPort $port -Action Allow
}
}
Write-Host "Updated WSL portproxy to $wslIP"
Добавьте в Планировщик задачу «При входе в систему» с командой:powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\WSLPortForward.ps1"
Использование
listenaddress=0.0.0.0повышает надёжность после перезапуска. (Microsoft Learn, Stack Overflow)
3.3 Mirrored Networking: доступ из LAN без portproxy (Win 11 22H2+)
Что это даёт: WSL «отзеркаливает» интерфейсы Windows и становится напрямую доступен из вашей LAN, а Windows и WSL видят друг друга по localhost. Никаких netsh portproxy не требуется; трафик фильтруется Windows/Hyper‑V Firewall. (Microsoft Learn)
Включение:
- Обновите WSL:
wsl --update. - Создайте
%UserProfile%\.wslconfig:
[wsl2]
networkingMode=mirrored
- Перезапустите WSL:
wsl --shutdown, затем откройте Debian. - Убедитесь, что Windows/Hyper‑V Firewall разрешает нужные порты (22/80/443/3306). При необходимости добавьте правила как в § 2.3. (Microsoft Learn)
Важно: если порт на Windows уже занят приложением, то тот же порт у сервиса в WSL будет недоступен извне — освободите порт на хосте или смените порт в WSL.
Преимущества Mirrored: поддержка IPv6, мульткаст, лучшая совместимость с VPN, прямой доступ к WSL из LAN. См. официальный список преимуществ. (Microsoft Learn)
3.4 Бридж Hyper‑V (альтернатива, менее рекомендуемая)
Ранее практиковался перевод виртуального свитча WSL в External/bridged, чтобы WSL получал отдельный IP в LAN (например, 192.168.2.101). Сейчас в .wslconfig есть режим bridged, но он помечен как устаревающий; Mirrored — путь по умолчанию для новых систем. Используйте бридж лишь при особых требованиях. (Microsoft Learn)
3.5 Интеграция с инструментами (IDE, БД‑клиенты, Docker)
- DB‑клиенты (DataGrip, MySQL Workbench): хост
192.168.2.100, порт3306(или другой, если сменён); не забудьте GRANT и bind‑address =0.0.0.0(см. § 2.4). - Dev‑серверы (Flask/Node): запускайте на
0.0.0.0. В Mirrored доступны из LAN по IP хоста; в NAT — по IP хоста через portproxy. (Microsoft Learn) - VS Code Remote WSL: прозрачно работает и не мешает сетевой схеме.
- Docker Desktop/WSL: опубликованные порты могут конфликтовать с Mirrored; следите за свободой портов (см. также известные проблемы в WSL Troubleshooting). (Microsoft Learn)
3.6 Мини‑безопасность для dev: UFW и Fail2Ban
- UFW (проще):
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80,443/tcp
# БД только для своей подсети:
sudo ufw allow from 192.168.2.0/24 to any port 3306 proto tcp
sudo ufw enable
- Fail2Ban:
sudo apt install -y fail2ban
sudo systemctl enable fail2ban --now
sudo fail2ban-client status
В Debian 12 jail [sshd] по умолчанию включён (файл /etc/fail2ban/jail.d/defaults-debian.conf). Если логи идут в journald, задайте backend = systemd либо установите rsyslog. (HowtoForge, Super User)
4. Руководство для администратора
Цель: детальные варианты сети, продвинутый автозапуск, политика брандмауэра и Fail2Ban, диагностика.
Мини‑оглавление раздела 4
4.1 Выбор сетевого режима · 4.2 Debian+systemd · 4.3 Сервисы · 4.4 MikroTik NAT/Firewall · 4.5 Автозапуск · 4.6 Сценарии · 4.7 Чек‑лист · 4.8 Безопасность · 4.9 Выводы
4.1 Выбор сетевого режима: NAT / Mirrored / Bridged
- NAT (дефолт): WSL имеет внутренний IP; доступ из LAN/Интернета делаем через netsh portproxy и DST‑NAT на MikroTik; плюс — предсказуемо, работает везде. (Microsoft Learn)
- Mirrored (Win 11 22H2+): WSL доступен напрямую из LAN через IP хоста; лучше совместимость с VPN, IPv6, multicast; правила Windows/Hyper‑V FW применяются и к WSL. Рекомендуется, если доступен. (Microsoft Learn)
- Bridged (устаревающий): отдельный IP WSL в LAN; используйте при строгих требованиях адресации/сегментации. (Microsoft Learn)
4.2 Установка/подготовка Debian 12 в WSL 2 + systemd
4.2.1 Установка компонентов Windows и Debian — см. § 2.2.
4.2.2 Включение systemd в WSL 2 (рекомендуется)
Внутри Debian от root:
# /etc/wsl.conf
[boot]
systemd=true
Перезапуск WSL: wsl --shutdown. Проверка: systemctl status (PID1 — systemd). Подробнее — официальная документация. (Microsoft Learn)
С включённым systemd используйте systemctl enable —now для
ssh,apache2/nginx,mariadb— тогда при старте дистрибутива службы поднимутся автоматом.
4.2.3 Службы и журналирование
- Если используете Fail2Ban, убедитесь, что он читает логи (
journaldили/var/log/auth.logпри установленномrsyslog). См. § 4.8.3.
4.3 Сервисы: OpenSSH, Apache/Nginx, MariaDB/MySQL
- OpenSSH:
sudo apt install openssh-server && sudo systemctl enable ssh --now. НастройтеPasswordAuthentication noи ключи;PermitRootLogin prohibit-password. - Web: Apache2 или Nginx, включить TLS (Let’s Encrypt). Проверьте, что 80/443 не заняты на Windows (особенно при Mirrored).
- MariaDB/MySQL:
bind-address=0.0.0.0+ профиль доступа (GRANT). Для интернета ограничивайте 3306 по источнику (Windows FW/MikroTik/ Linux‑FW).
4.4 MikroTik: DST‑NAT, Firewall и проверка
- NAT‑правила — см. § 2.5. Принцип:
dst-natна 192.168.2.100:порт. (MikroTik Help) - Firewall/Forward: разрешить new + dstnat и established, related; порядок правил важен. (В дефолте правило allow dst‑nat обычно имеется; подтвердите на своей конфигурации.) (MikroTik community forum)
- Проверка с роутера:
/tool fetch url="http://192.168.2.100" output=none
/tool telnet 192.168.2.100 22
4.5 Полный автозапуск WSL и служб
Подход 1 (рекомендуется): systemd‑автостарт + запуск WSL через Планировщик
- В Debian:
sudo systemctl enable ssh
sudo systemctl enable apache2 # или nginx
sudo systemctl enable mariadb
- В Windows Task Scheduler:
- Триггер: «При запуске» или «При входе».
- Действие:
wsl -d Debian --exec /bin/true
WSL стартует, systemd поднимет службы — VM останется активной.
Подход 2: если systemd не используется — стартуйте службы в аргументе wsl, например:wsl -d Debian -u root -- bash -lc "service ssh start && service apache2 start && service mysql start"
4.6 Дополнительные сценарии
- Только LAN, без интернета: не делайте NAT на MikroTik; доступ по
192.168.2.100в LAN уже работает (portproxy/Mirrored). - Динамический WAN‑IP: используйте Dynamic DNS на MikroTik (IP Cloud/DDNS) вместо «голого» IP.
- Несколько сервисов/дистрибутивов: следите за конфликтами портов (особенно в Mirrored); при NAT можно публиковать разные внешние порты → разные внутренние.
4.7 Тестирование и отладка (чек‑лист)
- IP‑адреса: Windows
192.168.2.100; WSL IP (для NAT) —hostname -I. - Порты на Windows:
netsh interface portproxy show all
netstat -ano | findstr ":22\|:80\|:443\|:3306"
- С LAN/Internet:
telnet <WAN_IP> 22, браузер наhttp(s)://<WAN_IP>. - MikroTik: лог NAT/Connections,
torchна WAN. - Fail2Ban:
sudo fail2ban-client status sshd(unban при необходимости). - WSL Settings: при Mirrored убедитесь, что Hyper‑V Firewall и Windows FW разрешают порты (см. § 3.3). (Microsoft Learn)
4.8 Безопасность: Windows FW, UFW/nftables, Fail2Ban
4.8.1 Windows Firewall (глобально для Mirrored/portproxy)
Создайте Inbound‑правила для 22/80/443/3306, при возможности ограничьте Remote IP (например, 3306 — только доверенные сети). Командлет: New‑NetFirewallRule. (Microsoft Learn)
4.8.2 Linux‑Firewall (UFW/nftables)
- UFW — см. § 3.6.
- nftables (пример идеи):
table inet filter {
chain input {
type filter hook input priority 0;
ct state established,related accept
tcp dport {22,80,443} accept
ip saddr 192.168.2.0/24 tcp dport 3306 accept
tcp dport 3306 drop
iifname "eth0" drop
}
}
4.8.3 Fail2Ban
- Установка/запуск:
sudo apt install -y fail2ban && sudo systemctl enable --now fail2ban. - В Debian 12 ssh‑jail включен по умолчанию; для других сервисов включайте jails в
/etc/fail2ban/jail.d/*.conf. Если логи в journald, укажитеbackend = systemdили поставьте rsyslog. (HowtoForge, Super User) - Базовые команды:
sudo fail2ban-client status
sudo fail2ban-client status sshd
sudo fail2ban-client set sshd unbanip <IP>
4.8.4 Рекомендации
- SSH‑ключи и
PasswordAuthentication no. - По возможности не публикуйте 3306 в интернет; лучше — VPN или SSH‑туннель.
- Обновления Debian/Windows и регулярный обзор логов.
4.9 Выводы
- Для среды Windows 11 + WSL2 оптимальны два проверенных пути:
(A) NAT + portproxy (универсально) или (B) Mirrored Networking (минимум возни, нативная поддержка). (Microsoft Learn) - Проброс на MikroTik (DST‑NAT) и грамотные правила Firewall обеспечивают доступность и безопасность. (MikroTik Help)
- systemd в WSL упрощает автозапуск. (Microsoft Learn)
5. Глоссарий терминов
Ниже — термины со ссылками, используемыми в тексте; по сноске можно вернуться к первому упоминанию.
- WSL — Windows Subsystem for Linux: подсистема Windows для запуска Linux. В WSL 2 используется лёгкая VM на базе Hyper‑V; по умолчанию сеть — NAT. См. § 1, § 2.2. (Microsoft Learn)
- Mirrored Networking — новый режим сети WSL 2 (Win 11 22H2+): доступ к WSL напрямую из LAN,
localhostмежду Windows⇄WSL, поддержка IPv6/VPN/multicast. См. § 3.3. (Microsoft Learn) - Bridged — режим, при котором VM получает отдельный IP в LAN. Для WSL помечен как устаревающий в
.wslconfig. См. § 3.4. (Microsoft Learn) - NAT — трансляция сетевых адресов; в WSL 2 базовый режим сети; на MikroTik используется dst‑nat для проброса портов. См. § 2.3, § 2.5. (Microsoft Learn, MikroTik Help)
- portproxy — механизм Windows (
netsh interface portproxy) для проксирования порта хоста на IP/порт в WSL; рекомендуетсяlistenaddress=0.0.0.0. См. § 2.3, § 3.2. (Microsoft Learn, Stack Overflow) - MikroTik/RouterOS — ОС маршрутизаторов MikroTik; DST‑NAT для проброса портов, настройки через WebFig/WinBox/CLI. См. § 2.5, § 4.4. (MikroTik Help)
- SSH — протокол удалённого доступа (порт 22). См. § 2.4, § 4.3, § 4.8.
- HTTP/HTTPS — веб‑протоколы (80/443). См. § 2.4, § 4.3.
- MySQL/MariaDB — СУБД (порт 3306), bind‑address — адрес интерфейса для прослушивания. См. § 2.4, § 4.3.
- Firewall — брандмауэр (Windows Defender, Hyper‑V FW для WSL, а также UFW/nftables в Linux). См. § 2.3, § 3.3, § 4.8. (Microsoft Learn)
- Fail2Ban — защита от брутфорса по логам; в Debian 12 ssh‑jail включён по умолчанию. См. § 3.6, § 4.8.3. (HowtoForge)
- systemd — менеджер служб; в WSL 2 включается через
/etc/wsl.conf([boot] systemd=true). См. § 2.6, § 4.2, § 4.5. (Microsoft Learn)
Ссылки на официальные источники и справку
- WSL Networking (Microsoft Learn) — NAT,
portproxy, Mirrored, Hyper‑V FW. (Microsoft Learn) - .wslconfig / wsl.conf (Microsoft Learn) — параметры, режимы сети (в т. ч.
mirrored,bridged— deprecated), включение systemd. (Microsoft Learn) - Systemd в WSL (Microsoft Learn) — как включить и проверить. (Microsoft Learn)
- netsh portproxy (Microsoft Docs) — справка по командам. (Microsoft Learn)
- MikroTik NAT / Port Forwarding — официальные KB‑материалы. (MikroTik Help)
- Fail2Ban в Debian 12 — включённый по умолчанию ssh‑jail и основные замечания. (HowtoForge)