Чтобы сервис на VPS Windows (IIS, игра, API, БД) был доступен из интернета, часто нужно разрешить порт в брандмауэре Windows Defender в дополнение к правилам у хостера.
Перед началом
- Вход по RDP: Подключение по RDP.
- Запишите номер порта и протокол (TCP/UDP).
- Открывайте только необходимое (минимальные привилегии).
Способ 1: мастер в GUI
- Брандмауэр Защитника Windows в режиме повышенной безопасности (
wf.msc). - Правила для входящих подключений → Создать правило…
- Порт → TCP (или UDP) → Определённые локальные порты, например
80,443,8080. - Разрешить подключение.
- Профили (Доменный, Частный, Публичный) — на VPS часто нужен Публичный.
- Имя, например
HTTP IIS 80.
Способ 2: PowerShell (TCP 80 и 443)
PowerShell от администратора:
PowerShellNew-NetFirewallRule -DisplayName "HTTP TCP 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow New-NetFirewallRule -DisplayName "HTTPS TCP 443" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
Произвольный порт:
PowerShellNew-NetFirewallRule -DisplayName "MonApp TCP 5000" -Direction Inbound -Protocol TCP -LocalPort 5000 -Action Allow
Проверка, что сервис слушает
PowerShellGet-NetTCPConnection -State Listen | Where-Object { $_.LocalPort -eq 80 }
или:
PowerShellnetstat -ano | findstr :80
Безопасность
- Открытый порт виден сканерам: обновления, сильные пароли, по возможности TLS для веба.
- Проверьте также группы безопасности / ACL у провайдера, если трафик не доходит до сервера.
Устранение неполадок
- Всё ещё недоступно — приложение должно слушать
0.0.0.0или публичный IP, а не только127.0.0.1. - RDP заблокирован — не удаляйте системные правила RDP; используйте консоль провайдера при потере доступа.