Як відкрити порт Windows Server

Як відкрити порт Windows Server

Як відкрити порт Windows Server: детальна інструкція для 2016 і 2019

Короткий опис: Покрокова інструкція, як відкрити порт Windows Server (2016/2019) через брандмауер, перевірити, чи він слухає, і не зламати при цьому безпеку сервера.

Адмінить Windows Server — це завжди про дрібні, але критичні речі. Наприклад: підняли новий сервіс, повісили його на порт 8080 або 5057, ззовні до нього не достукатись, замовник нервує, а ви вже десятий раз перевіряєте код і налаштування IIS/SQL/додатка. Дуже часто проблема банальна — порт закритий на брандмауері або сам сервер взагалі не слухає цей порт.

Типова картина: додаток “ніби працює”, локально щось відкривається, але з іншого сервера або з інтернету — тиша. Жодних відповідей, таймаути, моніторинг червоніє. У таких ситуаціях важливо швидко зрозуміти дві речі: як правильно відкрити порт на Windows Server 2016 / 2019, і як перевірити, що він реально доступний з мережі, а не тільки “на папері” в правилах брандмауера.

Коли виникає проблема або навіщо це потрібно

Найчастіше питання “як відкрити порт Windows Server” з’являється в таких сценаріях:

  • Налаштовуєте web-сервер (IIS, Apache, Nginx) на нестандартному порту — наприклад 8080 замість 80 або 443.
  • Піднімаєте SQL Server і хочете відкрити порт 1433 для доступу з інших машин.
  • Встановлюєте термінальний сервіс, VPN, FTP, і потрібні специфічні порти.
  • Програма розробників слухає порт 5057, 7000, 389 або будь-який інший — а ззовні до неї не підключитись.
  • Міграція сервісів: переносите софт на новий Windows Server 2016/2019, все налаштовано “як було”, але мережевий доступ ламається через інший профіль брандмауера або політики.

Симптоми зазвичай такі:

  • З іншого сервера telnet IP порт — або відмова, або таймаут.
  • У браузері при зверненні на http://IP:порт — нічого не відкривається.
  • Моніторинг показує порт як “closed” або “filtered”.

Наслідки можуть бути не лише технічні. Якщо це бойовий сервер:

  • клієнти не можуть зайти в особистий кабінет або CRM;
  • мікросервіси між собою не спілкуються через закритий порт;
  • резервне копіювання або реплікація БД не працює;
  • DevOps-ланцюжок ламається через те, що один із сервісів “невидимий”.

І дуже важливий момент: відкрити порт — це не просто “пробити діру” в Windows Defender Firewall. Потрібно:

  • переконатися, що додаток реально слухає цей порт;
  • правильно вибрати TCP чи UDP;
  • налаштувати профілі (Domain / Private / Public), щоб не відкрити порт у всесвітній інтернет випадково;
  • за потреби — налаштувати ще й зовнішній маршрутизатор/файрвол для пробросу порту.

Найшвидший спосіб

Якщо потрібно максимально швидко відкрити порт на Windows Server 2016 або 2019 для тесту (наприклад, 8080 або 5057), алгоритм простий:

  1. Перевірити, чи процес взагалі слухає потрібний порт.
  2. Створити inbound-правило в Windows Defender Firewall для цього порту.
  3. Перевірити доступність порту з іншої машини.

Спрощений варіант для GUI:

  • Натискаєте Win + R, вводите wf.msc, натискаєте Enter — відкривається “Windows Defender Firewall with Advanced Security”.
  • Зліва вибираєте Inbound Rules → справа New Rule….
  • Тип правила: Port, далі протокол TCP або UDP, вказуєте порт (наприклад 8080).
  • Дія: Allow the connection.
  • Профілі: якщо не впевнені — тимчасово поставте всі три (Domain, Private, Public), але краще розуміти, в якій мережі живе сервер.
  • Даєте назву правилу, наприклад “App TCP 8080” → Finish.

Для Windows Server 2019 як відкрити порт Windows Server виглядає майже так само, як і для 2016, інтерфейс брандмауера однаковий. Різниця зазвичай не в версії ОС, а в політиках безпеки, які накрутила організація.

Покрокова інструкція

  1. Підготовка та перевірка системи

    1. Перевіряємо, чи порт взагалі слухається

    Багато хто починає з брандмауера, а потім виявляється, що сервіс навіть не запущений. Логіка проста: спочатку — сервіс, потім — порт, потім — брандмауер і мережа.

    На самому сервері відкрийте PowerShell або CMD від імені адміністратора і виконайте, наприклад для порту 8080:

    PowerShell (зручніше для нових версій):

    Get-NetTCPConnection -LocalPort 8080

    CMD-варіант:

    netstat -na | findstr “8080”

    Якщо у відповідь нема жодного запису зі статусом LISTENING на вашому порту — додаток його не слухає. У такому разі відкривати порт у Windows Server Firewall сенсу немає, поки не налаштований сервіс.

    2. Уточнюємо протокол: TCP чи UDP

    Більшість бізнес-додатків, веб-сервісів, SQL працюють по TCP. UDP — це часто DNS, VoIP, стрімінг, деякі VPN. Якщо не впевнені — майже завжди це TCP, але краще подивитися документацію до програми.

    3. Перевіряємо, чи немає іншого файрвола

    Окрім вбудованого Windows Defender Firewall, на сервері можуть стояти:

    • агент антивірусу з власним файрволом;
    • мережевий агент безпеки;
    • старий Windows Firewall, налаштований Group Policy.

    Якщо ви створили правило в Windows Defender Firewall, а порт все одно закритий — перевірте, чи немає іншого ПЗ, що блокує трафік.

  2. Основні дії та налаштування

    1. Відкриваємо брандмауер з розширеними параметрами

    Є два основні варіанти — для Windows Server 2016 і 2019 однаково:

    • Win + R → вводите wf.msc → Enter.
    • Або через пошук: натискаєте кнопку “Пуск”, вводите “firewall” → Windows Defender Firewall with Advanced Security.

    Відкриється консоль, де зліва:

    • Inbound Rules — вхідні підключення;
    • Outbound Rules — вихідні;
    • Windows Defender Firewall Properties — загальні профілі (Domain, Private, Public).

    2. Створюємо inbound-правило для порту

    Саме тут відбувається “магія” — на цьому кроці ви власне і відкриваєте порт Windows Server.

    • Ліворуч виберіть Inbound Rules.
    • Праворуч натисніть New Rule….
    • У мастері оберіть Port → Next.
    • Виберіть TCP або UDP (залежно від вашого сервісу).
    • Оберіть Specific local ports і вкажіть номер:
      • один порт: наприклад 8080 або 5057;
      • декілька портів: 80,443,8080;
      • діапазон: 1000-1010.
    • Натисніть Next.
    • Обирайте Allow the connection.
    • Ще раз Next, далі профілі:
      • Domain — якщо сервер у домені AD і клієнти з доменної мережі;
      • Private — для приватних мереж (часто для внутрішніх сегментів);
      • Public — для публічних мереж (часто краще не чіпати без потреби).
    • Якщо не розумієте, де знаходиться сервер, тимчасово можна позначити всі три, але це ризиковано для сервера, який дивиться в інтернет.
    • Дайте осмислену назву правилу:
      • “App API TCP 8080”;
      • “SQL Server Port 1433”;
      • “LDAP TCP 389”.
    • Натисніть Finish.

    Ці кроки ідентичні як для windows server 2019 як відкрити порт windows server, так і для windows server 2016 як відкрити порт windows server. Зовнішній вигляд консолі майже не відрізняється.

    3. Чи потрібно створювати outbound-правило?

    Для більшості сценаріїв вихідні підключення і так дозволені. Проте якщо у вас сервер в жорсткому корпоративному середовищі і outbound теж фільтрується:

    • у тій же консолі перейдіть до Outbound Rules;
    • натисніть New Rule… → знову Port → TCP/UDP → той самий порт → Allow the connection → профілі → назва.

    Це потрібно, якщо додаток не тільки приймає підключення, а й сам ініціює їх з того ж порту.

    4. Нюанс для доступу з інтернету

    Якщо ваш Windows Server стоїть за роутером або окремим фізичним firewall’ом, то навіть якщо ви відкрили порт у Windows:

    • на зовнішньому пристрої все одно треба зробити port forwarding (NAT) з публічної IP-адреси на внутрішню адресу сервера;
    • перевірити, що зовнішній firewall не блокує цей порт.

    Тобто “відкрити порт Windows Server” — це тільки одна частина ланцюжка.

  3. Перевірка результату та безпеки

    1. Перевіряємо, що правило створене і активне

    У вікні Inbound Rules знайдіть ваше нове правило по назві. Переконайтесь, що в колонці “Enabled” стоїть “Yes”. Якщо ні — увімкніть правило правою кнопкою → Enable Rule.

    2. Тестуємо порт локально

    На сервері ще раз перевіряємо, що порт у стані LISTENING:

    netstat -na | findstr “8080”

    Якщо бачите строку на кшталт:

    TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING

    — значить процес слухає на всіх інтерфейсах, це добре. Якщо прив’язка тільки до 127.0.0.1 — сервіс доступний лише локально, тоді ззовні ви не достукаєтесь, навіть якщо брандмауер відкритий.

    3. Перевіряємо порт з іншої машини

    З іншого сервера в цій же мережі:

    • через CMD: telnet IP_сервера 8080 (якщо telnet-клієнт встановлений);
    • або через браузер: http://IP_сервера:8080 — для веб-сервісів;
    • або через спеціальні утиліти на кшталт PortQry, nmap тощо.

    Сценарій:

    • Якщо з іншого сервера порт відкривається, але з інтернету — ні, проблема на рівні зовнішнього файрвола/роутера.
    • Якщо ні локально, ні ззовні — або сервіс не слухає, або правило у Windows створене неправильно (не той протокол/порт/профіль).

    4. Перевіряємо профілі (Domain/Private/Public)

    Поширений випадок: сервер додано до домену, але через мережеві налаштування він чомусь знаходиться в профілі Public. Ви створили правило тільки для Domain, а трафік застосовується до Public — результат: порт закритий.

    Перевірити поточний профіль можна в “Windows Defender Firewall with Advanced Security” у розділі “Monitoring” або в загальних властивостях брандмауера.

    Якщо сумніваєтесь — на етапі продуктового стенду краще створити правило, яке діє на всі три профілі, а вже потім звузити.

Корисні поради

  • Не відкривайте “All Ports” без реальної причини. У мастері можна вибрати “All local ports”, але це майже завжди погана ідея для production-сервера.
  • Давайте нормальні імена правилам. Через рік “Rule_1”, “Rule_2” вас просто знесуть морально. Пишіть щось на кшталт “API Service TCP 5057 Inbound”.
  • Для тесту можна створити тимчасове правило і потім його видалити. Наприклад, щоб перевірити, чи проблема саме у файрволі, на короткий час дозволити порт з усіх профілів, а після діагностики звузити або вимкнути правило.
  • Логування брандмауера допомагає ловити дивні кейси. У властивостях Windows Defender Firewall можна увімкнути логування відкинутих пакетів та потім по логах дивитися, що саме блокується.
  • Маловідомий лайфхак: відкриття порту через PowerShell однією командою.
    Якщо любите автоматизацію, правило можна створити так:

    New-NetFirewallRule -DisplayName “App TCP 8080” -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow -Profile Domain,Private

    Це особливо зручно, коли потрібно однаково налаштувати кілька серверів або додати цей крок у скрипт розгортання.

Поширені помилки

Є кілька типових “граблів”, на які наступають навіть досвідчені адміни:

  • Відкрили порт, але сервіс слухає тільки на 127.0.0.1
    Симптом: з самого сервера все працює (curl localhost:порт, браузер на самому сервері), а з інших машин — таймаут.
    Як виправити: перевірити конфіг сервісу (IIS binding, конфіг API, налаштування SQL). Порт має бути прив’язаний або до 0.0.0.0, або до конкретної IP-адреси сервера в мережі.
  • Вказали неправильний протокол (TCP/UDP)
    Наприклад, відкрили UDP, а сервіс працює по TCP. На вигляд все ніби правильно, правило є, але доступу немає. В документації до програми зазвичай чітко написано, що саме використовується.
  • Правило створено тільки для Domain, а сервер у профілі Public
    З боку це виглядає як “нічого не працює, хоча правило є”. Потрібно або змінити мережевий профіль, або додати Public до правила, або зробити окреме правило під потрібний профіль.
  • Забули про зовнішній файрвол/роутер
    Класика: у локальній мережі все відкривається, а з інтернету — ні. Значить, потрібно налаштувати port forwarding, правила на зовнішньому firewall’і, або перевірити, чи провайдер не блокує певні порти.
  • Відкрили занадто багато “зайвого”
    Наприклад, тимчасово дозволили всі порти та всі профілі “щоб працювало”, потім забули. Це вже не технічна, а безпекова проблема: відкриті порти — це потенційні вектори атаки. Після тестів обов’язково повертайтеся і чистіть такі правила.

Часті запитання

1. Як відкрити порт Windows Server 2019 для конкретної програми, а не тільки номера порту?

У вікні “New Inbound Rule Wizard” замість “Port” можна вибрати “Program”. Далі вказати шлях до .exe файлу вашого сервісу. Брандмауер автоматично дозволить трафік для цього додатка. Це зручно, коли програма сама відкриває кілька портів або вони можуть змінюватися.

2. Чим відрізняється відкриття порту на Windows Server 2016 і Windows Server 2019?

Суттєвої різниці немає. І в 2016, і в 2019 ви працюєте через “Windows Defender Firewall with Advanced Security”, ті самі Inbound/Outbound Rules, ті самі майстри створення правил. Інколи можуть відрізнятися політики безпеки, але сам процес однаковий.

3. Чому після створення правила порт все одно закритий?

Найчастіші причини: сервіс не запущений або не слухає цей порт; використано не той протокол (TCP/UDP); правило створено не для того профілю (Domain/Private/Public); звернення йде через інший файрвол або через NAT без пробросу порту; є інше правило з більш високим пріоритетом, яке блокує трафік.

4. Як перевірити, що порт на Windows Server реально відкритий ззовні?

З іншої машини в тій же мережі використайте telnet (telnet IP порту), утиліти на кшталт PortQry або nmap. Також можна просто зайти браузером на адресу виду http://IP:порт, якщо це веб-сервіс. Якщо локально порт LISTENING, а ззовні не відкривається — перевіряйте брандмауер і зовнішній маршрутизатор.

5. Чи безпечно відкривати нестандартні порти на Windows Server у публічний інтернет?

Будь-який відкритий порт — потенційна точка атаки. Якщо порт доступний з інтернету, потрібно: оновлювати сервіс; обмежити доступ по IP, де це можливо; використовувати VPN або тунелі; моніторити логі. Нестандартний порт дає мінімальне “security through obscurity”, але це не захист.

6. Мені потрібно на Windows Server 2019 як відкрити порт Windows Server для SQL (1433). Що краще: порт чи програмне правило?

Якщо це стандартний SQL Server і ви точно знаєте порт (1433), простіше створити порт-правило. Якщо конфіг може змінюватись або використовуються кілька інстансів з динамічними портами, зручніше прив’язатися до програми (sqlservr.exe) і налаштувати обмеження по мережі.

7. Чи потрібно створювати окреме правило для кожного порту, якщо програма використовує 80, 443 і 8080?

Не обов’язково. У майстрі створення правила можна вказати кілька портів через кому (80,443,8080). Але з точки зору адміністрування інколи зручніше розділити: одне правило для HTTP/HTTPS, інше — для додаткового API-порту, щоб потім простіше вимикати/аналізувати.

8. Як на Windows Server 2016 як відкрити порт Windows Server через скрипт, а не руками в GUI?

Найзручніше через PowerShell: команда New-NetFirewallRule дозволяє за раз створити правило з потрібним напрямком, протоколом, портом і профілями. Наприклад:

New-NetFirewallRule -DisplayName “Web TCP 8080” -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow -Profile Domain,Private

9. Якщо вимкнути Windows Defender Firewall повністю, це вирішить проблему з портом?

Часто так, але це дуже погана ідея для бойового сервера. Ви відкриваєте все одразу, а не тільки потрібний порт. Для діагностики інколи можна на хвилину відключити файрвол і перевірити, чи в ньому справа, але потім одразу вмикайте назад і налаштовуйте конкретні правила.

10. Чому в локальній мережі порт відкритий, а через VPN — закритий?

Може бути кілька причин: VPN-шлюз блокує цей порт; до VPN застосовується інший профіль брандмауера; маршрутизація налаштована таким чином, що трафік йде в інший сегмент. Перевіряйте, з якої IP-адреси заходить VPN-клієнт і які до цієї мережі застосовані правила.

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

Якщо часто доводиться відкривати порти, налаштовувати брандмауер або захищати сервери, вам можуть бути корисні й інші розділи нашого IT-блогу:

  • Браузери — для налагодження доступу до веб-сервісів і перевірки роботи портів через браузер.
  • Інтернет безпека — про безпечну роботу з відкритими портами, захист сервера та мережі.
  • WINDOWS — матеріали про налаштування Windows Server і клієнтських ОС.
  • Програми — корисні утиліти для тестування портів, мережевого доступу та діагностики.
  • VPN — якщо доступ до відкритих портів краще робити через захищені тунелі.

Закладки

Якщо вам була корисна ця стаття, додайте наш блог
блог про інтернет безпеку
у закладки.

Натисніть Ctrl + D

Рекомендовані статті