Во всех версиях Windows вы можете настроить перенаправление/проброс сетевых портов (порт форвардинг) без использования сторонних инструментов. С помощью правила форвардинга вы можете перенаправить входящее TCP соединение (IPv4 или IPv6) с локального TCP порта на любой другой номер порта или даже на порт удаленного компьютера. Перенаправление портов в Windows чаще всего используется для обхода файерволов или чтобы спрятать сервер или службу от внешней сети (NAT/PAT).
В Linux можно довольно просто настроить перенаправление портов довольно просто с помощью правил iptables или firewalld. На серверных системах Windows Server для настройки перенаправления портов можно использовать службу маршрутизации и удаленного доступа (RRAS). Однако есть более простой способ настройки проброса портов с помощью режима
portproxy
в
netsh
, который одинаково хорошо работает в любой версии Windows (начиная с Windows XP и заканчивая современными Windows 11 и Windows Server 2022).
Содержание:
- Включить перенаправления порта в Windows с помощью netsh portproxy
- Настройка правил файервола для режима перенаправления портов Windows
- Управление правилами проброса портов netsh в Windows
- Настройка перенаправления портов с помощью NAT на Hyper-V Server
Включить перенаправления порта в Windows с помощью netsh portproxy
Вы можете включить и настроить перенаправление портов в Windows из командой строки через режим Portproxy команды Netsh.
Синтаксис команды следующий:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
где,
- listenaddress – локальный IP адрес, на котором ожидается соединение (полезно, если у вас несколько сетевых карт в разных подсетях/VLAN или несколько IP адресов на одном интерфейсе);
- listenport – номер локального TCP порта, подключение к которому будет перенаправляться (на этом порту ожидается входящее соединение);
- connectaddress – локальный или удаленный IP-адрес или DNS-имя хоста, на который нужно перенаправить сетевое подключение;
- connectport – номер TCP порта, на который нужно перенаправить трафик с порта listenport.
С помощью опций
netsh interface portproxy add
v4tov6
/
v6tov4
/
v6tov6
можно создавать правила порт форвардинга между для IPv4 и IPv6 адресов илимежду ними.
Допустим наша задача, заставить службу RDP отвечать на нестандартном порту, например 3340 (этот порт, конечно, можно изменить в настройках самой службы, но мы используем именно RDP для упрощения демонстрации техники перенаправления и проброса портов). Для этого нам нужно перенаправить входящий трафик на TCP порт 3340 на другой локальный порт – 3389 (это номер стандартного порта RDP).
Примечание. Обратите внимание, что номер локального порта, который вы указали в listenport не должен быть занят (слушаться) другой службой. Проверьте, что номер порта свободен командой:
netstat -na|find "3340"
Либо вы можете проверить что порт не слушается локально с помощью PowerShell командлета Test-NetConnection:
Test-NetConnection -ComputerName localhost -Port 3340
Чтобы создать правило перенаправления порта, запустите командную строку с правами администратора и выполните команду:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.10.1.110 connectport=3389 connectaddress=10.10.1.110
Где 10.10.1.110 – IP адрес вашего компьютера, на котором настраивается порт-форвардинг.
Теперь с помощью утилиты netstat проверьте, что в Windows теперь слушается локальный порт 3340:
netstat -ano | findstr :3340
Примечание. Если эта команда ничего не возвращает и перенаправление портов через netsh interface portproxy не работает, проверьте, что у вас в Windows включена служба iphlpsvc (IP Helper / Вспомогательная служба IP).
Проверьте состояние службу в консоли services.msc или с помощью команды PowerShell:
Get-Service iphlpsvc
Также на сетевом интерфейсе, для которого создается правило перенаправления портов должна быть включена поддержка протокола IPv6.
Это обязательные условия для корректной работы порт-форвардинга. Без службы IP Helper и без включенной поддержки IPv6 механизм перенаправления не работает.
В Windows Server 2003 / XP для работы перенаправления дополнительно нужно включить параметр реестра IPEnableRouter = 1 в ветке HKEY_LOCAL_MACHINE\ System\CurrentControlSet\services\Tcpip\Parameter. Можно включить этот параметр реестра с помощью PowerShell:
Set-ItemProperty -Path HKLM:\system\CurrentControlSet\services\Tcpip\Parameters -Name IpEnableRouter -Value 1
Этот параметр также позволяет включить маршрутизацию между разными подсетями в Hyper-V.
Вы можете определить процесс, который слушает указанный локальный порт по его PID (в нашем примере PID – 636):
tasklist | findstr 636
Теперь попробуйте подключиться на новый порт с удаленного компьютера при помощи любого RDP клиента. В качестве rdp-порта нужно указать 3340 (номер порта указывается после двоеточия после адреса rdp-сервера). Hапример, ,
10.10.1.110:3340
В этом примере порт 3340 нужно предварительно открыть в Windows Defender Firewall (см. следующий раздел статьи).
RDP подключение должно успешно установиться.
Правила проброса портов portproxy являются постоянными и не удаляются при перезагрузке Windows. Эти правила хранятся в реестре. Можно вывести список правил перенаправления netsh в реестре с помощью PowerShell:
Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\PortProxy\v4tov4\tcp
Если нужно перенаправить входящее TCP соединение на удаленный компьютер, используйте такую команду:
netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.1.100
Это правило перенаправит весь входящий RDP трафик (с локального порта TCP 3389) с этого компьютера на удаленный компьютер с IP-адресом 192.168.1.100.
Нужно отметить, что режим portproxy в Windows не поддерживает сохранения IP источника в перенаправленном сетевом пакете. Т.е. если вы пробросите 443 порт Windows компьютера на внутренний веб-сервер, то на целевом сервере все входящие соединения будут идти с одного и того же IP адреса (Windows компьютер с активным режимом netsh portproxy). Если вам нужно использовать переадресацию с сохранением IP источника, нужно использовать NAT на внешнем фаейволе или на Hyper-V (описано ниже).
Так же для проброса локального порта на удаленный сервер в Windows можно использовать технику SSH туннелей.
Настройка правил файервола для режима перенаправления портов Windows
Проверьте, что в настройках вашего файервола (брандмауэра Windows или стороннего межсетевого экрана, такие часто включаются в состав антивирусного ПО) разрешены входящие подключения на новый порт. Вы можете добавить новое разрешающее правило в Windows Defender Firewall командой:
netsh advfirewall firewall add rule name=”RDP_3340” protocol=TCP dir=in localip=10.10.1.110 localport=3340 action=allow
Или с помощью командлета PowerShell New-NetFirewallRule:
New-NetFirewallRule -DisplayName "RDP_3340" -Direction Inbound -Protocol TCP –LocalPort 3340 -Action Allow -Enabled True
При создании входящего правила файервола для порта 3340 через графический интерфейс Windows Defender, не нужно ассоциировать с правилом программу или процесс. Данный порт слушается исключительно сетевым драйвером.
Если вы отключаете правило portproxy, не забудьте удалить оставшиеся правила файервола так:
netsh advfirewall firewall del rule name="RDP_3340"
или с помощью PowerShell:
Remove-NetFirewallRule -Name RDP_3340
Управление правилами проброса портов netsh в Windows
Можно создать любое количество правил перенаправления локальных портов Windows. Все правила netsh interface portproxy являются постоянными и сохраняются в системе после перезагрузки Windows.
Несколько раз сталкивался со случаями, когда в Windows Server 2012 R2 правила перенаправления портов сбрасывались после перезагрузки сервера. В этом случае рекомендуется проверить нет ли периодических отключений на сетевом интерфейсе, и не меняется ли IP адрес при загрузке ОС (лучше использоваться статический IP, вместо динамического DHCP). В качестве обходного решения пришлось добавить в планировщик Windows скрипт с правилами
netsh interface portproxy
, который создает правило перенаправления порта при загрузке операционной системы.
Чтобы вывести на экран список всех активных правил перенаправления TCP портов в Windows, выполните команду:
netsh interface portproxy show all
В нашем случае присутствует только одно правило форвардинга с локального порта 3340 на 3389:
Listen on ipv4: Connect to ipv4: Address Port Address Port --------------- ---------- --------------- ---------- 10.10.1.110 3340 10.10.1.110 3389
Совет. Также вы можете вывести вес правила перенаправления портов в режиме portproxy так:
netsh interface portproxy dump
#======================== # Port Proxy configuration #======================== pushd interface portproxy reset add v4tov4 listenport=3340 connectaddress=10.10.1.110 connectport=3389 popd # End of Port Proxy configuration
Если вам нужно изменить настройки имеющегося правила portproxy, используйте такую команду:
netsh interface portproxy set v4tov4 listenport=3340 listenaddress=10.10.1.110 connectport=3300 connectaddress=10.10.1.110
В этом примере мы изменили адрес целевого порта portproxy на 3300.
Чтобы удалить определенное правило перенаправления порта, выполните:
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.10.1.110
Чтобы удалить все имеющиеся правила перенаправления и полностью очистить таблицу с правилами порт-форвардинга:
netsh interface portproxy reset
Важно. Такая схема перенаправления работает только для TCP портов. Трафик по UDP портам нельзя перенаправить с помощью режима portproxy. Также нельзя использовать в качестве connectaddress адрес localhost 127.0.0.1.
Если вы хотите включить перенаправление UDP трафика, можно использовать Windows Server с ролью RRAS и NAT. Вы можете настроить перенаправление портов между интерфейсами компьютера с помощью графической оснастки (
rrasmgmt.msc
) или командой:
netsh routing ip nat add portmapping Ethernet udp 0.0.0.0 53 192.168.1.54 53
Список NAT правил перенаправления портов в Windows Server можно вывести так:
netsh routing ip nat show interface
Если у вас на компьютере развернут WSL (Windows Subsystem for Linux), вы можете создать простой PowerShell скрипт создания правила перенаправления порта внутрь виртуальной машины WSL 2 (у ВМ на WSL 2 есть собственный виртуальный адаптер ethernet с уникальным IP адресом):
wsl --shutdown;
netsh interface portproxy reset;
$wsl_ipaddr = wsl -d Ubuntu-20.04 hostname -I;
netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=$wsl_ipaddr ;
netsh interface portproxy show all;
exit;
Еще одной неявной возможностью portproxy является возможность создать видимость локальной работы любого удаленного сетевого сервиса. Например, вы хотите перенаправить весь трафик с локального порта 9090 на
google.com:443
netsh interface portproxy add v4tov4 listenport=9090 listenaddress=127.0.0.1 connectaddress=142.250.74.46 connectport=443 protocol=tcp
Теперь, если в браузере перейди по адресу https://localhost:9090 (нужно игнорировать ошибки SSL_ERROR_BAD_CERT_DOMAIN), откроется поисковая страница Google. Т.е. несмотря на то, что браузер обращается к локальному компьютеру, в нем открывается страница с внешнего веб-сервера.
Перенаправление портов также можно использовать, чтобы пробросить порт с внешнего IP адреса сетевой карты на порт виртуальной машины, запущенной на этом же компьютере. В Hyper-V такой проброс порта можно настроить на виртуальном коммутатор (см. ниже).
Windows не умеет пробрасывать диапазон TCP портов. Если вам нужно пробросить несколько портов, придется вручную создавать несколько правил перенаправления.
Настройка перенаправления портов с помощью NAT на Hyper-V Server
При использовании на вашем компьютере роли Hyper-V (может быть установлена как на Windows 10/11, так и на Windows Server или в виде бесплатного Windows Hyper-V Server), вы можете настроит проброс портов DNAT с помощью PowerShell. Допустим, вы хотите перенаправить все https запросы, которые получает ваш хост Hyper-V на IP адрес запущенной на хосте виртуальной машины. Для этого используется команды Hyper-V StaticMapping.
Создайте виртуальный коммутатор Hyper-V:
New-VMSwitch -SwitchName «NAT_Switch» -SwitchType Internal
Задайте IP адрес для нового виртуального коммутатора:
New-NetIPAddress -IPAddress 192.168.10.1 -PrefixLength 24 -InterfaceAlias "vEthernet (NAT_Switch)"
Включите NAT для данной сети:
New-NetNat -Name NATNetwork -InternalIPInterfaceAddressPrefix 192.168.10.0/24
Подключите ВМ в ваш коммутатор NAT_Switch и задайте для нее статический IP адрес (например, 192.168.10.80). В качестве шлюза-по умолчанию нужно указать IP адрес виртуального коммутатора Hyper-V (192.168.10.1).
Теперь можно настроить перенаправление порта с хоста Hyper-V в виртуальную машину:
Add-NetNatStaticMapping -NatName NATNetwork443 -Protocol TCP -ExternalIPAddress 0.0.0.0/24 -ExternalPort 443 -InternalIPAddress 192.168.10.80 -InternalPort 443
После выполнения этих команд весь HTTPS трафик, который приходит на порт TCP/443 гипервизора будет переправлен на серый IP адрес виртуальной машины.
Если вы хотите перенаправить нестандартный порт, не забудьте открыть его в Windows Firewall:
New-NetFirewallRule -DisplayName "HyperV_Nat_443" -Direction Inbound -LocalPort 443 -Protocol TCP -Action Allow -Enabled True
Полный список правил NAT на хосте Hyper-V можно вывести так:
Get-NetNat
Привет, недавно столкнулся с ситуацией — есть выделенный сервер, на сервер установлен Hyper-V, провайдер выдает один белый IP на сервер. Обратились ко мне с вопросом — как можно сделать так, что бы не покупая дополнительные адреса, на создаваемых на сервере виртуальных машинах работал интернет.
В случае, например с VirtualBox вопрос решается подключением виртуальной машины к сети с типом NAT, но как же быть с Hyper-V, в нем нельзя подключить виртуальный свитч к сети NAT.
Ответ очевиден — нужно подключить свитч к внутренней сети, и с него трафик натить через физический порт. Сделать это совсем не сложно.
Ниже я расскажу как можно настроить NAT на Windows Server 2016 через PowerShell, а так же как можно настроить NAT на более старых версиях ОС Windows, через RRAS (к слову и на Windows Server 2016, через RRAS то же можно делать).
Начнем с более предпочтительного и простого способа — через PowerShell, но он для Windows 2016 и Windows 10 (к слову эти же команды должны работать и на более старых версях Windows, при условии, что будет установлен PowerShell 5, но я не проверял, кто проверит, отпишитесь в комментариях).
#Добавляем виртуальный свитч New-VMSwitch -name NAT -SwitchType Internal #Добавляем NAT New-NetNat -Name LocalNat -InternalIPInterfaceAddressPrefix "10.0.0.0/24" #Назначем адрес виртуальному свитчу Get-NetAdapter "vEthernet (NAT)" | New-NetIPAddress ` -IPAddress 10.0.0.1 -AddressFamily IPv4 -PrefixLength 24 #Делаем проброс портов Add-NetNatStaticMapping -NatName NATnetwork -Protocol TCP ` -ExternalIPAddress 0.0.0.0 -InternalIPAddress 10.0.0.2 ` -InternalPort 22 -ExternalPort 50022 #Посмотреть текущие пробросы портов можной командой: Get-NetNatStaticMapping #Как и список сетей NAT Get-NetNat #Такими командами это хозяйство можно удалить Remove-NetNatStaticMapping -StaticMappingID 0 Remove-NetNat -Name LocalNat
Теперь опишу способ, как можно сделать NAT, который работает практически на всех версиях винды (на 2003, 2008, 2012 и 2016 соответсвенно), будем делать NAT через RRAS.
Сперва нужно поставить роль RAS, для этого заходим в диспетчер сервера, жмем управление и выбираем — добавить роли и компоненты.
В мастере добавления ролей, в ролях сервера, выбираем Удаленный доступ.
В службах ролей удаленного доступа, выбираем маршрутизация,
и добавляем необходимые компоненты.
После завершения установки, перезагружаем сервер, возвращаемся в диспетчер сервера и выбираем: средства — маршрутизация и удаленный доступ.
Щелкаем правой кнопкой по нашему серверу и выбираем — настроить маршрутизацию и удаленный доступ.
На втором шаге мастера настройки сервера маршрутизации и удаленного доступа, выбираем — преобразование сетевых адресов (NAT).
Дальше выбираем сетевой интерфейс, который подключен к интернету.
На этом настройка NAT на Windows Server 2016 закончена, вернемся в консоль управления RRAS, развернем наш сервер, перейдем в IPv4, и зайдем в преобразование сетевых адресов.
Здесь можно посмотреть свойства сетевых интерфейсов. Например для внутреннего свойства выглядят так:
А для внешнего так:
Здесь же можно сделать проброс портов, например, сделаю проброс ssh до виртуальной машины. Заходим в службы и порты и жмем добавить,
Здесь указываем понятное имя службы, входящий порт (порт по которому нужно ломиться на сервер), адрес сервера к которому пробрасываем порт, и порт сервера.
Всё порт проброшен. Можно пробовать подключиться.
Во всех версиях Windows вы можете настроить перенаправление/проброс сетевых портов (порт форвардинг) без использования сторонних инструментов. С помощью правила форвардинга вы можете перенаправить входящее TCP соединение (IPv4 или IPv6) с локального TCP порта на любой другой номер порта или даже на порт удаленного компьютера. Перенаправление портов в Windows чаще всего используется для обхода файерволов или чтобы спрятать сервер или службу от внешней сети (NAT/PAT).
В Linux можно довольно просто настроить перенаправление портов довольно просто с помощью правил iptables или firewalld. На серверных системах Windows Server для настройки перенаправления портов можно использовать службу маршрутизации и удаленного доступа (RRAS). Однако есть более простой способ настройки проброса портов с помощью режима
portproxy
в
netsh
, который одинаково хорошо работает в любой версии Windows (начиная с Windows XP и заканчивая современными Windows 11 и Windows Server 2022).
Содержание:
- Включить перенаправления порта в Windows с помощью netsh portproxy
- Настройка правил файервола для режима перенаправления портов Windows
- Управление правилами проброса портов netsh в Windows
- Настройка перенаправления портов с помощью NAT на Hyper-V Server
Включить перенаправления порта в Windows с помощью netsh portproxy
Вы можете включить и настроить перенаправление портов в Windows из командой строки через режим Portproxy команды Netsh.
Синтаксис команды следующий:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
где,
- listenaddress – локальный IP адрес, на котором ожидается соединение (полезно, если у вас несколько сетевых карт в разных подсетях/VLAN или несколько IP адресов на одном интерфейсе);
- listenport – номер локального TCP порта, подключение к которому будет перенаправляться (на этом порту ожидается входящее соединение);
- connectaddress – локальный или удаленный IP-адрес или DNS-имя хоста, на который нужно перенаправить сетевое подключение;
- connectport – номер TCP порта, на который нужно перенаправить трафик с порта listenport.
С помощью опций
netsh interface portproxy add
v4tov6
/
v6tov4
/
v6tov6
можно создавать правила порт форвардинга между для IPv4 и IPv6 адресов илимежду ними.
Допустим наша задача, заставить службу RDP отвечать на нестандартном порту, например 3340 (этот порт, конечно, можно изменить в настройках самой службы, но мы используем именно RDP для упрощения демонстрации техники перенаправления и проброса портов). Для этого нам нужно перенаправить входящий трафик на TCP порт 3340 на другой локальный порт – 3389 (это номер стандартного порта RDP).
Примечание. Обратите внимание, что номер локального порта, который вы указали в listenport не должен быть занят (слушаться) другой службой. Проверьте, что номер порта свободен командой:
netstat -na|find "3340"
Либо вы можете проверить что порт не слушается локально с помощью PowerShell командлета Test-NetConnection:
Test-NetConnection -ComputerName localhost -Port 3340
Чтобы создать правило перенаправления порта, запустите командную строку с правами администратора и выполните команду:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.10.1.110 connectport=3389 connectaddress=10.10.1.110
Где 10.10.1.110 – IP адрес вашего компьютера, на котором настраивается порт-форвардинг.
Теперь с помощью утилиты netstat проверьте, что в Windows теперь слушается локальный порт 3340:
netstat -ano | findstr :3340
Примечание. Если эта команда ничего не возвращает и перенаправление портов через netsh interface portproxy не работает, проверьте, что у вас в Windows включена служба iphlpsvc (IP Helper / Вспомогательная служба IP).
Проверьте состояние службу в консоли services.msc или с помощью команды PowerShell:
Get-Service iphlpsvc
Также на сетевом интерфейсе, для которого создается правило перенаправления портов должна быть включена поддержка протокола IPv6.
Это обязательные условия для корректной работы порт-форвардинга. Без службы IP Helper и без включенной поддержки IPv6 механизм перенаправления не работает.
В Windows Server 2003 / XP для работы перенаправления дополнительно нужно включить параметр реестра IPEnableRouter = 1 в ветке HKEY_LOCAL_MACHINE SystemCurrentControlSetservicesTcpipParameter. Можно включить этот параметр реестра с помощью PowerShell:
Set-ItemProperty -Path HKLM:systemCurrentControlSetservicesTcpipParameters -Name IpEnableRouter -Value 1
Этот параметр также позволяет включить маршрутизацию между разными подсетями в Hyper-V.
Вы можете определить процесс, который слушает указанный локальный порт по его PID (в нашем примере PID – 636):
tasklist | findstr 636
Теперь попробуйте подключиться на новый порт с удаленного компьютера при помощи любого RDP клиента. В качестве rdp-порта нужно указать 3340 (номер порта указывается после двоеточия после адреса rdp-сервера). Hапример, ,
10.10.1.110:3340
В этом примере порт 3340 нужно предварительно открыть в Windows Defender Firewall (см. следующий раздел статьи).
RDP подключение должно успешно установиться.
Правила проброса портов portproxy являются постоянными и не удаляются при перезагрузке Windows. Эти правила хранятся в реестре. Можно вывести список правил перенаправления netsh в реестре с помощью PowerShell:
Get-ItemProperty -Path HKLM:SYSTEMCurrentControlSetServicesPortProxyv4tov4tcp
Если нужно перенаправить входящее TCP соединение на удаленный компьютер, используйте такую команду:
netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.1.100
Это правило перенаправит весь входящий RDP трафик (с локального порта TCP 3389) с этого компьютера на удаленный компьютер с IP-адресом 192.168.1.100.
Нужно отметить, что режим portproxy в Windows не поддерживает сохранения IP источника в перенаправленном сетевом пакете. Т.е. если вы пробросите 443 порт Windows компьютера на внутренний веб-сервер, то на целевом сервере все входящие соединения будут идти с одного и того же IP адреса (Windows компьютер с активным режимом netsh portproxy). Если вам нужно использовать переадресацию с сохранением IP источника, нужно использовать NAT на внешнем фаейволе или на Hyper-V (описано ниже).
Так же для проброса локального порта на удаленный сервер в Windows можно использовать технику SSH туннелей.
Проверьте, что в настройках вашего файервола (брандмауэра Windows или стороннего межсетевого экрана, такие часто включаются в состав антивирусного ПО) разрешены входящие подключения на новый порт. Вы можете добавить новое разрешающее правило в Windows Defender Firewall командой:
netsh advfirewall firewall add rule name=”RDP_3340” protocol=TCP dir=in localip=10.10.1.110 localport=3340 action=allow
Или с помощью командлета PowerShell New-NetFirewallRule:
New-NetFirewallRule -DisplayName "RDP_3340" -Direction Inbound -Protocol TCP –LocalPort 3340 -Action Allow -Enabled True
При создании входящего правила файервола для порта 3340 через графический интерфейс Windows Defender, не нужно ассоциировать с правилом программу или процесс. Данный порт слушается исключительно сетевым драйвером.
Если вы отключаете правило portproxy, не забудьте удалить оставшиеся правила файервола так:
netsh advfirewall firewall del rule name="RDP_3340"
или с помощью PowerShell:
Remove-NetFirewallRule -Name RDP_3340
Управление правилами проброса портов netsh в Windows
Можно создать любое количество правил перенаправления локальных портов Windows. Все правила netsh interface portproxy являются постоянными и сохраняются в системе после перезагрузки Windows.
Несколько раз сталкивался со случаями, когда в Windows Server 2012 R2 правила перенаправления портов сбрасывались после перезагрузки сервера. В этом случае рекомендуется проверить нет ли периодических отключений на сетевом интерфейсе, и не меняется ли IP адрес при загрузке ОС (лучше использоваться статический IP, вместо динамического DHCP). В качестве обходного решения пришлось добавить в планировщик Windows скрипт с правилами
netsh interface portproxy
, который создает правило перенаправления порта при загрузке операционной системы.
Чтобы вывести на экран список всех активных правил перенаправления TCP портов в Windows, выполните команду:
netsh interface portproxy show all
В нашем случае присутствует только одно правило форвардинга с локального порта 3340 на 3389:
Listen on ipv4: Connect to ipv4: Address Port Address Port --------------- ---------- --------------- ---------- 10.10.1.110 3340 10.10.1.110 3389
Совет. Также вы можете вывести вес правила перенаправления портов в режиме portproxy так:
netsh interface portproxy dump
#======================== # Port Proxy configuration #======================== pushd interface portproxy reset add v4tov4 listenport=3340 connectaddress=10.10.1.110 connectport=3389 popd # End of Port Proxy configuration
Если вам нужно изменить настройки имеющегося правила portproxy, используйте такую команду:
netsh interface portproxy set v4tov4 listenport=3340 listenaddress=10.10.1.110 connectport=3300 connectaddress=10.10.1.110
В этом примере мы изменили адрес целевого порта portproxy на 3300.
Чтобы удалить определенное правило перенаправления порта, выполните:
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.10.1.110
Чтобы удалить все имеющиеся правила перенаправления и полностью очистить таблицу с правилами порт-форвардинга:
netsh interface portproxy reset
Важно. Такая схема перенаправления работает только для TCP портов. Трафик по UDP портам нельзя перенаправить с помощью режима portproxy. Также нельзя использовать в качестве connectaddress адрес localhost 127.0.0.1.
Если вы хотите включить перенаправление UDP трафика, можно использовать Windows Server с ролью RRAS и NAT. Вы можете настроить перенаправление портов между интерфейсами компьютера с помощью графической оснастки (
rrasmgmt.msc
) или командой:
netsh routing ip nat add portmapping Ethernet udp 0.0.0.0 53 192.168.1.54 53
Список NAT правил перенаправления портов в Windows Server можно вывести так:
netsh routing ip nat show interface
Если у вас на компьютере развернут WSL (Windows Subsystem for Linux), вы можете создать простой PowerShell скрипт создания правила перенаправления порта внутрь виртуальной машины WSL 2 (у ВМ на WSL 2 есть собственный виртуальный адаптер ethernet с уникальным IP адресом):
wsl --shutdown;
netsh interface portproxy reset;
$wsl_ipaddr = wsl -d Ubuntu-20.04 hostname -I;
netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=$wsl_ipaddr ;
netsh interface portproxy show all;
exit;
Еще одной неявной возможностью portproxy является возможность создать видимость локальной работы любого удаленного сетевого сервиса. Например, вы хотите перенаправить весь трафик с локального порта 9090 на
google.com:443
netsh interface portproxy add v4tov4 listenport=9090 listenaddress=127.0.0.1 connectaddress=142.250.74.46 connectport=443 protocol=tcp
Теперь, если в браузере перейди по адресу https://localhost:9090 (нужно игнорировать ошибки SSL_ERROR_BAD_CERT_DOMAIN), откроется поисковая страница Google. Т.е. несмотря на то, что браузер обращается к локальному компьютеру, в нем открывается страница с внешнего веб-сервера.
Перенаправление портов также можно использовать, чтобы пробросить порт с внешнего IP адреса сетевой карты на порт виртуальной машины, запущенной на этом же компьютере. В Hyper-V такой проброс порта можно настроить на виртуальном коммутатор (см. ниже).
Windows не умеет пробрасывать диапазон TCP портов. Если вам нужно пробросить несколько портов, придется вручную создавать несколько правил перенаправления.
Настройка перенаправления портов с помощью NAT на Hyper-V Server
При использовании на вашем компьютере роли Hyper-V (может быть установлена как на Windows 10/11, так и на Windows Server или в виде бесплатного Windows Hyper-V Server), вы можете настроит проброс портов DNAT с помощью PowerShell. Допустим, вы хотите перенаправить все https запросы, которые получает ваш хост Hyper-V на IP адрес запущенной на хосте виртуальной машины. Для этого используется команды Hyper-V StaticMapping.
Создайте виртуальный коммутатор Hyper-V:
New-VMSwitch -SwitchName «NAT_Switch» -SwitchType Internal
Задайте IP адрес для нового виртуального коммутатора:
New-NetIPAddress -IPAddress 192.168.10.1 -PrefixLength 24 -InterfaceAlias "vEthernet (NAT_Switch)"
Включите NAT для данной сети:
New-NetNat -Name NATNetwork -InternalIPInterfaceAddressPrefix 192.168.10.0/24
Подключите ВМ в ваш коммутатор NAT_Switch и задайте для нее статический IP адрес (например, 192.168.10.80). В качестве шлюза-по умолчанию нужно указать IP адрес виртуального коммутатора Hyper-V (192.168.10.1).
Теперь можно настроить перенаправление порта с хоста Hyper-V в виртуальную машину:
Add-NetNatStaticMapping -NatName NATNetwork443 -Protocol TCP -ExternalIPAddress 0.0.0.0/24 -ExternalPort 443 -InternalIPAddress 192.168.10.80 -InternalPort 443
После выполнения этих команд весь HTTPS трафик, который приходит на порт TCP/443 гипервизора будет переправлен на серый IP адрес виртуальной машины.
Если вы хотите перенаправить нестандартный порт, не забудьте открыть его в Windows Firewall:
New-NetFirewallRule -DisplayName "HyperV_Nat_443" -Direction Inbound -LocalPort 443 -Protocol TCP -Action Allow -Enabled True
Полный список правил NAT на хосте Hyper-V можно вывести так:
Get-NetNat
Необходимость проброса портов весьма часто встающая перед системным администратором задача. Обычно для этой цели используют службы маршрутизации и удаленного доступа (RRAS), но в ряде случаев использование данного инструмента избыточно. В тоже время немногие знают о такой службе как Portproxy, которая управляется из командной строки при помощи команд Netsh. Тем не менее данная служба позволяет справиться с поставленной задачей проще, быстрее и удобнее, чем инструменты графического интерфейса.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Часто можно услышать совершенно неверное утверждение, что в части сетевых настроек операционные системы Windows значительно уступают своим конкурентам (Linux и BSD). Отчасти такие суждения опираются на опыт администрирования стандартных ролей полностью игнорируя возможности командной строки.
Начиная с Windows Server 2003 в состав системы был в введена команда Netsh, которая позволяет гибко управлять сетевыми настройками компьютера. Обзор всех возможностей этой утилиты займет не одну статью, поэтому мы остановимся на командах Netsh для интерфейса Portproxy, позволяющих непосредственно решить нашу задачу.
Данный набор команд позволяет перенаправлять приходящие пакеты с IPv4 и IPv6 портов на любые IPv4 и IPv6 порты компьютера назначения в любых комбинациях. Единственное ограничение — portproxy может работать только с протоколом TCP, но в большинстве случаев этого достаточно.
Для добавления перенаправления используется команда add v4tov4 (если требуется перенаправление с IPv4 в IPv6 используйте v4tov6 и т.д.), полный синтаксис будет такой:
netsh interface portproxy add v4tov4 listenaddress=xxx.xxx.xxx.xxx listenport=nnn connectaddress=xxx.xxx.xxx.xxx connectport=nnn
где:
- listenaddress — локальный адрес на котором принимаются соединения
- listenport — локальный порт на котором принимаются соединения
- connectaddress — удаленный или локальный адрес на который перенаправляются соединения
- connectport — удаленный или локальный порт на который перенаправляются соединения
Для изменения уже существующего правила используется команда set v4tov4, которая имеет идентичный синтаксис, listenaddress и listenport — являются обязательными параметрами. Из необязательных параметров можно указывать только тот, который нужно изменить.
Для удаления правил используйте delete v4tov6 с указанием входящих адреса и порта:
netsh interface portproxy delete v4tov4 listenaddress=xxx.xxx.xxx.xxx listenport=nnn
Для просмотра существующих правил введите:
netsh interface portproxy show all
Вместо all допустимо указывать v4tov4 или v6tov4 и т.п. для просмотра только соответствующих правил.
Для сброса всех существующих правил используйте:
netsh interface portproxy reset
Чтобы не быть голословными рассмотрим практический случай использования portproxy в одной довольно непростой ситуации.
У одного нашего клиента имеется две аффилированных (т.е. принадлежащих одному владельцу) организации, имеющие разный вид деятельности и между собой не взаимодействующие. Одна из них находится в городе и не испытывает проблем с внешними коммуникациями. Вторая в сельской местности где доступен только среднего качества интернет, а о выделенном IP-адресе не может быть и речи.
Поэтому, когда встал вопрос организации удаленного доступа к сети второй организации с административными и контрольными целями, то было принято решение использовать для этого ресурсы первой организации, при этом внутренние сети обоих компаний не должны видеть друг друга и вообще иметь какой-либо доступ к ресурсам другой организации.
Кроме того, выяснилось, что обе сети имеют одинаковый диапазон IP-адресов, что делало маршрутизацию между ними в принципе крайне затруднительной. По условиям задачи требовалось обеспечить доступ к RDP (порт 3389) сервера SRV-2-1 и SSH (порт 22) сервера SRV-2-2 второй организации, для этого выделялся сервер SRV-1-1 первой компании, при этом, как можно увидеть из схемы ниже, сервера обоих компаний также имеют одинаковые внутренние адреса.
Между серверами был поднят VPN-туннель, и они видят друг друга по адресам VPN-сети (10.8.0.0), а дальше на выручку приходит portproxy. Так как порты 3389 и 22 соответствующие нужным службам уже использовались для целей администрирования первой компании, то мы выбрали для служб второй компании внешние порты 3390 и 22222, которые были проброшены с внешнего интерфейса роутера первой компании на сервер SRV-1-1 штатным образом.
Теперь нам надо перенаправить все соединения на эти порты в сеть второй компании, но там нам доступен только SRV-2-1 по VPN-адресу, поэтому направим пакеты туда, для чего создадим два правила:
netsh interface portproxy add v4tov4 listenport=3390 listenaddress=192.168.0.200 connectport=3389 connectaddress=10.8.0.2
netsh interface portproxy add v4tov4 listenport=22222 listenaddress=192.168.0.200 connectport=22222 connectaddress=10.8.0.2
Первое правило отправит все пакеты пришедшие на порт 3390 с адресом 192.168.0.200 (внутренний адрес SRV-1-1) в VPN-туннель серверу SRV-2-1, а так как он уже является целевым для службы RDP, то сразу меняем порт назначения на 3389. Первая часть задачи выполнена.
Второе правило отправит к SRV-2-1 все пакеты с порта 22222 (SSH), теперь нам надо научить этот сервер как правильно доставить их адресату. Для этого добавим уже этому серверу следующее правило:
netsh interface portproxy add v4tov4 listenport=22222 listenaddress=10.8.0.2 connectport=22 connectaddress=192.168.0.201
Согласно которому сервер SRV-2-1 в сети второй компании будет слушать порт 22222 на интерфейсе VPN-сети и передавать все полученные пакеты на порт 22 (SSH) сервера SRV-2-2.
Как видим мы весьма просто реализовали довольно сложную схему, так пакет к серверу SRV-2-2 проходит три промежуточных узла, но при этом мы не настраивали никакой маршрутизации и не устанавливали никакого дополнительного ПО и вообще обошлись минимальным вмешательством в инфраструктуру.
Дополнительные материалы
- Команды Netsh для интерфейса Portproxy
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
- Remove From My Forums
-
Вопрос
-
Добрый день!
Есть MS Server 2016 на нем поднят виртуальный сервер Hyper-V.
По RDP захожу на него с Win10 и не пробрасываются com-порты от устройств. По умолчанию на виртуальном сервере Hyper-V уже стоят com1 и com2. Как сделать проброс ? (Галочку «порты» на RDP конечно отмечаю)
Ответы
-
http://www.eterlogic.com/Products.VSPE.html
https://infostart.ru/public/620353/
https://www.hw-group.com/software/hw-vsp3-virtual-serial-port
-
Помечено в качестве ответа
4 ноября 2019 г. 7:14
-
Помечено в качестве ответа
Обновлено 23.01.2020
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в России. В прошлый раз мы с вами разобрали замечательную утилиту Remote Desktop Connection Manager для удобного администрирования и подключения к серверам по RDP. В сегодняшней публикации я хочу вас научить более рационально использовать ваш терминальный сервер и покажу, как в рамках одного сервера иметь несколько независимых RDP портов подключения и применяя разные настройки на них.
Принцип изолированного терминального сервера
Удаленный рабочий стол отлично подходит для подключения к компьютеру или серверу Windows по локальной или удаленной сети. Вы можете получить доступ к локальным дискам, принтерам, файлам и т.д., так если бы вы сидели перед ним. Я хочу вам предложить два примера использования подхода с разными портами RDP в рамках одного сервера или компьютера, с которыми вы можете столкнуться в своей практике.
Первый сценарий. Уникальное пространство для подрядчиков
Предположим, что у вас есть RDS ферма или отдельный терминальный стол. У вас есть две группы пользователей, первая это ваши сотрудники, а вторая, это подрядчики. У вас появилась задача для подрядчиков запретить пробрасывание локальных дисков, съемных носителей, буфера обмена и подключение к интернету. Логично, что вы скажете Иван, но ведь это можно сделать с помощью групповых политик и будите правы, но есть БОЛЬШОЕ НО. Буфер обмена вы можете запретить на уровне пользователя, а вот запретить подключение локальных дисков или съемных устройств для отдельной группы людей вы не можете, только на уровне компьютера, но слава Богу, что это можно обойти. Создав две или более независимые службы удаленного рабочего стола вы их используете на одном сервере.
Второй сценарий для проброса портов
Предположим, что у вас есть стационарный компьютер с Windows 10 или Windows Server. Есть роутер Mikrotik с внешним IP-адресов и на нем настроен проброс портов RDP. Когда у вас несколько серверов, то проблем с пробросом на разные порты нет, так как я вам рассказывал «Как поменять порт RDP», а что делать в рамках одного сервера. Это я вам и покажу в данной статье.
Как добавить новый порт прослушивания RDP на сервере терминалов
И так в моем тестовом окружении есть виртуальная машина на которой установлена Windows Server 2019, имеющая установленную роль RDS. На ней я хочу для подрядчиков поднять дополнительную службу RDP работающую по порту 3390. Доступ к стандартному порту 3389 для подрядчиков запрещу, а так же сделаю для них политику запрещающую:
- Перенаправление локальных дисков
- Перенаправление USB-дисков и устройств
- Запрет буфера обмена
- Запрет изменения прокси-сервера в Internet Explorer или Google Chrome
Чтобы все это провернуть, нам потребуется произвести манипуляцию с реестром Windows, путем копирования ветки и изменения ее настроек. Запустите окно выполнить и введите regedit.
Далее вам необходимо перейти в раздел реестра:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ControlTerminal ServerWinStationsRDP-Tcp
Перед вами будет ветка реестра. которая отвечает за подключение к удаленному рабочему столу по стандартному порту 3389. Тут вы увидите большое количество ключей, которые нам помогут ограничить нужную группу людей, но об этом чуть ниже.
Чтобы добавить новый порт прослушивания RDP на сервере терминалов, вам необходимо скопировать текущую ветку реестра и затем ее видоизменить. Для этого мы произведем ее экспорт, через контекстное меню, выбрав соответствующий пункт меню.
Далее вам необходимо указать место сохранения вашей экспортируемой ветки реестра. В моем примере это будет рабочий стол и я задам имя 3390, по номеру будущего порта.
В результате у вас будет файл в формате .reg, который вы можете легко отредактировать любым текстовым редактором, мне будет достаточно встроенного блокнота в Windows Server 2019. Щелкаем по нему правым кликом и выбираем пункт изменить.
Находим третью строку с адресом ветки и меняем у нее на конце имя, в моем примере это будет RDP-Tcp-3390.
HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ControlTerminal ServerWinStationsRDP-Tcp-3390
Обязательно сохраните настройки. Далее вам необходимо импортировать это reg файл на нужном терминальном сервере. Обратите внимание, что будет предупреждение, что вы должны понимать, что делаете. Если не хотите его видеть в своем сценарии, то можете сконвертировать reg файл в exe.
В результате будет создана новая ветка реестр.
Переходим в вашу новую ветку в редакторе. Пока она так же работает по порту 3389 и нам нужно его поменять, за это отвечает ключ PortNumber. Открываем его, переключаем в десятичное отображение и меняем номер порта на 3390
Если хотите использовать шеснадцатиричное представление ,то вам может помочь встроенный калькулятор в Windows, в режиме программиста. Тут число 3390 будет представлено в виде «D3E«.
Далее я хочу запретить для данного подключения по RDP буфер обмена, для этого есть ключ реестра fDisableClip. Если вы установите в fDisableClip значение «0», то буфер обмена между хостовой системой и удаленной будет работать, если вы выставите «1», то вы запретите использование общего буфера обмена.
Далее я хочу запретить перенаправление USB-устройств, локальных дисков на терминальный стол. Для этого есть ключ реестра fDisableCdm. По умолчанию у ключа fDisableCdm выставлено значение «0», что подразумевает возможность сопоставления клиентских дисков и их подключение в автоматическом режиме. Если вы выставите у fDisableCdm значение «1». то вы запретите перенаправление (проброс) USB и локальных дисков на терминальный стол.
Следующим шагом я сделал запрет изменения настроек прокси-сервера, если у вас интернет дается всем по умолчанию и нет обязательной аутентификации, например ISA или Kerio Control, то вы можете тут задать какие-то неработающие адреса, они будут блокировать интернет и пользователь не сможет их поменять, делая такой терминальный стол более изолированным.
Как ограничить порты подключения на терминальном сервере
По умолчанию, на оба RDP порта 3389 и 3390 (Созданный ранее) пользователи группы администраторы и пользователи удаленного рабочего стола имею права для подключения, это не совсем правильно. Что я хочу сделать:
- Члены группы администраторы должны иметь возможность подключаться к любому порту RDP
- Члены группы удаленного рабочего стола должны иметь возможность подключаться только к стандартному порту 3389
- А вот группа изолированные пользователи должны иметь возможность подключаться исключительно ко второму RDP порту 3390 (Изолированное окружение в рамках общего терминального сервера)
Вы открываете оснастку «Active Directory Пользователи и компьютеры» и создаете отдельные группы, я создам группу term-svt2019s01-rdp-3390 для изолированного подключения.
В группу term-svt2019s01-rdp-3390 я добавлю пользователя Барбоскина Генная Викторовича.
Далее вам нужно нужного пользователя. в моем случае Барбоскина Генная Викторовича исключить из группы администраторы или группы удаленного рабочего стола, если он в них состоял и назначить права доступа на порт 3390 для группы term-svt2019s01-rdp-3390. Сделать штатными средствами в операционных системах Windows Server 2012 R2 и выше вы не сможете, так как в оснастке по управлению RDS фермой нет такой функции, но не все потеряно.
В операционных системах Windows Server 2008 R2 и ниже, при установке терминального сервера были замечательные оснастки TSADMIN.msc (Remote Desktop Services Manager) и TSCONFIG.msc (Remote Desctop Session Host Configuration). Это были великолепные инструменты помогающие в удобном интерфейсе взаимодействовать с терминальными подключениями и настройками. Именно благодаря TSCONFIG.msc у вас была возможность настроить разрешения на подключение к конкретному RDP порту. У меня для таких целей всегда есть виртуальная машина с установленными на нее оснастками, которые добавляются при установке роли терминального сервера.
Запускаем оснастку «Конфигурация узла сеансов удаленных рабочих столов (Remote Desctop Session Host Configuration)». Щелкаем по корню и из контекстного меню выбираем пункт «Подключиться к серверу узла сеансов удаленных рабочих столов«
Выбираем сервер на котором вы настроили два разных RDP порта.
Щелкаем по изолированному подключению правым кликом и открываем его свойства.
Перейдите на вкладку «Безопасность«. Обратите внимание, что тут по умолчанию у группы «Пользователи удаленного рабочего стола» выставлены права на:
- Доступ пользователя
- Доступ гостя
Обращу ваше внимание, что данная вкладка почему-то доступна исключительно из операционной системы Windows Server 2008R2, с установленными компонентами, в Windows Server 2012 R2 и выше после регистрации оснасток, эта вкладка почему-то отсутствовала. Если кто-то знает причину, то напишите в комментариях
Вы так же можете более подробно посмотреть, что именно требуется для подключения по удаленному рабочему столу.
Удаляем из списка доступа (DACL) группу «Пользователи удаленного рабочего стола» и нажимаем кнопку «Добавить«. В открывшемся окне найдите вашу группу доступа
Можем более тонко выставить разрешения. Сохраняем все.
Открытие порта для второго RDP подключения
Наш изолированный терминальный стол почти готов, вам нужно не забыть открыть порты на брандмауэре Windows или другом фаэрволе, который вы используете. Я это буду делать через утилиту netsh. Я вам уже приводил пример такого правила в статье, где я удаленно включал RDP подключение. Откройте командную строку от имени администратора и запустите вот такую команду:
netsh advfirewall firewall add rule name=»allow RemoteDesktop 3390″ dir=in protocol=TCP localport=3390 action=allow
Создание RDP файла подключения
Запустите клиента «Подключения к удаленному рабочему столу». Укажите адрес подключения, порт подключения, имя пользователя и нажмите кнопку «Сохранить как«
Выбираем место сохранения RDP файла с подключением к изолированному терминальному серверу.
Чем хорошо файлы формата rdp можно легко редактировать и открывать с помощью любого текстового редактора.
В итоге вы можете производить нужные вам настройки в рамках данного клиента. После чего сохраните файл и передайте его сотруднику для подключения.
На этом у меня все. Мы с вами разобрали как создать несколько независимых RDP портов на одном терминальном сервере. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org,
Содержание
- Открытие портов в брандмауэре Windows
- Комментариев: 1
- Изменение порта RDP в Windows Server 2016
- Начало
- Правило для порта
- Проброс портов на Windows Server 2016
- Configure a Firewall for Report Server Access Configure a Firewall for Report Server Access
- Предварительные требования Prerequisites
- Открытие портов в брандмауэре Windows Opening Ports in Windows Firewall
- Открытие порта 80 To open port 80
- Дальнейшие действия Next steps
Открытие портов в брандмауэре Windows
Сегодня расскажу как правильно открывать порты при помощи брандмауэра Windows. Такая задача может возникнуть если вы установили какой-то, возможно не стандартный, сервис на своем компьютере и требуется предоставить к нему доступ из сети. В моем случае это была CRM на Windows Server 2012 R2, которая слушала tcp порты 3034 и 3050. Чаще требуется открыть порты к базам данных SQL Server (порты 1433 и 1434) — всё делается аналогично.
Итак, в меню Пуск переходим в Панель управления -> Система и безопасностьи -> Брандмауэр Windows (если на панели управления не включено представление по категориям, сразу выбираем Брандмауэр Windows).
Переходим в Дополнительные настройки. Для примера откроем tcp порт 1433:
- Выбираем Правила для входящих подключений.
- В окне Действия нажимаем на ссылку Создать правило
- Далее выбираем Тип правила в разделе Порт и нажимаем кнопку [Далее]
- На странице Протокол и порты указываем тип порта TCP
- Выбираем Указанные локальные порты и вводим значение 1433. Снова нажимаем кнопку [Далее]
- На странице Действие выбираем Разрешить соединение и жмем кнопку [Далее]
- На странице Профиль выбираем необходимые параметры для среды. [Далее]
- На странице Имя вводим название правила SQL Server (порт 1433) и нажимаем кнопку [Готово]
- Перезагружаем компьютер.
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.
Комментариев: 1
Брандмауер Windows дебилен настолько, что лично мне проще воткнуть маршрутизатор и закрыться NAT-ом, чем его настраивать.
Изменение порта RDP в Windows Server 2016
Начало
В данном руководстве будет рассмотрена процедура изменения порта RDP в операционной системе Windows Server 2012.
Обратите внимание что — все дальнейшие процедуры меняют порт RDP что приведет к отключению текущего соединения с сервером,в связи с этим рекомендуем использовать другие варианты подключения к серверу (например через Веб консоль из личного кабинета).
Для того чтобы выполнить эту задачу, необходимо осуществить редактирование реестра операционной системы.
Редактирование реестра производится с помощью программы-редактора.
Нажмите Пуск и в панели Поиск напечатайте cmd.
В появившемся окне консоли наберите и выполните команду regedit.
В редакторе реестра нужно отыскать раздел RDP-Tcp, сделать это можно, пройдя такой путь:
В нем необходимо отыскать элемент PortNumber (как на картинке выше), и открыть этот параметр.
Далее следует переключиться в Десятичный (Decimal) формат ввода и задать новый порт для подключения по протоколу RDP:
При выборе нового порта для подключения необходимо помнить о том, что существует несколько категорий портов в разбивке по их номерам:
- Номера от 0 до 10213 — известные порты, которые назначаются и контролируются организацией IANA (Internet Assigned Numbers Authority).
Как правило, их используют различные системные приложения ОС. - Порты от 1024 до 49151 — зарегистрированные порты, назначаемые IANA. Их позволяется использовать для решения частных задач.
- Номера портов от 49152 до 65535 — динамические (приватные) порты, которые могут использоваться любыми приложениями или процессами для решения рабочих задач.
Правило для порта
После изменения порта для удаленного подключения, необходимо открыть его в настройках межсетевого экрана, иначе попытки внешнего соединения будут блокироваться.
Для этого, нужно воспользоваться оснасткой управления Брандмаэур Windows в режиме повышенной безопасности
Открыть ее можно, зайдя в меню: Диспетчер Серверов —> Средства
Далее нужно выбрать пункт «Брандмаэур Windows в режиме повышенной безопасности»
В новом окне выбрать пункт «Правила для входящих подключений», кликнуть по этому пункту правой кнопкой мыши и выбрать «Создать правило»:
Мы будем создавать правило для порта:
Нужно выбрать тип протокола (TCP или UDP) и указать порт, который мы задавали в ходе редактирования реестра
(в нашем примере — протокол TCP, номер порта 60000):
На следующем этапе нужно выбрать тип действия, которое описывает правило.
В нашем случае нужно разрешить подключение.
На следующем шаге необходимо указать область действия правила — оно зависит от того, где работает сервер (в рабочей группе, домене, или частном доступе):
Затем нужно выбрать имя для правила
(рекомендуется выбирать его таким образом, чтобы затем правило было легко узнать среди других):
После этого нужно перезагрузить сервер.
Теперь для подключения к нему по протоколу RDP нужно использовать новый порт.
Проброс портов на Windows Server 2016
Возникла проблема с пробросом портов на виртуальную машину. Есть удалённый сервер(1) (windows server 2016) и на этом сервере через hyper-v установлена виртуальная машина(2) с той же ос. Есть задача: получать удалённый доступ к машине номер 2 через публичный адрес сервера (адрес сервера:порт на вм). По инструкции была создана сеть NAT, но не получаеться пробросить на порт 3389(порт удалённого доступа), выдается ошибка. Проброс на другие порты работает. Прошу помочь, спасибо)
UPD: ошибка выводиться даже если задать входящий порт не 3389.
Проброс портов с windows server 2003 в локалку
Есть windows server 2003, поднят RRAS, настроен NAT На сервере две сетевый платы, одна смотрит в.
Проброс портов на Terminal server
Коллеги, подскажите пожалуйста что смотреть, куда копать? Попросили настроить конференцсвязь (на.
Windows server 2012 r2 с ключем windows server 2016!
Здравствуйте, нам пришел новый сервер с windows server 2012 r2 и клиентские лицензии: windows.
Windows server 2016, microsoft-windows-kernel-power
Здравствуйте. Собрали сервер для одновременной работы нескольких человек по RDP. Работает на.
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Проброс портов в Ubuntu server
Вопрос такой. Есть роутер, который имеет внешний IP адрес. Есть два сервера на Ubuntu server.
Проброс портов в Windows 7
Здравствуйте. Имеется компьютер с интернет соединением, с личным IP адресом (то есть используется.
Windows XP SP2 в виртуальной машине: не удается проброс портов
Здравствуйте! Даны: Сервер: Ubuntu Server i386 8.04.3 LTS, Linux 2.6.24-21. Его адрес в.
Hyper-V server 2016 на Windows 10
Была загружена программа Hyper-V server 2016, после чего компьютер был перезагружен и открылось.
Configure a Firewall for Report Server Access Configure a Firewall for Report Server Access
Службы Reporting Services Reporting Services и опубликованным отчетам производится по URL-адресам, которые состоят из IP-адреса, номера порта и имени виртуального каталога. Report server applications and published reports are accessed through URLs that specify an IP address, port, and virtual directory. Если включен брандмауэр Windows, то порт, на который настроен сервер отчетов, скорее всего, закрыт. If Windows Firewall is turned on, the port that the report server is configured to use is most likely closed. Обычно это выражается в том, что при обращении с удаленного клиентского компьютера к веб-порталу отображается пустая страница либо при запросе отчета открывается пустая веб-страница. Indications that a port might be closed are receiving a blank page when you attempt to open the web portal from a remote client computer, or a blank Web page after requesting a report.
Открыть порт можно при помощи брандмауэра Windows на компьютере сервера отчетов. To open a port, you must use the Windows Firewall utility on the report server computer. Службы Reporting Services не открывают порты автоматически, этот шаг необходимо выполнить вручную. Reporting Services will not open ports for you; you must perform this step manually.
По умолчанию сервер отчетов слушает HTTP-запросы для порта 80. By default, the report server listens for HTTP requests on port 80. Следующие пошаговые инструкции позволяют настроить порт. As such, the following instructions include steps that specify that port. Если URL-адреса сервера отчетов настроены на другой порт, при выполнении описанных ниже инструкций необходимо указывать его номер. If you configured the report server URLs to use a different port, you must specify that port number when following the instructions below.
При обращении к реляционным базам данных SQL Server SQL Server на внешних компьютерах или в случае, если база данных сервера отчетов находится на внешнем экземпляре SQL Server SQL Server , необходимо открыть порт 1433 и 1434 на внешнем компьютере. If you are accessing SQL Server SQL Server relational databases on external computers, or if the report server database is on an external SQL Server SQL Server instance, you must open port 1433 and 1434 on the external computer. Дополнительные сведения о брандмауэре Windows см. в статье Настройка брандмауэра Windows для доступа к компоненту Database Engine. For more information, see Configure a Windows Firewall for Database Engine Access. Дополнительные сведения о настройках брандмауэра Windows по умолчанию и описание портов TCP, влияющих на компоненты Компонент Database Engine Database Engine , Службы Analysis Services Analysis Services , Службы Reporting Services Reporting Services и Службы Integration Services Integration Services , см. в разделе Настройка брандмауэра Windows для разрешения доступа к SQL Server. For more information about the default Windows firewall settings, and a description of the TCP ports that affect the Компонент Database Engine Database Engine , Службы Analysis Services Analysis Services , Службы Reporting Services Reporting Services , and Службы Integration Services Integration Services , see Configure the Windows Firewall to Allow SQL Server Access.
Предварительные требования Prerequisites
Выполнение следующих инструкций предполагает, что создана база данных сервера отчетов, настроена учетная запись службы и URL-адреса веб-портала и веб-службы сервера отчетов. These instructions assume that you already configured the service account, created the report server database, and configured URLs for the Report Server Web service and the web portal. Дополнительные сведения см. в разделе Управление сервером отчетов служб Reporting Services в собственном режиме. For more information, see Manage a Reporting Services Native Mode Report Server.
Кроме этого, необходимо проверить доступность экземпляра сервера отчетов из веб-браузера через локальное соединение. You should also have verified that the report server is accessible over a local Web browser connection to the local report server instance. Этот шаг необходим для проверки работоспособности установки. This step establishes that you have a working installation. Прежде чем приступать к открытию портов, необходимо проверить правильность настройки установки. You should verify that the installation is configured correctly before you begin opening ports. Чтобы выполнить этот шаг в Windows Server, потребуется также добавить сервер отчетов к доверенным сайтам. To complete this step on Windows Server, you must have also added the report server site to Trusted Sites. Дополнительные сведения см. в разделе Настройка сервера отчетов, работающего в основном режиме, для локального администрирования (службы SSRS). For more information, see Configure a Native Mode Report Server for Local Administration (SSRS).
Открытие портов в брандмауэре Windows Opening Ports in Windows Firewall
Открытие порта 80 To open port 80
В меню Пуск выберите Панель управления, Система и безопасностьи Брандмауэр Windows. From the Start menu, click Control Panel, click System and Security, and then click Windows Firewall. Если на панели управления не включено представление по категориям, сразу выберите Брандмауэр Windows. Control Panel is not configured for ‘Category’ view, you only need to select Windows Firewall.
Нажмите кнопку Дополнительные параметры. Click Advanced Settings.
Выберите Правила для входящих подключений. Click Inbound Rules.
Выберите Создать правило в окне Действия. Click New Rule in the Actions window.
Выберите Тип правила в разделе Порт. Click Rule Type of Port.
Щелкните Далее. Click Next.
На странице Протокол и порты выберите TCP. On the Protocol and Ports page click TCP.
Выберите Указанные локальные порты и введите значение 80. Select Specific Local Ports and type a value of 80.
Щелкните Далее. Click Next.
На странице Действие выберите Разрешить соединение. On the Action page click Allow the connection.
Щелкните Далее. Click Next.
На странице Профиль выберите необходимые параметры для среды. On the Profile page click the appropriate options for your environment.
Щелкните Далее. Click Next.
На странице Имя введите имяReportServer (TCP через порт 80) . On the Name page enter a name ofReportServer (TCP on port 80)
Нажмите кнопку Готово. Click Finish.
Перезагрузите компьютер. Restart the computer.
Дальнейшие действия Next steps
После открытия порта, прежде чем удаленные пользователи смогут производить доступ к серверу отчетов, им необходимо предоставить доступ к корневой папке и на уровне сайта. After you open the port and before you confirm whether remote users can access the report server on the port that you open, you must grant user access to the report server through role assignments on Home and at the site level. Даже если порт правильно открыт, пользователи не смогут соединяться с сервером отчетов, если им не предоставлены необходимые разрешения. You can open a port correctly and still have report server connections fail if users do not have sufficient permissions. Дополнительные сведения см. в статье Предоставление пользователям доступа к серверу отчетов. For more information, see Grant user access to a report server.
Правильность открытия порта можно также проверить, открыв веб-портал с другого компьютера. You can also verify that the port is opened correctly by starting the web portal on a different computer. См. подробнее о веб-портале сервера отчетов. For more information, see The web portal of a report server.
RDP (Remote Desktop Protocol), или протокол удалённого рабочего стола — это протокол прикладного уровня, использующийся для обеспечения удаленного доступа к серверам и рабочим станциям Windows. По умолчанию для подключения по RDP используется порт TCP 3389, но иногда может возникнуть необходимость его изменить, например по соображениям безопасности.
- Запустите редактор реестра regedit (WIN+R).
- Откройте ветку реестра — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp
- Измените параметр PortNumber на любой из диапазона от 1024 до 65535, например, 50415.
- Запустите Брандмауэр Windows и создайте новое правило в разделе «Правила для входящих подключений»
- Тип правила — Для порта, Протокол TCP, Определённые локальный порты — 50415, Разрешить подключение, Профиль — Доменный, Публичный и Частный, Имя — Allow RDP
В дальнейшем, при подключении используйте новый порт, например, 50415.
- Запустите подключение к удалённому рабочему столу mstsc (WIN+R)
- Введите ваш IP и порт через двоеточие, например, 192.168.40.57:50415.
Наш телеграм-канал
Регулярно пишем о технологиях.
Подписаться
Zip File, мои маленькие любители сисадминства. В данном уроке мы поговорим о том, как быстро, а главное совершенно бесплатно организовать удалённый доступ через интернет к рабочим компьютерам для сотрудников вашей организации. Идею для записи ролика мне подал комментарий одного из подписчиков.
В нём он спрашивал, как настроить роутер, как делается проброс портов и что, вообще нужно предпринять, чтобы бухгалтер заходил удалённо из дома и беспроблемно выполнял свои непосредственные функции на рабочем компе. Учитывая нынешнюю ситуацию в стране, вопрос более чем актуальный.
Признаться, я даже не думал, что у моих зрителей могут возникать подобные проблемы. Однако, проведя небольшой опрос среди членов нашей закрытой академии, я ужаснулся. После появления всем известных проблем с TeamViewer’ом, часть админов по сей день так и не удосужилась решить вопрос с удалёнкой.
Некоторые, стыдясь продемонстрировать свою некомпетентность начальству, вообще встают в позу, заявляя, что это можно реализовать только посредством серьёзных вложений. Руководители в свою очередь тайком заставляют несчастных бухов таскаться на работу в эпоху тотального карантина.
В такой ситуации у меня возникает только один вопрос. Вы о**ели? Вам рили не стрёмно? Если не знаете, так спросите. Вы блин не на школьном уроке. Как там вещали великие умы, спросить – стыд минуту, а не знать – стыд всей жизни. Кажется так.
Не суть. Смысл в том, что по вашей вине могут реально пострадать люди. Поэтому, давайте не будем тупыми админами и научимся уже наконец в 2020 году пробрасывать порты и настраивать удалённый доступ по RDPшке.
Но перед тем, как приступить непосредственно к настройке компьютеров и оборудования, давайте пробежимся по основным условиям, необходимым для корректной реализации. Первое, что у вас обязательно должно быть – это внешний «белый» IP-адрес от провайдера.
Без вариантов. В 2020 году это то, что должно быть у вас в офисе, если вы планируете батрачить по удаленке. Забудьте уже про кастыли dyn-dns и no-ip. 150 рублей на айпишник, это не та сумма, которую стоит жидить на такое благое дело.
Если у вас ещё до сих пор на работе динамик, то прямо сегодня подойдите к начальнику и скажите, Ихтиандр Феодосьевич, *баный в рот, вот дальше просто никак без этого. Либо тряситесь, ожидая штрафа, либо звоните провайдеру и подключайте. А я ухожу из этого гадюшника.
Шутка. Далее обязательно проверьте, чтобы за компами, к которым будут пробрасываться порты были зарезервированы стабильные IP-адреса. Как вы это сделаете, грамотно настроите на сервере службу DHCP или тупо пропишите руками статику, решайте сами.
Ладненько, чёт я подзатянул со вступлением. Давайте уже переходить к настройке, а с остальными нюансами разберёмся по ходу дела. Погнали.
Проброс портов на роутере Ростелеком
Шаг 1. Первым делом вызываем таксу, едем в офис и усевшись за свой компик топаем в Яндекс. Пишем мой IP и выясняем, какой внейшний адрес закрепил за вами провайдер. Фиксируем в заметках.
Шаг 2. Затем пишем в адресной строке адрес роутера и введя учётные данные ломимся на него.
Шаг 3. Сейчас внимательно. Вам нужно отыскать пункт «Виртуальные серверы» или «перенаправление/переадресация портов». В англоязычных прошивках это обычно «Forwarding Port». Обычно проброс засовывают либо в настройки LANки, либо в NAT.
В моём случае это вкладочка «Дополнительно» — «NAT» — «Виртуальный сервер». Тут мы сначала указываем имя для правила проброса. Например, buh-ivanova. Протокол – TCP. Порт WAN – т.е. тот, что будет указывать пользователь подключаясь извне. Можете выбрать любое значение в диапазоне от 1024 до 65535.
Они по факту свободны для админов и разработчиков. Все что до — зарезервированы за различными службами. В строчке Порт LANпрописываем 3389. Это стандартный порт, который по умолчанию закреплён за RDP. IP-адрес указываем тот, что зарезервирован за тачкой буха. Применить.
Настройка клиента Windows 10 для RDP
Шаг 4. Крутяк. Теперь неспеша пересаживаемся за комп юзверя и открыв свойства заходим в «Дополнительные параметры системы».
Шаг 5. На вкладке «Удаленный доступ» ставим чекпоинт «Разрешить удаленные подключения к этому компьютеру». Если есть спячка, то вылетит предупреждение о том, что это может вызвать проблемы при подключении по удаленке. Надо пофиксить. Идём в «Электропитание».
Шаг 6. Настройка перехода в спящий режим.
Шаг 7. Ставим в обоих пунктах «Никогда» и сохраняем эти изменения в системе. Теперь тачка не будет спать и выключать монитор придётся вручную.
Шаг 8. Вернувшись в оснастку с доступом кликаем «Выбрать пользователей» и добавляем сотрудника, которому собираемся предоставить возможность подключения. «Ок» — «ОК».
Шаг 9. Тут есть нюанс. У пользователя обязательно должен быть установлен пароль. Иначе подключение не заведётся. Если в вашей сети поднят домен, то тут проблем нет. Ну а там, где господствует одноранг, лучше убедиться, что пароль есть. Открываем управление компьютером и открыв вкладку с локальными пользователями задаёт пассворд.
Настройка домашнего ПК для работы по RDP
Шаг 10. С этим компом всё. Переходим к настройке домашней машинки нашего пользователя. Берём ноут и вызываем на нём «Подключение к удаленному рабочему столу».
Шаг 11. Вводим «белый» IP-адрес. Тот, что мы узнали в начале урока и через двоеточие указываем уникальный внешний порт нашего буха. Жмём «Подключить».
Шаг 12. Вводим учётные данные пользователя. Логин/пароль. Если бы комп был в домене, я бы указал перед именем его название. Например, domain/Бухгалтер. Но т.к. у нас одноранг, тут всё проще. Жму «ОК».
Шаг 13. Жму «ДА» в появившемся окошке проверки подлинности сертификата.
Шаг 14. И подождав некоторое время вижу экран удалённой машины.
Шаг 15. Можно спокойно работать. В заключении, расскажу вам один маленький лайфках. Т.к. к концу дня, машинку нужно будет выключить на ночь, пользователь вероятно захочет это сделать привычным способом через «Пуск». Тут его ждёт фиаско, т.к. в RDP по дефолту пункт «Завершение работы отсутствует». Это реализовано для того, чтобы при работе на серваке юзвери на загасили его почём зря.
Шаг 16. Нам же нужно, чтобы они всё-таки смогли выключать свои машинки. Для этого им необходимо сообщить о волшебной комбинации ALT+F4. Нажав таковую на рабочем столе, произойдёт вызов оснастки с полным выбором всех возможных действий после завершения рабочего сеанса. В том числе «Завершение работы».
Главное, не забудьте напомнить руководству или ответственному сменщику, чтобы утром заблаговременно включали компы. А то ведь люди проснутся, а зайти не смогут. Глупо, как-то получится.
На этом сегодня всё. Для тех, кому необходимо настроить не просто удалённый рабочий стол, а полноценное VPN соединение с возможностью сделать домашний компьютер частью рабочей сети, тут будет ссылка на соответствующий ролик по теме.
Если желаете научиться грамотно администрировать полноценную доменную сеть на базе Windows Server 2016, то обязательно ознакомьтесь с моим обучающим курсом. В нём я рассматриваю базовые сетевые службы вдоль и поперёк.
Не забывайте писать свои комментарии с вопросами и предложениями новых тем. Если впервые оказались на канале, то кликните колокольчик. Нажмёте и в вашей ленте будут регулярно появляться полезные ролики по теме администрирования ЛВС, информационной безопасности и пентестингу.
Друзья, благодарю за просмотр. Всем удачи, успехов, отличного настроения. Берегите себя. Работайте удалённо и не нарушайте условий самоизоляции. Лучше останьтесь дома и посмотрите ютубчик. Всяко полезней, чем рисковать жизнью. До новых встреч.
It’s highly recommended to change windows remote desktop default port for added security.
You can change the default port with a few easy steps, first, you’ll change the port and define this port in a firewall rule.
Change RDP TCP port on Windows Server 2016
- Open registry editor app by searching for
regedit
in windows search or useRUN
. - Locate the following from
regedit
app:HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp
- look for
PortNumber
and right-click on it andModify
- Make sure to select
Decimal
underBase
option - Change the port number to any number you prefer, let’s say
1234
and clickOK
- Quit the registry editor
- Open Firewall (Windows Defender Firewall with Advanced Security)
- From the left sidebar click on
Inbound Rules
- From the right sidebar click on
New Rule
- Select
Port
and clickNext
- Select
TCP
and type the port number inSpecific local port
and clickNext
until you reach the step where you asked to enter a rule name, give the rule a name and ClickFinish
. (Repeat from #7 to #11 for UDP) - Restart the server or execute this PowerShell command
Restart-Service -Force -DisplayName "Remote Desktop Services"
- Try to connect to RDP as usual but when you type the IP, don’t forget to type the custom port number after the IP in this format
IP:Port
(e.g. 192.168.1.5:1234)
PowerShell
You can also change the RDP port by running the following PowerShell commands. In this command, we’ll specify the new RDP port as 1234.
To add a new RDP Port to the registry:
Set-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' -name "PortNumber" -Value 1234
Then Add Firewall Rule to open port 1234 on the Public profile using PowerShell
New-NetFirewallRule -DisplayName 'RDPPORT_TCP' -Profile 'Public' -Direction Inbound -Action Allow -Protocol TCP -LocalPort 1234
Repeat to open UDP port 1234 (recommended)
New-NetFirewallRule -DisplayName 'RDPPORT_UDP' -Profile 'Public' -Direction Inbound -Action Allow -Protocol UDP -LocalPort 1234
Restart Remote Desktop Service from PowerShell
Restart-Service -Force -DisplayName "Remote Desktop Services"
Find this tutorial on Microsoft.com:
https://support.microsoft.com/en-gb/help/306759/how-to-change-the-listening-port-for-remote-desktop
Watch Video Tutorial: https://www.youtube.com/watch?v=k8mswkiok70
Открытие портов на Windows Server 2016 является неотъемлемой частью настройки сервера. Это позволяет установить соединения с сервером через определенные порты, что особенно важно для различных сетевых служб и приложений. В данной статье мы рассмотрим подробную инструкцию о том, как правильно открыть все порты на Windows Server 2016.
Первым шагом необходимо открыть порты вместе с соответствующими протоколами в брандмауэре Windows. Для этого откройте «Панель управления», затем выберите «Система и безопасность» и перейдите в раздел «Брандмауэр Windows». Далее выберите «Дополнительные настройки» и перейдите в раздел «Входящие соединения». Здесь вы сможете настроить доступ к нужным портам и протоколам.
Вторым шагом является настроить проброс портов на вашем маршрутизаторе или межсетевом экране (МЭ). Проброс портов позволяет направить входящий трафик с определенного порта на внутренний IP-адрес сервера. Для этого вам необходимо зайти в настройки маршрутизатора (обычно это делается через веб-интерфейс) и найти раздел «Проброс портов» или «Port Forwarding». Затем добавьте новое правило, указав внешний и внутренний порты, а также IP-адрес сервера.
На этом этапе вы успешно открыли все порты на Windows Server 2016, и ваши сетевые службы и приложения должны работать корректно. Если возникают проблемы с доступом, связанные с портами, рекомендуется проверить брандмауэр Windows и настройки проброса портов на маршрутизаторе. Также имейте в виду, что открытие всех портов может повлечь за собой небезопасность сервера, поэтому следует использовать эту функцию с осторожностью и только при необходимости.
Содержание
- Открытие всех портов на Windows Server 2016: пошаговая инструкция
- Подготовка к открытию портов
- Открытие портов в брандмауэре Windows
- Открытие портов на роутере
- Проверка открытых портов
Открытие всех портов на Windows Server 2016: пошаговая инструкция
Windows Server 2016 предоставляет гибкие возможности для управления сетевыми портами и настройками безопасности. Если вам нужно открыть все порты на вашем сервере, следуйте этой пошаговой инструкции.
- Запустите «Диспетчер сервера», нажав правой кнопкой мыши на значок «Пуск» и выбрав соответствующий пункт в контекстном меню.
- В окне «Диспетчер сервера» выберите «Управление настройками безопасности» в правой части окна.
- В разделе «Настройка безопасности Windows» выберите «Брандмауэр с системой безопасности Windows» и щелкните ссылку «Доступ к приложениям и портам».
- В открывшемся окне «Доступ к приложениям и портам» нажмите на кнопку «Изменить настройки».
- В разделе «Входящие соединения» установите флажок «Разрешить другим программам доступ к этому компьютеру через брандмауэр» и нажмите кнопку «OK».
- На вкладке «Исключения» нажмите кнопку «Добавить порт».
- В появившемся окне «Добавление порта» введите номер порта, который вы хотите открыть, и выберите тип соединения (TCP или UDP).
- Повторите шаги 6-7 для каждого порта, который вы хотите открыть.
- Нажмите кнопку «OK», чтобы закрыть окно «Доступ к приложениям и портам».
После выполнения этих шагов все выбранные порты будут открыты на Windows Server 2016, и внешние приложения смогут получить доступ к вашему серверу через эти порты.
Подготовка к открытию портов
Перед тем, как приступить к процессу открытия портов на Windows Server 2016, необходимо выполнить несколько предварительных шагов:
1. Проверьте настройки брандмауэра Брандмауэр — это программное обеспечение, которое контролирует трафик сетевых подключений. Убедитесь, что брандмауэр не блокирует доступ к нужным портам. Проверьте настройки Windows Firewall или любого другого установленного брандмауэра, а также наличие и правильность созданных правил. |
2. Проверьте наличие необходимых прав доступа Убедитесь, что при открытии портов вы имеете все необходимые права доступа в системе Windows Server 2016. Для открытия портов на сервере обычно требуются административные права. Проверьте, что учетная запись, с которой вы работаете, обладает достаточными привилегиями. |
3. Обновите операционную систему Перед открытием портов рекомендуется обновить операционную систему до последней версии. Это позволит использовать все доступные исправления и обновления безопасности, а также улучшит стабильность и производительность сервера. |
Открытие портов в брандмауэре Windows
Для открытия портов в брандмауэре Windows на сервере 2016 необходимо выполнить ряд шагов:
1. Откройте «Панель управления» и найдите раздел «Брандмауэр Windows».
2. В разделе «Брандмауэр Windows» выберите «Разрешить приложение/функцию через брандмауэр».
3. Нажмите кнопку «Изменить настройки» и установите флажок «Доменная сеть» и/или «Частная сеть» в соответствии с вашими требованиями.
4. В списке приложений и служб найдите нужное вам приложение или указатель на известный порт, который вы хотите открыть. Если такого приложения или службы нет в списке, нажмите кнопку «Добавить другое приложение» и найдите его в директории.
5. Установите флажок «Разрешить другое приложение» и нажмите кнопку «Обзор». В появившемся окне найдите нужное приложение и выберите его.
6. После выбора приложения нажмите кнопку «Добавить» и проверьте, что оно добавлено в список разрешенных приложений и служб.
7. Повторите шаги 4-6 для всех необходимых вам портов и приложений.
8. После добавления всех нужных портов и приложений, нажмите «ОК» для сохранения изменений.
9. При необходимости выполните аналогичные действия для других сетей (например, «Общественная сеть»).
Теперь порты, указанные вами при открытии в брандмауэре Windows, должны быть доступны и активны для соединения через сервер 2016.
Примечание |
---|
Открывая порты в брандмауэре Windows, будьте внимательны и осторожны, так как неправильные настройки могут привести к уязвимостям и угрозам безопасности сервера. |
Открытие портов на роутере
Для того чтобы открыть порты на роутере, следуйте следующим шагам:
1. Подключитесь к роутеру с помощью веб-браузера, введя его IP-адрес в адресной строке. Обычно адрес роутера указан на задней панели устройства или может быть найден в документации.
2. Войдите в настройки роутера, введя логин и пароль. Если у вас нет этих данных, обратитесь к поставщику услуг интернета или к администратору сети.
3. Найдите раздел настроек «Порты» или «Перенаправление портов» в меню роутера.
4. Создайте новое правило перенаправления портов, указав следующую информацию:
— Протокол (TCP или UDP)
— Внешний порт (номер порта, который нужно открыть снаружи)
— Внутренний IP-адрес (IP-адрес компьютера или устройства, на котором работает нужное приложение или сервер)
— Внутренний порт (номер порта на устройстве)
5. Сохраните настройки и перезапустите роутер, чтобы изменения вступили в силу.
Теперь порт должен быть открыт на роутере и готов к использованию.
Проверка открытых портов
После того, как мы открыли необходимые порты на Windows Server 2016, необходимо проверить их открытость. Для этого можно воспользоваться различными инструментами. Ниже представлены некоторые из них:
Инструмент | Описание |
---|---|
PortQry | Утилита командной строки, которая позволяет проверить доступность портов на удаленном хосте. |
Telnet | Программа, позволяющая установить соединение с удаленным хостом по протоколу Telnet и проверить открытость порта. |
Netstat | Утилита командной строки, которая позволяет просмотреть активные соединения и открытые порты на локальном хосте. |
Для каждого инструмента необходимо указать IP-адрес и номер порта, который вы хотите проверить. Если при проверке порта будет получен положительный результат, то порт считается открытым. В случае отрицательного результата, необходимо повторно убедиться, что настройки фаервола и сервера выполнены правильно.
You can configure network port forwarding in all Windows versions without using third-party tools. Using a port forwarding rule, you can redirect an incoming TCP connection (IPv4 or IPv6) from a local TCP port to any other port number, or even to a port on a remote computer. Windows port forwarding is most commonly used to bypass firewalls or to hide an internal host or service from the external network (NAT/PAT).
In the Linux world, port forwarding is configured quite simply using iptables or firewalldrules. On Windows Server hosts, the Routing and Remote Access Service (RRAS) is typically used to configure port redirections. However, there is an easier way to enable port forwarding using netsh portproxy
mode, which works on all versions of Windows from Win XP to current builds of Windows 11 and Windows Server 2022.
Contents:
- How to Enable Port Forwarding on Windows with Netsh Portproxy?
- Configuring Firewall Rules for Port Forwarding Mode in Windows
- Managing Netsh Port Forwarding Rules in Windows
- Port Forwarding with NAT Rules on Hyper-V Virtual Switch
How to Enable Port Forwarding on Windows with Netsh Portproxy?
You can configure port forwarding in Windows using the Portproxy mode of the Netsh command.
The command syntax is as follows:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
where
- listenaddress –is a local IP address to listen for incoming connection (useful if you have multiple NICs in different subnets/VLANs or multiple IP addresses on one interface);
- listenport – a local TCP port number to listen on (the connection is waiting on);
- connectaddress – is a local or remote IP address (or DNS name) to which you want to redirect the incoming connection;
- connectport – is a TCP port to which the connection from
listenport
is forwarded to.
Using the netsh interface portproxy add
v4tov6
/v6tov4
/v6tov6
options, you can create port forwarding rules between IPv4 and IPv6 addresses.
Let’s suppose your task is to make the RDP service respond on a non-standard port, for example 3340 (of course, this port number can be changed in the Windows settings, but we are using RDP to make it easier to demonstrate the port forwarding technique). To do this, we need to redirect incoming traffic from TCP port 3340 to another local port 3389 (this is the default RDP port number).
Please note that the local port number that you specified in listenport should not be listened (used) by another service or process. Check that the port number is not used:
netstat -na|find "3340"
Alternatively, you can check that the port is not listening locally using the PowerShell cmdlet Test-NetConnection:
Test-NetConnection -ComputerName localhost -Port 3340
To create a port forwarding rule on Windows, open a command prompt as an administrator and run the following command:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=10.1.1.110
Where 10.10.1.110 – the current IP address of your computer on which port forwarding is configured.
Now, use the netstat tool to check that Windows is now listening on local port 3340:
netstat -ano | findstr :3340
Note. If this command returns nothing and port forwarding through the netsh interface portproxy doesn’t work, make sure that you have the iphlpsvc (IP Helper) service running on your Windows device.
Check the status of the service in the services.msc
console or using the PowerShell command:
Get-Service iphlpsvc
IPv6 support must be enabled on the network interface for which the port forwarding rule is being created.
These are the prerequisites for the correct operation of port forwarding in Windows. Without the IP Helper service and without IPv6 support enabled, the port redirection won’t work.
To make port forwarding work on Windows Server 2003/XP, you must additionally set the IPEnableRouter parameter to 1 under the registry key HKEY_LOCAL_MACHINE\ System\CurrentControlSet\services\Tcpip\Parameter.
Set-ItemProperty -Path HKLM:\system\CurrentControlSet\services\Tcpip\Parameters -Name IpEnableRouter -Value 1
This option also allows you to enable routing between different subnets in Hyper-V.
You can identify the process that is listening on the specified port by its PID (in our example, the PID is 636):
tasklist | findstr 636
Now try to connect to the new port from a remote computer using any RDP client. You need to specify 3340 as the RDP port number. It is specified after the colon following the RDP host address. For example, 10.10.1.110:3340
In this example, port TCP/3340 must first be opened in Windows Defender Firewall (see the next section of the article).
The RDP connection should be established successfully.
Portproxy port forwarding rules are permanent and are not cleared when you restart Windows. These rules are stored in the registry. You can list the netsh forwarding rules in the registry using PowerShell:
Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\PortProxy\v4tov4\tcp
If you want to forward an incoming TCP connection to a remote computer, use the following command:
netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.100.101
This rule will redirect all incoming RDP traffic (from local TCP port 3389) from this computer to a remote host with an IP address 192.168.1.100.
Note that the portproxy mode in Windows doesn’t support saving the source IP in a forwarded network packet. Those, if you forward port 443 port from a Windows device to an internal web server, then all incoming connections will appear on the target server as coming from the same IP address (from your Windows host with netsh portproxy enabled). If you need to use source IP forwarding, you need to use NAT on an external firewall or on Hyper-V (described below).
Also, you can use the SSH tunnels in Windows to forward the local port to a remote server.
Configuring Firewall Rules for Port Forwarding Mode in Windows
Ensure that your firewall (Microsoft Windows Defender or a third-party firewall, which is often part of the anti-virus software) allows incoming connections to the new port. You can add a new allow rule to Windows Defender Firewall with the command:
netsh advfirewall firewall add rule name="forwarded_RDPport_3340" protocol=TCP dir=in localip=10.1.1.110 localport=3340 action=allow
Or using the New-NetFirewallRule PowerShell cmdlet:
New-NetFirewallRule -DisplayName "forwarder_RDP_3340" -Direction Inbound -Protocol TCP –LocalPort 3340 -Action Allow
When creating an inbound firewall rule for TCP/3340 port via Windows Defender Firewall graphical interface, you don’t need to associate a program or process with the rule. This port is only listened on by the network driver.
If you disable the portproxy rule, be sure to remove the remaining firewall rule as follows:
netsh advfirewall firewall del rule name="RDP_3340"
or remove firewall rule with PowerShell:
Remove-NetFirewallRule -Name RDP_3340
Managing Netsh Port Forwarding Rules in Windows
You can create any number of port forwarding rules in Windows. All netsh interface portproxy rules are persistent and remain after a Windows restart.
Several times I encountered cases when in Windows Server 2012 R2 the port forwarding rules were reset after the server was rebooted. In this case, you need to check whether there is a periodic disconnection on the network interface and whether the IP address changes when the OS boots (it is better to use a static IP instead of dynamic DHCP). As a workaround, I had to add a batch script with the netsh interface portproxy rules to the Windows Task Scheduler that run on the system startup.
To display a list of all enabled TCP port forwarding rules on Windows, run the command:
netsh interface portproxy show all
In our case, there is only one forwarding rule from local port 3340 to 3389:
Listen on ipv4: Connect to ipv4: Address Port Address Port --------------- ---------- --------------- ---------- 10.1.1.110 3340 10.1.1.110 3389
Tip. You can also list all port forwarding rules in portproxy as follows:
netsh interface portproxy dump
#======================== # Port Proxy configuration #======================== pushd interface portproxy reset add v4tov4 listenport=3340 connectaddress=10.1.1.110 connectport=3389 popd # End of Port Proxy configuration
If you need to change the settings of an existing portproxy rule, use the following command:
netsh interface portproxy set v4tov4 listenport=3340 listenaddress=10.10.1.110 connectport=3300 connectaddress=10.10.1.110
In this example, we have changed the portproxy target port number to 3300.
To remove a specific port forwarding rule:
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.1.1.110
To remove all existing port mapping rules and completely clear the port forwarding rules table:
netsh interface portproxy reset
Important. This port forwarding scheme works only for TCP ports. You won’t be able to forward UDP ports this way. Also, you can’t use the loopback interface 127.0.0.1 (localhost) as the connectaddress
.
You can use Windows Server with the RRAS (Routing and Remote Access Service and NAT) role installed to enable port forwarding for UDP traffic. You can configure port forwarding between server network interfaces using the graphical snap-in (rrasmgmt.msc
) or with the command:
netsh routing ip nat add portmapping Ethernet1 udp 0.0.0.0 53 192.168.100.100 53
The list of NAT port forwarding rules in Windows Server can be listed as follows:
netsh routing ip nat show interface
If you have WSL (Windows Subsystem for Linux) installed on your computer, you can create a simple PowerShell script to create a port forwarding rule to the WSL 2 virtual machine (a WSL2 VM has its own virtual ethernet adapter with a unique IP address):
wsl --shutdown;
netsh interface portproxy reset;
$wsl_ipaddr = wsl -d Ubuntu-20.04 hostname -I;
netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=$wsl_ipaddr ;
netsh interface portproxy show all;
exit;
Another implicit feature of portproxy is the ability to make any remote network service look like it runs locally. For example, you want to forward the connections from local port 9090 to a remote HTTPS server (google.com:443
)
netsh interface portproxy add v4tov4 listenport=9090 connectport=443 connectaddress=google.com protocol=tcp
Now, the Google search page will open if you go to http://localhost:9090/ in your browser (you need to ignore SSL_ERROR_BAD_CERT_DOMAIN errors). So despite the browser accessing the local computer address, it opens a page from an external web server.
Windows cannot forward a range of TCP ports. If you need to forward multiple ports, you will have to manually create multiple portproxy redirecting rules.
Port forwarding rules can also be used to redirect a port from the external IP address of a physical NIC to a port of a virtual machine running on the same host. In Hyper-V, you can configure port forwarding on a Virtual Switch level (see below).
Port Forwarding with NAT Rules on Hyper-V Virtual Switch
When using the Hyper-V role on your computer (it can be installed on both Windows 10/11 and Windows Server, or as a free Hyper-V Server), you can configure DNAT port forwarding rules using PowerShell. Suppose you want to redirect all HTTPS traffic that your Hyper-V host receives to the IP address of the virtual machine running on the host. To do this, use the Hyper-V StaticMapping commands.
Create a Hyper-V virtual switch:
New-VMSwitch -SwitchName NAT_Switch -SwitchType Internal
Set the IP address for the new virtual switch:
New-NetIPAddress -IPAddress 192.168.100.1 -PrefixLength 24 -InterfaceAlias "vEthernet (NAT_Switch)"
Enable NAT for this network:
New-NetNat -Name NATNetwork -InternalIPInterfaceAddressPrefix 192.168.100.0/24
Connect the VM to your NAT_Switch and assign it a static IP address (for example, 192.168.10.80). Set the Hyper-V virtual switch IP address (192.168.100.1 in this case) as the default gateway for the virtual machine’s network connection.
You can now enable port forwarding from the Hyper-V host to the virtual machine:
Add-NetNatStaticMapping -NatName NATNetwork443 -Protocol TCP -ExternalIPAddress 0.0.0.0/24 -ExternalPort 443 -InternalIPAddress 192.168.10.80 -InternalPort 443
After executing these PowerShell commands, all HTTPS traffic that comes to the TCP/443 port of the Hyper-V host will be forwarded to the private IP address of the virtual machine.
If you want to create a port forwarding rule for a non-standard port, don’t forget to open it in Windows Firewall:
New-NetFirewallRule -DisplayName "HyperV_Nat_444" -Direction Inbound -LocalPort 444 -Protocol TCP -Action Allow -Enabled True
You can display a complete list of NAT/PAT port forwarding rules on a Hyper-V host like this:
Get-NetNat