Ответ в теме: Как открыть порт на Windows Server 2019, если он не доходит до файрвола?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как открыть порт на Windows Server 2019, если он не доходит до файрвола? Ответ в теме: Как открыть порт на Windows Server 2019, если он не доходит до файрвола?

#35470
bot_avaOdin — Одинэсник
Участник

    Лилия, привет!

    Если на Windows Server 2019 порт «не доходит» до файрвола, значит проблема скорее всего не в самом файрволе Windows, а в более низком уровне сетевого стека или в настройках сети. Вот подробный разбор и пошаговые рекомендации, что проверить и как открыть порт в такой ситуации:

    1. **Проверка сетевого подключения и маршрутизации**

    — Убедитесь, что сервер действительно слушает нужный порт. Для этого выполните в командной строке с правами администратора:

         netstat -aon | findstr :<номер_порта>
         

    Если порт не отображается в состоянии LISTENING, значит служба не запущена или слушает другой порт.

    — Если служба слушает порт, но запросы не доходят, проверьте маршрутизацию и доступность сервера из сети:
    — Попробуйте `ping` с клиента на сервер (если ICMP разрешен).
    — Используйте `tracert` для проверки маршрута.
    — Проверьте, нет ли промежуточных сетевых устройств (маршрутизаторы, коммутаторы, внешние файрволы), которые блокируют порт.

    2. **Проверка настроек сетевого интерфейса**

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

    3. **Проверка и настройка Windows Firewall**

    — Если порт не доходит до файрвола, возможно, что трафик блокируется до уровня Windows Firewall (например, на уровне драйверов или сетевых фильтров).
    — Проверьте, включен ли вообще Windows Firewall:

         Get-NetFirewallProfile | Format-Table Name, Enabled
         

    — Если включен, создайте правило для открытия порта:

         New-NetFirewallRule -DisplayName "Open Port <номер_порта>" -Direction Inbound -Protocol TCP -LocalPort <номер_порта> -Action Allow
         

    — Если правило уже есть, попробуйте временно отключить Windows Firewall для проверки:

         Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
         

    Если после этого порт стал доступен, значит проблема в настройках файрвола.

    4. **Проверка сторонних антивирусов и сетевых фильтров**

    — Иногда сторонние антивирусы или сетевые фильтры (например, Endpoint Protection, IDS/IPS) могут блокировать трафик до Windows Firewall.
    — Временно отключите такие программы и проверьте доступность порта.

    5. **Проверка правил маршрутизации и NAT**

    — Если сервер находится за NAT или в сложной сетевой инфраструктуре, убедитесь, что проброс портов (port forwarding) настроен корректно.
    — Для Windows Server можно использовать `netsh interface portproxy` для проброса портов:

         netsh interface portproxy add v4tov4 listenport=<внешний_порт> listenaddress=<внешний_IP> connectport=<внутренний_порт> connectaddress=<внутренний_IP>
         

    — Проверьте, что служба IP Helper (iphlpsvc) запущена, и включена поддержка IPv6, иначе portproxy не работает.

    6. **Диагностика с помощью утилит**

    — Используйте `Test-NetConnection` в PowerShell для проверки доступности порта:

         Test-NetConnection -ComputerName  -Port <номер_порта>
         

    — Используйте `PortQry` для более детальной диагностики TCP/UDP портов.

    7. **Проверка локальных политик безопасности**

    — В некоторых случаях локальные политики безопасности или групповые политики могут блокировать трафик.
    — Проверьте настройки локальной политики безопасности (secpol.msc) и групповых политик.

    8. **Проверка журналов событий**

    — Посмотрите в журнал событий Windows (Event Viewer) на наличие ошибок, связанных с сетью, службой или файрволом.

    Если после всех проверок порт всё равно «не доходит» до файрвола, скорее всего проблема на уровне сети (маршрутизация, оборудование, внешние фильтры) или служба не слушает порт.

    **Пример команды для открытия порта в Windows Firewall:**

    New-NetFirewallRule -DisplayName "Allow TCP Port 3340" -Direction Inbound -Protocol TCP -LocalPort 3340 -Action Allow
    

    **Проверка, какая программа слушает порт:**

    netstat -aon | findstr :3340
    tasklist /FI "PID eq "
    

    **Проверка доступности порта с клиента:**

    Test-NetConnection -ComputerName  -Port 3340
    

    Если нужна помощь с конкретными командами или диагностикой — пиши, но в целом, если порт не доходит до файрвола, нужно смотреть на сетевой уровень и службы, которые слушают порт.
    https://winitpro.ru/index.php/2016/09/08/tcp-port-ping-s-pomoshhyu-powershell/
    https://winitpro.ru/index.php/2022/10/24/kakoy-process-slushaet-port-windows/

    База знаний 1С