Как открыть порты на Windows Server 2012 r2

Обновлено: 06.07.2024

Вы можете настроить переадресацию сетевых портов во всех версиях Windows без использования сторонних инструментов. Используя правило переадресации портов, вы можете перенаправить входящее TCP-соединение (IPv4 или IPv6) с локального TCP-порта на любой другой номер порта или даже на порт на удаленном компьютере. Кроме того, для Windows не обязательно иметь службу, которая прослушивает определенный TCP-порт. Переадресация портов Windows чаще всего используется для обхода брандмауэров или для сокрытия внутреннего хоста или службы от внешней сети (NAT/PAT).

В мире Linux переадресация портов настраивается довольно просто с помощью iptables или firewalld. В системах Windows Server служба маршрутизации и удаленного доступа (RRAS) обычно используется для настройки перенаправления портов. Однако есть более простой способ настройки переадресации портов, который хорошо работает в любой версии Windows.

Как настроить переадресацию портов в Windows 10 с помощью Netsh Portproxy?

Вы можете настроить переадресацию портов в Windows, используя режим Portproxy команды Netsh. Синтаксис команды следующий:

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
где

  • listenaddress — локальный IP-адрес для прослушивания входящего соединения (полезно, если у вас есть несколько сетевых адаптеров или несколько IP-адресов на одном интерфейсе);
  • listenport – номер локального прослушивающего TCP-порта (ожидается соединение);
  • connectaddress — локальный или удаленный IP-адрес (или DNS-имя), на который вы хотите перенаправить входящее соединение;
  • connectport — TCP-порт, на который перенаправляется соединение из listenport.

Используя интерфейс netsh portproxy с добавлением параметров v4tov6 / v6tov4 / v6tov6, вы можете создавать правила переадресации портов между адресами IPv4 и IPv6.

Предположим, наша задача i — заставить службу RDP отвечать на нестандартном порту, например 3340 (порт можно изменить в настройках службы удаленного рабочего стола, но мы используем RDP, чтобы упростить для демонстрации переадресации портов). Для этого нам нужно перенаправить входящий трафик с TCP-порта 3340 на другой локальный порт — 3389 (это номер порта RDP по умолчанию).

Обратите внимание, что номер локального порта, указанный вами в listenport, не должен прослушиваться (использоваться) другой службой или процессом. Убедитесь, что номер порта не используется:

netstat -na|найти "3340"

Кроме того, вы можете проверить, что порт не прослушивается локально, с помощью командлета PowerShell Test-NetConnection:

Test-NetConnection -ComputerName localhost -Port 3340

проверить локальный состояние прослушивания в Windows 10

Чтобы создать правило переадресации портов в Windows 10, запустите командную строку от имени администратора и выполните следующую команду:

netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=10.1.1.110

правило переадресации портов Windows с использованием интерфейса netsh portproxy add

Где 10.10.1.110 — текущий IP-адрес этого компьютера.

Теперь используйте инструмент netstat, чтобы убедиться, что Windows теперь прослушивает локальный порт 3340:

netstat -ano | адрес: 3340

netstat -ano - Получить процесс PID

Примечание. Если эта команда ничего не возвращает и переадресация портов через интерфейс netsh portproxy не работает, убедитесь, что на вашем компьютере запущена служба iphlpsvc (IP Helper).

Служба

 iphlpsvc (IP Helper)

Поддержка IPv6 должна быть включена на сетевом интерфейсе, для которого создается правило переадресации портов.

протокол ipv6 включен

Это необходимые условия для правильной работы переадресации портов. Без службы IP Helper и без включенной поддержки IPv6 перенаправление портов не будет работать.

Чтобы переадресация портов работала в Windows Server 2003/XP, необходимо дополнительно установить для параметра IPEnableRouter значение 1 в разделе реестра HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters.

Вы можете узнать, какой процесс прослушивает указанный порт, используя его PID (в нашем примере PID равен 636):

список задач | найти 636

Попробуем подключиться к этому порту с удаленного компьютера с помощью любого RDP-клиента. В качестве номера порта RDP следует указать порт 3340. Он указывается после двоеточия после адреса RDP-сервера. Например, 10.10.1.110:3340

Клиент RDP подключается к другой порт

Подключение RDP должно быть успешно установлено.

Если вы хотите перенаправить входящее TCP-соединение на удаленный компьютер, используйте следующую команду:

netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.100.101

Это правило будет перенаправлять весь входящий трафик RDP (с локального TCP-порта 3389) с этого компьютера на удаленный узел с IP-адресом 192.168.1.100.

Управление правилами переадресации портов в Windows

Важно. Убедитесь, что ваш брандмауэр (брандмауэр Защитника Microsoft Windows или сторонний брандмауэр, который часто входит в состав антивирусного программного обеспечения) разрешает входящие подключения к новому порту. Вы можете добавить новое разрешающее правило в брандмауэр Защитника Windows с помощью команды:

брандмауэр netsh advfirewall добавить правило name="forwarded_RDPport_3340" protocol=TCP dir=in localip=10.1.1.110 localport=3340 action=allow

Или с помощью командлета PowerShell New-NetFirewallRule:
New-NetFirewallRule -DisplayName "forwarder_RDP_3340" -Direction Inbound -Protocol TCP –LocalPort 3340 -Action Allow

При создании входящего правила брандмауэра для порта 3340 через графический интерфейс брандмауэра Защитника Windows никакая программа не должна быть связана с ним. Этот порт прослушивается только сетевым драйвером.

Вы можете создать любое количество правил переадресации портов Windows. Все правила portproxy интерфейса netsh являются постоянными и сохраняются в системе после перезагрузки Windows.

Также были случаи, когда в Windows Server 2012 R2 правила переадресации портов сбрасывались после перезагрузки сервера. В этом случае нужно проверить, не происходит ли периодическое отключение на сетевом интерфейсе, и не меняется ли IP-адрес при загрузке ОС (лучше использовать статический IP вместо динамического DHCP). В качестве обходного пути мне пришлось добавить пакетный сценарий в планировщик заданий Windows с правилами portproxy интерфейса netsh, которые запускаются при запуске системы.

Чтобы отобразить список всех активных правил переадресации портов TCP в Windows, выполните команду:

netsh interface portproxy показать все

В нашем случае есть только одно правило переадресации с локального порта 3340 на 3389:

Показать все правила переадресации портов

Дамп прокси порта интерфейса netsh

netsh interface portproxy dump

Чтобы удалить конкретное правило переадресации портов:

netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.1.1.110

Чтобы удалить все существующие правила сопоставления и полностью очистить таблицу правил переадресации портов:

сброс прокси порта интерфейса netsh

Важно. Эта схема переадресации работает только для портов TCP. Вы не сможете переадресовывать порты UDP таким образом. Также вы не можете использовать петлевой интерфейс 127.0.0.1 в качестве адреса подключения.

Вы можете использовать Windows Server с установленной ролью RRAS и NAT для настройки переадресации портов для трафика UDP. Настроить переадресацию портов между интерфейсами сервера можно с помощью графической оснастки ( rrasmgmt.msc ) или с помощью команды:

маршрутизация netsh ip nat add сопоставление портов Ethernet1 udp 0.0.0.0 53 192.168.100.100 53

Еще одна функция portproxy — это возможность сделать так, чтобы любая удаленная сетевая служба работала локально.

netsh interface portproxy add v4tov4 listenport=5555 connectport=80 connectaddress= 157.166.226.25 protocol=tcp

localhost:5555 открыть удаленную страницу на локальном хосте

Правила переадресации портов также можно использовать для переадресации порта с внешнего IP-адреса физической сетевой карты на порт виртуальной машины, работающей на том же хосте. В Hyper-V можно настроить переадресацию портов на уровне виртуального коммутатора (см. ниже).

Windows не может перенаправлять диапазон TCP-портов. Если вам нужно перенаправить несколько портов, вам придется вручную создать несколько правил переадресации portproxy. Самый простой способ — сгенерировать список команд netsh interface portproxy add с разными номерами портов в блокноте, а затем вставить их в командную строку для выполнения.

Переадресация портов на сервере Hyper-V

Сначала вам нужно создать виртуальный коммутатор с NAT:

New-VMSwitch -Name "HTTPS-NAT" -SwitchType NAT -NATSubnetAddress 192.168.100.0/24

Затем нужно подключить нужную ВМ к указанному vswitch и включить правило трансляции адресов для всех виртуальных машин, подключенных через этот виртуальный коммутатор Hyper-V:

Чтобы использовать Parallels RAS в Windows Server 2008 R2 до Windows Server 2019 с включенным брандмауэром Windows, необходимо открыть несколько портов для взаимодействия компонентов Parallels RAS.

Список портов TCP и UDP, используемых Parallels RAS

На рисунке ниже показаны наиболее распространенные порты, используемые компонентом Parallels RAS для связи при работе на разных компьютерах:

Диаграмма Parallels RAS

Примечание. На рисунке 1 ">>" означает направление. Если сервер A подключается к серверу B, он покажет «A >> B». Поэтому для работы компонентов Parallels RAS необходимо открыть следующие порты:

Шлюз

TCP-порты 80 и 443

Агент публикации

Порты TCP 20001, 20002 и 20003

Агент TS

Агент VDS

Подробный и полный список всех портов, которые компоненты Parallels RAS используют для связи, см. в разделе «Справочник по портам» в Руководстве администратора Parallels Remote Application Server.

Конфигурация брандмауэра Windows Server по умолчанию

Брандмауэр Windows включен по умолчанию для всех профилей в операционной системе Windows Server. Конфигурация по умолчанию имеет следующие правила:

  • Входящие подключения, не соответствующие правилу, блокируются.
  • Исходящие подключения, не соответствующие правилу, разрешены.

Конфигурация брандмауэра Windows уже настроена на разрешение всех исходящих подключений; следовательно, следует открывать только порты для входящих соединений. Их необходимо настроить в «Правилах для входящих подключений», как описано ниже.

Конфигурация брандмауэра Windows

Существует три разных способа открытия портов в Windows Server 2008/2012 R2/2016 и Windows Server 2019. Вы можете сделать это одним из следующих способов:

  • ММС
  • Командная строка (netsh)
  • Команды PowerShell (только для 2012R2 и 2016)

Открытие портов в брандмауэре Windows Server с помощью графического интерфейса

Чтобы открыть порт в брандмауэре с помощью графического интерфейса в Windows Server 2008/2012 R2/2016 и Windows Server 2019, выполните следующие действия:

  1. Войдите, используя учетную запись администратора.
  2. Нажмите «Пуск» > «Инструменты администрирования» > «Брандмауэр Windows в режиме повышенной безопасности».

Брандмауэр Windows

  1. Нажмите «Правила для входящих подключений» слева от MMC (рис. 3), а затем «Новое правило» справа от MMC (рис. 4).

Правила для входящих подключений

Рисунок 3 Рисунок 4

Существует пять шагов, чтобы открыть порт и принять входящие подключения с помощью мастера:

  • Тип правила
  • Протокол и порты
  • Действие
  • Профиль
  • Имя

В этом примере мы откроем TCP-порт 20002 на серверах с ролью Parallels RAS Publishing Agents:

Windows Server

Windows Server

    Раздел
  1. Имя — введите «Имя» для этого правила. Рекомендуется указывать номер порта в названии, чтобы правило было легко узнаваемым. Например, новое правило можно назвать «Pub_Agent_20002_IN». Нажмите «Готово», когда будете готовы.
  2. Повторите описанную выше процедуру для каждого дополнительного порта и/или протокола, который вы хотите открыть на каждом сервере.

    Открытие портов в брандмауэре Windows Server с помощью командной строки (netsh)

    Чтобы открыть порт в брандмауэре Windows с помощью командной строки netsh, выполните следующую процедуру:

    1. Войдите на сервер, используя учетную запись администратора.
    2. Запустите Командную строку от имени администратора.
    3. Выполните следующую команду, чтобы открыть TCP-порт 20002 на серверах с ролью агентов публикации:

    Ниже объясняется формат команды netsh: Примечание. По умолчанию netsh открывает указанный порт во всех профилях. Если вы хотите указать конкретный профиль, используйте параметр profile: profile=public|private|domain

    Чтобы открыть дополнительные порты, повторите описанную выше процедуру для каждого дополнительного порта и/или протокола, который вы хотите открыть на каждом сервере.

    Открытие портов в брандмауэре Windows с помощью PowerShell

    Чтобы открыть порт в брандмауэре Windows с помощью команд PowerShell, выполните приведенную ниже процедуру (применимо только к ОС Windows Server 2012 R2 и 2016):

    1. Войдите, используя учетную запись администратора.
    2. Запустите Windows PowerShell от имени администратора.
    3. Выполните следующую команду, чтобы открыть TCP-порт 20002 на серверах с ролью агентов публикации:

    Windows Server

    Ниже объясняется формат команды PowerShell New-NetFirewallRule:

    Windows Server

    Примечание. По умолчанию New-NetFirewallRule открывает указанный порт во всех профилях. Чтобы указать конкретный профиль, добавьте в команду параметр –Profile с одним из следующих параметров:

    Повторите описанную выше процедуру для каждого дополнительного порта и/или протокола, который вы хотите открыть на каждом сервере.

    Как проверить, открыт ли порт

    Чтобы проверить, открыт порт или нет, необходимо активировать Telnet, который по умолчанию не установлен в Windows Server 2008, Windows Server 2012, Windows Server 2016 и Windows Server 2019. Самый простой способ установить Telnet клиент через командную строку следующим образом:

    <р>1. Запустите командную строку от имени администратора

    <р>2. Выполните команду ниже:

    dism /Online /Enable-feature /FeatureName:TelnetClient

    установить telnet

    Вы также можете активировать Telnet через графический интерфейс, если выполните действия, описанные в этой ссылке.

    <р>3. Затем проверьте, открыт ли порт, введя команду в следующем формате:

    telnet [IP-адрес] [порт]

    В приведенной выше спецификации команды IP-адрес — это IP-адрес сервера, на котором размещен Parallels RAS. При этом порт — это номер порта, который в данном случае может быть 20002. Вы можете проверить IP-адрес локального сервера, выполнив следующую команду:

    IP-конфиг

    Например, если вы выполните приведенную выше команду и обнаружите, что ваш IP-адрес 173.20.39.40, вы можете проверить, открыт ли порт 20002, введя следующую команду:

    телнет 173.20.39.40 20002

    ширина тестового порта брандмауэра Windows

    Если вы видите пустой экран, это означает, что на сервере открыт порт 20002, что означает успешное выполнение теста. Однако, когда вы видите сообщение «connecting…» или сообщение об ошибке, это означает, что порт 20002 не открыт на сервере.

    В этой статье описывается, как настроить брандмауэр для доменов и доверительных отношений Active Directory.

    Применимо к: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 Standard, Windows Server 2012 Standard
    Исходный номер базы знаний: 179442

    Не все порты, перечисленные в таблицах, необходимы во всех сценариях. Например, если брандмауэр разделяет участников и контроллеры домена, вам не нужно открывать порты FRS или DFSR. Кроме того, если вы знаете, что ни один клиент не использует LDAP с SSL/TLS, вам не нужно открывать порты 636 и 3269.

    Подробнее

    Два контроллера домена находятся в одном лесу или оба контроллера домена находятся в отдельном лесу. Кроме того, доверительные отношения в лесу — это доверительные отношения Windows Server 2003 или более поздних версий.

    < td>1024-65535/TCP < td>LDAP SSL < td>88/TCP/UDP < /tr>
    Порт(ы) клиента Порт сервера Служба
    135/TCP Сопоставитель конечных точек RPC
    1024-65535/TCP 1024-65535/TCP RPC для LSA, SAM, NetLogon (*)
    1024-65535/TCP/UDP 389/TCP/UDP LDAP
    1024-65535/TCP 636/TCP
    1024-65535/TCP 3268/TCP LDAP GC
    1024-65535/TCP 3269/TCP LDAP GC SSL
    53,1024-65535 /TCP/UDP 53/TCP/UDP DNS
    1024-65535/TCP/UDP Kerberos
    1024-65535/TCP 445/TCP SMB
    1024-65535/TCP 1024-65535/TCP FRS RPC (*)

    Порты NetBIOS, перечисленные для Windows NT, также необходимы для Windows 2000 и Windows Server 2003, когда настроены доверительные отношения с доменами, которые поддерживают только связь на основе NetBIOS.Примерами являются операционные системы на базе Windows NT или сторонние контроллеры домена, основанные на Samba.

    Для получения дополнительной информации о том, как определить порты сервера RPC, которые используются службами RPC LSA, см.:

      .
    • Раздел «Контроллеры домена и Active Directory» в разделе «Обзор служб и требования к сетевым портам для Windows».

    Windows Server 2008 и более поздние версии

    В более поздних версиях Windows Server 2008 расширен динамический диапазон клиентских портов для исходящих подключений. Новый начальный порт по умолчанию — 49152, а конечный порт — 65535. Поэтому вы должны увеличить диапазон портов RPC в своих брандмауэрах. Это изменение было внесено в соответствии с рекомендациями Управления по присвоению номеров в Интернете (IANA). Это отличается от домена смешанного режима, состоящего из контроллеров домена Windows Server 2003, серверных контроллеров домена Windows 2000 или устаревших клиентов, где динамический диапазон портов по умолчанию составляет от 1025 до 5000.

    Дополнительные сведения об изменении динамического диапазона портов в Windows Server 2012 и Windows Server 2012 R2 см. в следующих разделах:

    Порты NetBIOS, перечисленные для Windows NT, также необходимы для Windows 2000 и Server 2003, когда настроены доверительные отношения с доменами, которые поддерживают только связь на основе NetBIOS. Примерами являются операционные системы на базе Windows NT или сторонние контроллеры домена, основанные на Samba.

    (*) Сведения о том, как определить порты сервера RPC, которые используются службами LSA RPC, см.:

      .
    • Раздел «Контроллеры домена и Active Directory» в разделе «Обзор служб и требования к сетевым портам для Windows».

    (**) Для работы траста этот порт не требуется, он используется только для создания траста.

    Внешнее доверие 123/UDP требуется только в том случае, если вы вручную настроили службу времени Windows для синхронизации с сервером через внешнее доверие.

    Активный каталог

    Клиент Microsoft LDAP использует эхо-запрос ICMP, когда запрос LDAP ожидает ответа в течение длительного времени. Он отправляет запросы ping, чтобы убедиться, что сервер все еще находится в сети. Если он не получает ответов на проверку связи, он не выполняет запрос LDAP с LDAP_TIMEOUT.

    Перенаправитель Windows также использует сообщения ICMP Ping, чтобы убедиться, что IP-адрес сервера разрешается службой DNS перед установлением подключения, а также при обнаружении сервера с помощью DFS. Если вы хотите свести к минимуму трафик ICMP, вы можете использовать следующий образец правила брандмауэра:

    В отличие от уровня протокола TCP и уровня протокола UDP, ICMP не имеет номера порта. Это связано с тем, что ICMP напрямую размещается на уровне IP.

    По умолчанию DNS-серверы Windows Server 2003 и Windows 2000 Server используют эфемерные клиентские порты при запросе других DNS-серверов. Однако это поведение можно изменить с помощью определенного параметра реестра. Или вы можете установить доверие через обязательный туннель протокола туннелирования «точка-точка» (PPTP). Это ограничивает количество портов, которые должен открыть брандмауэр. Для PPTP должны быть включены следующие порты.

    < td>1024-65535/TCP
    Порты клиента Порт сервера Протокол
    1723/TCP PPTP

    Кроме того, вам потребуется включить IP PROTOCOL 47 (GRE).

    При добавлении разрешений к ресурсу в доверенном домене для пользователей в доверенном домене существуют некоторые различия между поведением Windows 2000 и Windows NT 4.0. Если компьютер не может отобразить список пользователей удаленного домена, рассмотрите следующее поведение:

    • Windows NT 4.0 пытается разрешить введенные вручную имена, обращаясь к основному контроллеру домена удаленного пользователя (UDP 138). Если такая связь не удалась, компьютер под управлением Windows NT 4.0 связывается со своим собственным основным контроллером домена, а затем запрашивает разрешение имени.
    • Windows 2000 и Windows Server 2003 также пытаются связаться с PDC удаленного пользователя для разрешения проблемы по протоколу UDP 138. Однако они не полагаются на использование собственного PDC. Убедитесь, что все рядовые серверы под управлением Windows 2000 и рядовые серверы под управлением Windows Server 2003, которые будут предоставлять доступ к ресурсам, имеют подключение UDP 138 к удаленному основному контроллеру домена.

    Ссылка

    Обзор служб и требования к сетевым портам для Windows — это ценный ресурс с описанием необходимых сетевых портов, протоколов и служб, используемых клиентскими и серверными операционными системами Microsoft, серверными программами и их подкомпонентами в системе Microsoft Windows Server. . Администраторы и специалисты службы поддержки могут использовать эту статью в качестве дорожной карты, чтобы определить, какие порты и протоколы требуются операционным системам и программам Microsoft для подключения к сети в сегментированной сети.

    Не следует использовать информацию о порте в обзоре службы и требованиях к сетевому порту для Windows для настройки брандмауэра Windows.Сведения о настройке брандмауэра Windows см. в разделе Брандмауэр Windows в режиме повышенной безопасности.

    В данном руководстве описана процедура изменения порта RDP в Windows Server 2012. Обратите внимание, что все дальнейшие процедуры предназначены для изменения порта RDP, что приведет к разрыву текущего соединения с сервером; поэтому мы рекомендуем использовать другие варианты подключения к серверу (например, через веб-консоль в вашей учетной записи хостинга). Для того, чтобы выполнить эту задачу, вам необходимо отредактировать реестр операционной системы. Реестр можно редактировать с помощью соответствующего программного редактора.

    Нажмите "Пуск" и введите cmd в поле поиска.

    Командная строка Windows Server 2012

    В появившемся черном окне консоли введите и выполните команду regedit.

    Windows Server regedit

    В редакторе реестра необходимо найти раздел RDP-Tcp, что можно сделать по этому пути

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp:

    номер порта regedit сервера Windows

    Затем необходимо найти и открыть в нем элемент PortNumber (как на рисунке выше).

    Далее переключитесь на десятичный формат ввода и укажите новый порт для подключения RDP:

    номер порта редактирования сервера Windows

    Выбирая новый порт для подключения, помните, что существует несколько категорий портов, разбитых по их номерам:

    • Номера от 0 до 10 213 — это известные порты, которые назначаются и контролируются Управлением по присвоению номеров в Интернете (IANA).
      Они обычно используются различными системными приложениями ОС.
    • Порты с 1024 по 49151 являются зарегистрированными портами, назначенными IANA. Их можно использовать для решения конкретных задач.
    • Номера портов от 49152 до 65535 — это динамические (частные) порты, которые могут использоваться любыми приложениями или процессами для решения рабочих задач.

    Правило переноса

    После изменения порта для удаленного подключения необходимо открыть его в настройках брандмауэра, иначе все попытки внешнего подключения будут блокироваться. Для этого необходимо использовать оснастку «Брандмауэр Windows в режиме повышенной безопасности». Вы можете открыть его, перейдя в меню: Диспетчер серверов —> Инструменты:

    инструменты диспетчера серверов Windows

    Необходимо выбрать «Правила для входящих подключений», щелкнуть правой кнопкой мыши по этому пункту и выбрать «Новое правило»:

    Внутренние правила брандмауэра Windows Server добавляют новые

    Мы создадим правило для порта:

    тип внутренних правил брандмауэра Windows Server

    Необходимо выбрать тип протокола (TCP или UDP) и указать порт, который мы задали при редактировании реестра (в нашем примере: протокол TCP, номер порта 60000):

    Ввод нового порта сервера Windows

    Следующий шаг – выбор типа действия, описывающего правило. В нашем случае необходимо разрешить подключение по указанному порту.

    сервер Windows разрешает подключение

    Следующий шаг — указать область действия правила — это зависит от того, где работает сервер (в рабочей группе, домене или с частным доступом):

    профиль правила брандмауэра сервера Windows

    Затем необходимо выбрать название для правила (рекомендуется подобрать название таким образом, чтобы правило потом было легко узнать среди других):

    Читайте также: