Данный метод проброса портов мною применялся для вывода виртуальной машины с веб-приложением в Интернет. Схема была проста: сервер Hyper-V, две активные сетевые карты, из которых одна смотрела наружу с белым IP, а вторая в локальную сеть. Виртуальный коммутатор пробрасывал IP адреса из локальной сети.
Простейшую переадресацию можно осуществить через стандартную программу — netsh. Программа имеет простой синтаксис и широкий функционал. Вызов программы работает и через cmd, и через powershell.
Итак, для начала посмотрим все правила переадресации, которые сейчас активны:
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), если, конечно, они Вам не нужны.