Заметки · 07.06.2022

Проброс портов в Windows

Данный метод проброса портов мною применялся для вывода виртуальной машины с веб-приложением в Интернет. Схема была проста: сервер Hyper-V, две активные сетевые карты, из которых одна смотрела наружу с белым IP, а вторая в локальную сеть. Виртуальный коммутатор пробрасывал IP адреса из локальной сети.

Простейшую переадресацию можно осуществить через стандартную программу — netsh. Программа имеет простой синтаксис и широкий функционал. Вызов программы работает и через cmd, и через powershell.

Подробнее о netsh можно почитать здесь и здесь.

Итак, для начала посмотрим все правила переадресации, которые сейчас активны:

netsh interface portproxy show all 

Если требуется удалить все правила — вводим команду:

netsh interface portproxy reset 

Теперь задаем правило проброса:

netsh interface portproxy add v4tov4 listenport=8080 connectport=8080 connectaddress=192.168.1.150 protocol=tcp

Поясню, что именно и за что конкретно отвечает в этом правиле:

  • add v4tov4 — параметр добавления правила для IPv4;
  • listenport=8080 — порт, который должен прослушиваться;
  • connectport=8080 — порт для подключения к машине;
  • connectaddress=192.168.1.150 — адрес машины, на которую нужно пробросить порт 8080;
  • protocol=tcp — протокол.

После активации правила — можно сразу же проверять работоспособность. При обращении к URL по внешнему белому IP порт 8080 (к примеру) будет пробрасываться до порта 8080 на машине со внутренним IP адресом 192.168.1.150.

Важно не забыть поработать с брандмауэром, чтобы не было открыто лишних портов. Разумеется, первым делом нужно закрывать порты служб удалённого доступа, например — 3389 (rdp), 22 (ssh), 21 (ftp) и 23 (telnet), если, конечно, они Вам не нужны.