Windows Server идва с включена защитна стена и това е правилната настройка по подразбиране: всичко, което опитва да се свърже отвън, се отказва, освен ако правило не го пропуска. Ще трябва да я промените, когато пуснете нещо свое — уеб приложение на порт 8080 или услуга, до която трябва да стига само офисът ви. Това ръководство прави всичко с PowerShell на Windows Server 2022. Изпробвахме всяко правило на нашия образ и го проверихме от втора машина, така че знаете, че наистина отваря или затваря порта.
Отворете PowerShell като администратор. Ако още не сте го направили, първо защитете RDP: онова ръководство обяснява как да ограничите самия отдалечен работен плот.
1. Вижте какво е включено
Get-NetFirewallProfile | Format-Table Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Get-NetConnectionProfile | Format-Table InterfaceAlias, NetworkCategory
На нашия нов сървър и трите профила (Domain, Private, Public) бяха включени, а мрежовият адаптер беше в Public. DefaultInboundAction показва NotConfigured, тоест стандартното поведение на Windows: входящото се блокира, изходящото се разрешава. Значи важат правилата за профила Public.
За да видите какво е разрешено да влиза:
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow |
Group-Object DisplayGroup | Sort-Object Count -Descending |
Select-Object Count, Name -First 8
Преброихме 54 включени входящи правила. Повечето са на самия Windows (Core Networking, Cast to Device, mDNS), плюс трите правила за отдалечения работен плот. Ping нямаше сред тях.
2. Отворете порт
Да речем, че приложението ви слуша на TCP порт 8080:
New-NetFirewallRule -DisplayName 'Web app 8080' -Direction Inbound `
-Protocol TCP -LocalPort 8080 -Action Allow
Правилото действа от момента на създаването си. От втората ни машина порт 8080 мина от блокиран в отворен, а порт 8081, на който също слушаше програма, остана блокиран. Правило без -Profile важи за всички профили, включително Public.
За диапазон или списък използвайте -LocalPort 8000-8010 или -LocalPort 80,443. За UDP сменете -Protocol.
3. Пускайте само определени адреси
Повечето услуги нямат нужда да приемат целия интернет. Ограничете правилото до адресите, които трябва да се свързват:
Set-NetFirewallRule -DisplayName 'Web app 8080' -RemoteAddress 203.0.113.10
Set-NetFirewallRule -DisplayName 'Web app 8080' -RemoteAddress 203.0.113.10, 198.51.100.0/24
Изпробвахме и двата варианта. С чужд адрес в -RemoteAddress тестовата ни машина вече не можеше да се свърже. След като добавихме нейния адрес, можеше. Сложете същия параметър на правилата за отдалечения работен плот, за да остане RDP само за офиса ви. Ако домашният ви IP често се сменя, помислете два пъти, преди да го направите за RDP.
4. Включете ping
Фабрично Windows не отговаря на ping. Правилото съществува, но е изключено:
Enable-NetFirewallRule -DisplayName 'File and Printer Sharing (Echo Request - ICMPv4-In)'
След това сървърът ни веднага започна да отговаря на ping. Нужно е на инструментите за наблюдение, които проверяват достъпността чрез ping. За да го изключите отново, използвайте Disable-NetFirewallRule със същото име.
5. Записвайте какво се блокира
Когато нещо не може да се свърже и не знаете защо, накарайте защитната стена да записва какво отхвърля:
Set-NetFirewallProfile -Profile Public -LogBlocked True -LogMaxSizeKilobytes 4096
Get-Content C:\Windows\System32\LogFiles\Firewall\pfirewall.log -Tail 20
Всеки блокиран опит се превръща в ред като този:
2026-10-25 02:07:25 DROP TCP 198.51.100.7 203.0.113.25 43386 445 60 S 2112839481 0 64240 - - - RECEIVE 4
Чете се така: дата и час, действие, протокол, адрес на източника, адрес на сървъра ви, порт на източника, порт на назначението. Имайте търпение: Windows пише дневника на порции, а тестовите ни записи се появиха около минута след опитите. Ограничението от 4 MB не позволява на файла да расте безкрайно.
6. Направете копие и разчистете
Преди голяма промяна запазете всички правила във файл:
netsh advfirewall export C:\fw-backup.wfw
Нашият експорт беше 148 KB. netsh advfirewall import C:\fw-backup.wfw връща точно този набор и заменя това, което има сега. Изтрийте по име правило, което вече не ви трябва:
Remove-NetFirewallRule -DisplayName 'Web app 8080'
Ако сте се заключили отвън
Ако правило отреже собствения ви отдалечен работен плот, отворете конзолата в контролния панел. Тя не минава през RDP, така че можете да влезете и да изпълните Remove-NetFirewallRule или Set-NetFirewallRule, за да върнете нещата.
NAT или собствен IP
При плановете с NAT интернет стига до сървъра ви през един личен порт, който води към отдалечения работен плот. Другите портове остават недостъпни отвън, каквото и да разрешите в защитната стена на Windows. За да обслужвате сайт или да приемате връзки на други портове, ви трябва собствен IPv4: Windows Small-IP (4 vCPU, 4 GB, 50 GB, $28/месец) ви дава такъв с всички портове отворени, и тогава решава защитната стена на Windows. Windows-Small струва $11/месец с NAT. И четирите Windows плана са на страницата Windows VPS, а плащането е в USDT, USDC или ETH в мрежите Base, Ethereum или Polygon.
Коментари
Още няма коментари. Бъди първият.