Как пробросить порты с wsl в windows 10?
Всем привет. Извеняюсь, может не корректно задаю вопрос. Постараюсь описать проблему не задуривая голову.
Я web-develop и я разрабатываю в OS Windows 10(т.е. код + компиляция + просмотр в браузере). Мой сайт находится по аддресу 127.0.0.1:3000 + апи тоже находится по этому же адресу. Возникла задача изменить 127.0.0.1:3000 на 127.0.0.1.
Я установил nginx в винде настроил конфиг proxy - все работает отлично. Но сам nginx в windows реализован плохо. тяжело с ним взаимодействовать (писать команды только из папки где он установлен). В таск менеджере бываеют клоны nginx процессов.
Я решил попробовать wsl. nginx там стал отлично и корректно работает. но 127.0.0.1:3000 на 127.0.0.1 я не смог изменить. Я так понимаю из за проброски портов? в винде при запуске 127.0.0.1 - 502 ошибка. Т.е. получается nginx работает.
Дополнительно:
1. loopback ip адрес 127.0.0.1 в WSL и Windows - это разные сущности.
2. У WSL есть ограничения в виде невозможности работы с другим vswitch от Hyper-V, только со своим.
Перенесите ваш nginx в виртуальную машину Hyper-V или в контейнер Docker Desktop.
Ответы:
Вообще на локальную систему из wsl порты пробросить можно, делается это так, пример с 80 портом:
netsh interface portproxy add v4tov4 listenaddress=192.168.13.17 listenport=8080 connectaddress=172.23.53.217 connectport=80 |
netsh interface portproxy add v4tov4 listenaddress=192.168.13.17 listenport=8080 connectaddress=172.23.53.217 connectport=80
Важно, чтобы пробрасываемые порты на самой системе не были заняты.
- А как из локальной системы на wsl прокинуть маршруты? после подключения к vpn из windows в wsl адреса не резолвятся, не пингуются
Но сам nginx в windows реализован плохо. тяжело с ним взаимодействовать (писать команды только из папки где он установлен)
добавить эту папку в PATH, не?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для проброса портов с WSL (Windows Subsystem for Linux) в Windows 10 вам потребуется выполнить несколько шагов. Ниже приведены инструкции по настройке проброса портов для различных типов сетей.
1. **Проверьте, что WSL установлен и работает**: Убедитесь, что WSL установлен на вашем компьютере и работает корректно. Для этого запустите командную строку и введите `wsl`. Если вы видите приглашение для ввода команд в Linux-среде, значит WSL работает.
2. **Определите IP-адрес WSL**: В командной строке введите `ip addr show eth0`. Вы увидите информацию об IP-адресе вашего WSL. Обычно это будет адрес вида `172.X.X.X`.
3. **Проброс портов для локальной сети**:
- Откройте файл настроек WSL, который находится по пути `C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\etc\ssh\sshd_config` в блокноте или любом другом текстовом редакторе.
- Раскомментируйте строку `#Port 22` и замените `22` на нужный вам порт, например, `2222`.
- Добавьте следующую строку в конец файла: `GatewayPorts yes`.
- Сохраните файл и перезапустите службу SSH в WSL, введя команду `sudo service ssh --full-restart`.
4. **Проброс портов для удаленного доступа**:
- Откройте файл настроек SSH на Windows, который находится по пути `C:\ProgramData\ssh\sshd_config`.
- Добавьте следующие строки в конец файла:
```
Match Address 0.0.0.0/0
GatewayPorts yes
```
- Перезапустите службу SSH на Windows, введя команду `Restart-Service sshd`.
5. **Проверьте настройки брандмауэра**: Убедитесь, что порт, который вы пробрасываете, разрешен в настройках брандмауэра Windows.
Теперь вы должны иметь возможность подключаться к порту WSL извне. Например, если вы пробросили порт 2222, вы можете подключиться к WSL из командной строки Windows, используя команду `ssh username@172.X.X.X -p 2222`.
Надеюсь, эта инструкция поможет вам успешно пробросить порты с WSL в Windows 10. Если у вас возникли дополнительные вопросы, не стесняйтесь задавать их.