윈도우에서 포트가 열려 있는지 확인하는 방법
네트워크 관련 내용은 익숙하지 않으면 다소 복잡하게 느껴질 수 있습니다.열려 있든 닫혀 있든 포트는 PC가 로컬 네트워크 또는 온라인상의 다른 장치나 서비스와 통신하는 데 사용하는 비밀 통로와 같습니다.포트가 열려 있어도 아무 문제가 없는 경우도 있지만, 열려 있는 상태로 외부에 노출되면 보안 문제가 발생할 수 있습니다.이 가이드에서는 Windows에서 어떤 포트가 열려 있는지 확인하는 방법을 설명합니다.내부적으로 어떤 일이 일어나고 있는지 알면 예상치 못한 문제나 악성 침입을 예방할 수 있기 때문입니다.
윈도우에서 열려있는 포트를 확인하는 방법은 무엇인가요?
NetstatWindows에는 PowerShell의 ` Get-NetTCPConnectiongit config`와 GUI 기반의 `git config`와 같이 시스템 내부를 살펴볼 수 있는 몇 가지 내장 도구가 있습니다 TCPView.익숙해지면 매우 유용합니다.문제 해결을 하거나 이상한 프로세스가 실행 중인지 확인하려는 경우 이러한 도구가 큰 도움이 됩니다.활성화된 포트 목록과 함께 IP 주소, 수신 대기 상태 또는 연결 상태와 같은 정보가 표시됩니다.때로는 화면이 다소 복잡하게 보일 수 있지만, Windows의 일반적인 특징입니다.
Netstat 사용법 — 명령줄 클래식
이것이 고전적인 방법입니다.빠르고 현재 활성화된 모든 포트를 알려줍니다.관리자 권한으로 명령 프롬프트를 여세요(물론 윈도우는 필요 이상으로 복잡하게 만들어야 하죠).
- Windows 키와 R 키를 동시에 누른 다음,
cmdEnter 키를 누르지 말고 Ctrl + Shift + Enter관리자 권한을 요청하는 키를 누르세요.(관리자 권한 요청 메시지가 나타날 수 있는데, ‘예’를 선택하세요.) - 입력
netstat -na하고 Enter 키를 누르세요.
이 명령은 모든 네트워크 연결과 수신 대기 포트를 나열합니다.여기서 n은 주소(호스트 이름 확인 제외)를 숫자로 표시하고, a는 활성 연결을 모두 보여줍니다.출력에는 0.0.0.0:135 와 같은 줄이 표시될 수 있는데, 이는 135번 포트가 열려 있고 모든 IP 주소에서 수신 대기 중임을 의미합니다.따라서 해당 포트를 사용하지 않을 경우 보안 위험이 발생할 수 있습니다.
PowerShell 사용 – 더욱 유연한 활용
PowerShell을 선호하신다면(솔직히 말해서 PowerShell이 더 강력합니다), 현재 수신 대기 중인 포트만 표시하는 명령어를 실행할 수 있습니다.필터링 기능도 지원하므로 활성화된 포트를 더 쉽게 찾을 수 있습니다.
- 시작 버튼을 마우스 오른쪽 버튼으로 클릭하고 Windows PowerShell(관리자)을 선택합니다.
- 다음과 같이 입력
Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort | Sort-Object LocalPort하고 엔터를 누르세요.
열려 있는 포트와 해당 IP 주소를 표시해 줍니다.아주 간단하죠.0.0.0.0:445 같은 포트나 수신 대기 중인 로컬 IP 주소를 빠르게 확인할 수 있습니다.열려 있으면 안 되는 포트나 익숙하지 않은 포트가 보이면 해당 포트에서 어떤 프로세스가 실행 중인지 확인해 보는 것이 좋습니다.
TCPView — 시각적인 정보를 선호하는 사람들을 위한 GUI
때로는 직접 클릭해 보는 게 더 쉬울 때가 있습니다.TCPView를 다운로드하세요. Microsoft Sysinternals에서 무료로 제공합니다.압축을 풀고 실행하면 tcpview.exe열려 있는 네트워크 연결, 수신 대기 중인 연결, 설정된 네트워크 연결을 실시간으로 확인할 수 있습니다.명령줄 인터페이스가 익숙하지 않은 사용자에게는 TCPView가 더 직관적이고 시각적인 인터페이스를 제공하여 편리합니다.일부 시스템에서는 화면이 표시되는 데 시간이 다소 걸리거나 관리자 권한으로 실행해야 할 수 있습니다.
Telnet을 사용하여 원격 포트를 빠르게 확인하는 방법
Telnet을 사용하면 원격 서버 또는 장치의 포트가 열려 있는지 확인할 수 있습니다.자세한 정보는 제공하지 않지만 빠르게 확인할 수 있습니다.먼저 Windows 기능 켜기/끄기 에서 Telnet을 활성화해야 합니다.Telnet 항목을 찾아 확인란을 선택한 다음 확인을 누르세요.그 후 관리자 권한으로 명령 프롬프트를 열고 다음 명령을 실행합니다.
telnet <IP/hostname> <port>
화면이 깨끗해지고 깜빡이는 커서가 보이면 포트가 열려 있는 것이 확실합니다.연결 실패 메시지가 표시되면 포트가 차단되었거나 닫혀 있을 가능성이 높습니다.이 기능은 원격 서버를 빠르게 확인할 때 유용합니다.
그렇다면 모든 항구를 폐쇄해야 할까요?
꼭 그런 건 아닙니다.인터넷은 위험한 곳일 수 있지만, 용도를 알고 있다면 열려 있는 포트가 많더라도 정상적이고 안전합니다.80번이나 443번 포트는 웹 트래픽용이므로 웹사이트나 서버를 운영하는 경우라면 당연히 열려 있어야 합니다.로컬호스트 포트(예: 127.0.0.1)는 자신의 컴퓨터에서만 접근 가능하므로 큰 위협이 되지 않습니다.하지만 0.0.0.0(모든 인터페이스)에서 전 세계에 공개된 모든 것은 용도를 모르거나 필요하지 않다면 위험할 수 있습니다.무엇이 정상적인 것이고 무엇이 비정상적인지 아는 것이 중요합니다.
포트를 닫기 전에 방화벽 규칙을 확인하세요.원격 데스크톱이나 파일 공유와 같은 서비스는 필요한 포트를 열어두는 경우가 있습니다.사용하지 않거나 의심스러운 포트는 조사해야 합니다.그렇지 않으면 모든 포트를 무턱대고 닫아버리면 예기치 않게 문제가 발생할 수 있습니다.
윈도우에서 열려 있는 포트를 닫는 방법은 무엇인가요?
신뢰할 수 없거나 열어둘 필요가 없는 포트가 있다면 프로세스 ID(PID)를 사용하여 해당 프로세스를 종료할 수 있습니다.다음 명령어를 실행하세요.
netstat -aon
이 화면에는 모든 활성 연결과 해당 PID가 표시됩니다.문제의 포트 또는 주소를 찾아 PID를 확인한 다음 다음 명령을 실행하세요.
taskkill /f /pid <PID>
이렇게 하면 해당 포트를 사용하는 프로세스가 강제로 종료됩니다.하지만 주의해야 할 점은, 어떤 프로세스인지 모르는 상태에서 임의로 프로세스를 종료하면 문제가 발생할 수 있다는 것입니다.먼저 프로세스 이름을 구글에서 검색해 보는 것이 좋습니다.
특정 포트로 들어오는 연결을 차단하는 더 확실한 방법은 Windows 방화벽을 사용하는 것입니다.관리자 권한으로 명령 프롬프트를 실행하세요.
netsh advfirewall firewall add rule name="BlockPortX" dir=in action=block protocol=TCP localport=<port number>
BlockPortX를 설명적인 이름으로 변경하고 <포트 번호>를 실제 포트 번호로 바꾸세요.다시 열려면 action=block을 allow 로 변경하면 됩니다.나가는 트래픽에 대해 방향을 out 으로 변경하고 TCP와 UDP를 전환할 수도 있습니다.
다시 한번 강조하지만, 포트를 닥치는 대로 닫지 마세요.어떤 포트가 열려 있는지 파악한 후 방화벽 규칙을 안전망으로 활용하십시오.만일의 사태에 대비하는 것이 최선입니다.
결론적으로, 열려 있는 포트를 살펴보는 것은 기술적이고 번거롭게 느껴질 수 있지만, 컴퓨터 보안을 유지하기 위해 꼭 필요한 습관입니다.특히 서버를 운영하거나 온라인 개인정보 보호를 중요하게 생각한다면 더욱 그렇습니다.