서버에서 웹 서버나 게임 서버 같은 프로그램을 실행하면, 외부에서 접속할 수 있도록 Windows 방화벽에서 해당 포트를 허용해야 합니다. 이 글은 서버 안의 운영체제 방화벽 설정 방법입니다. Windows Server 2016과 2019에서 방법이 같습니다.
주의
원격 데스크톱 포트(기본 3389)를 막는 규칙을 만들거나, 원격 데스크톱 허용 규칙을 끄지 마세요. 서버에 다시 접속할 수 없게 됩니다.
열어야 할 포트 확인
먼저 프로그램이 쓰는 포트 번호와 프로토콜(TCP 또는 UDP)을 확인합니다. 프로그램 설명서나 설정 파일에 적혀 있습니다.
| 예 | 포트 | 프로토콜 |
|---|---|---|
| 웹 서버 (HTTP) | 80 | TCP |
| 웹 서버 (HTTPS) | 443 | TCP |
| 마인크래프트 Java 서버 기본 | 25565 | TCP |
방법 1. 화면에서 규칙 만들기
- 시작 버튼을 마우스 오른쪽 버튼으로 누르고 실행을 누릅니다.
wf.msc를 입력하고 확인을 누릅니다. 고급 보안이 포함된 Windows Defender 방화벽 창이 열립니다. (Windows Server 2016은 고급 보안이 포함된 Windows 방화벽)- 왼쪽에서 인바운드 규칙을 누릅니다.
- 오른쪽 작업 창에서 새 규칙... 을 누릅니다. 새 인바운드 규칙 마법사가 열립니다.
- 규칙 종류에서 포트를 고르고 다음을 누릅니다.
- TCP 또는 UDP 를 고르고, 특정 로컬 포트에 포트 번호를 입력합니다. 다음을 누릅니다.
- 여러 포트:
80, 443 - 포트 범위:
30000-30100 - TCP 와 UDP 를 모두 열어야 하면 규칙을 하나씩 따로 만듭니다.
- 여러 포트:
- 연결 허용을 고르고 다음을 누릅니다.
- 도메인, 개인, 공용 세 가지 모두 체크된 상태로 두고 다음을 누릅니다.
- 이름에 알아보기 쉬운 이름을 적습니다. (예:
Minecraft 25565 TCP) 마침을 누릅니다. - 인바운드 규칙 목록에 방금 만든 규칙이 초록색 체크 표시와 함께 나타나면 적용된 것입니다.
방법 2. PowerShell 로 규칙 만들기
시작 버튼을 마우스 오른쪽 버튼으로 누르고 Windows PowerShell(관리자) 를 누릅니다.
아래 명령을 입력합니다. 이름과 포트는 바꿔서 쓰세요.
# TCP 포트 허용 New-NetFirewallRule -DisplayName "Minecraft 25565 TCP" -Direction Inbound -Protocol TCP -LocalPort 25565 -Action Allow # UDP 포트 허용 New-NetFirewallRule -DisplayName "Game 27015 UDP" -Direction Inbound -Protocol UDP -LocalPort 27015 -Action Allow # 여러 포트 한 번에 New-NetFirewallRule -DisplayName "Web 80,443" -Direction Inbound -Protocol TCP -LocalPort 80,443 -Action Allow규칙 정보가 출력되고
Enabled : True가 보이면 적용된 것입니다.
특정 IP 에서만 접속을 허용하려면 -RemoteAddress 를 붙입니다.
New-NetFirewallRule -DisplayName "MSSQL from office" -Direction Inbound -Protocol TCP -LocalPort 1433 -RemoteAddress 203.0.113.10 -Action Allow규칙 끄기와 삭제
화면: 인바운드 규칙 목록에서 규칙을 마우스 오른쪽 버튼으로 누르고 규칙 사용 안 함 또는 삭제를 누릅니다.
PowerShell:
Remove-NetFirewallRule -DisplayName "Minecraft 25565 TCP"
허용했는데도 접속이 안 될 때
프로그램이 실행 중인지 확인합니다.
프로그램이 해당 포트에서 대기 중인지 PowerShell 에서 확인합니다.
Get-NetTCPConnection -State Listen -LocalPort 25565결과가 나오지 않으면 프로그램이 그 포트를 쓰지 않는 것입니다. 프로그램 설정을 확인하세요.
규칙의 프로토콜(TCP/UDP)과 포트 번호가 프로그램 설정과 같은지 확인합니다.
프로그램이 따로 만든 차단 규칙이 없는지 인바운드 규칙 목록에서 확인합니다. 빨간 차단 표시가 있는 규칙은 허용 규칙보다 먼저 적용됩니다.