Windows 컴퓨터에서 포트가 차단되어 있는지 확인하는 방법


105

Windows 플랫폼에서 로컬 시스템의 포트 (예 : 3306 localhost)가 차단 되어 있는지 확인해야하는 기본 옵션 은 무엇입니까?


1
간단히 말하면 방화벽이나 게이트웨이에 의해 차단 된 것과 같이 차단 된 것입니까, 아니면 다른 것에 의해 이미 사용 중이라는 의미입니까?
squillman 2016 년

1
감사 내 PC 방화벽 테스트는 특정 포트 또는 외부 소스에서 포트 범위를 테스트 할 수 있습니다.
피터 스튜어

답변:


111

Windows 컴퓨터를 사용 중이므로 이러한 작업을 수행 할 수 있습니다.

  • 다음 명령을 실행하고 ": 3306"리스너를 찾으십시오 (UDP / TCP는 언급하지 않았습니다). 포트에서 무언가 실행중인 것을 확인할 수 있습니다.

    netstat -a -n

  • 이 후,이 포트에서 들어오는 연결이 예상되고 방화벽이이를 차단할 수 있다고 생각되면 Windows 방화벽 로깅을 시작 하고 연결이 끊어진 로그를 확인할 수 있습니다

    • Windows 방화벽, 고급 설정으로 이동
    • "로컬 영역 연결"옆에있는 설정 버튼을 클릭하십시오.
    • "삭제 된 패킷 로그"를 선택하십시오.
    • 로그 파일 위치를 봅니다 (없는 경우 정의).
    • 확인을 클릭하십시오
    • 이제 연결 시도가 완료되면 (이 작업이 완료되었다고 가정 할 때) 포트 3306의 삭제에 대한 로그 파일을보십시오.
    • 이 경우이 포트에 대한 예외를 추가하려고합니다.
  • 방화벽 상태를 확인하는 명령이 하나 더 있습니다
    (Windows 7 사용자 용 업데이트 ( Nick아래 참조 ) -netsh advfirewall firewall 사용 )

    netsh 방화벽 표시 상태

    • 여기에는 차단 된 포트와 응용 프로그램 연결이있는 활성 수신 포트가 표시됩니다.
  • 이 명령은 Windows 방화벽 구성 세부 사항을 덤프합니다.

    netsh 방화벽 쇼 설정


로깅을 시작한 후 활성 블록 (방화벽으로 들어오는 연결이 끊어짐)이있는 경우 로그에 해당 블록이 표시됩니다.

3306에서 수신 대기중인 응용 프로그램 / 서비스를 실행중인 경우 방화벽 구성에서 사용 가능으로 표시해야합니다. 이것이 보이지 않으면 방화벽에 예외를 추가하여이 앱 / 서비스를 허용하지 않은 것 같습니다.

마지막으로 포트 3306은 일반적으로 MySQL에 사용됩니다. 따라서이 Windows 시스템에서 MySQL 서버를 실행한다고 가정합니다. 따라서 수신 연결을 승인하는 3306에 대한 리스너가 표시되어야합니다. 표시되지 않으면 먼저 응용 프로그램 (MySQL)을 사용하여 시작해야합니다.


4
자세한 내용은 +1
Sage

3
Windows Vista부터는 "netsh firewall"명령이 더 이상 사용되지 않습니다. 대신 "netsh advfirewall 방화벽"을 사용하는 것이 좋으며 기사 go.microsoft.com/fwlink/?linkid=121488
Nick DeVore

5
명령 줄에서 출력을 구문 분석하려면 추가 |find "3306"예를 들어, 명령에C:\Windows\System32>netstat -an |find "3306"
시스 Timmerman

두 번째 권장 사항의 2 단계에서 지정한 설정 버튼을 찾을 수 없습니다.
Bassie


23

NETSTAT포트가 수신 중인지 알려 주지만 포트가 외부에 열려 있는지 여부는 알려주지 않습니다 . 이것이 의미 NETSTAT하는 바는 0.0.0.0이 포트 3306에서 수신 중이지만 방화벽이 해당 포트를 여전히 차단하여 외부 연결을 방해 하고 있음을 보여줄 수 있습니다. NETSTAT혼자 의존하는 것만 으로는 충분하지 않습니다 .

포트가 차단되었는지 확인하는 가장 좋은 방법은 클라이언트 시스템에서 포트 스캔을 수행하는 것입니다.

포트 스캔을 수행하는 방법은 여러 가지가 있지만 Windows에 대해 언급 한 이후 Microsoft 명령 줄 유틸리티 PortQry와 그래픽 버전 PortQryUI를 제안합니다.

열려있는 모든 포트를 테스트하려면

portqry.exe -n #.#.#.#   

특정 포트를 테스트하려면

portqry.exe -n #.#.#.# -e #

예를 들어 192.168.1.1에서 라우터의 웹 인터페이스를 테스트하려면 다음을 수행하십시오.

portqry.exe -n 192.168.1.1 -e 80

다음을 반환합니다 :

TCP port 80 (http service): LISTENING

HTTPD를 실행하지 않는 로컬 시스템에서 테스트하면 다음이 반환됩니다.

TCP port 80 (http service): NOT LISTENING

PortScan 유틸리티를 사용하면 3 가지 결과 중 하나를 얻을 수 있습니다.

  • Listening 서버가 지정된 포트에서 수신 대기 중임을 의미합니다.
  • Filtered 방화벽 또는 소프트웨어 문제를 나타내는 재설정 플래그가 설정된 TCP 수신 확인 패킷을 수신했음을 의미합니다.
  • Not Listening 응답을 전혀받지 않았다는 의미입니다.

telnet일반적으로 OS에 기본적으로 설치되는 다른 명령 줄 옵션입니다. 이 명령 줄 유틸리티를 사용하면 포트가 네트워크 요청에 응답하는지 빠르게 확인할 수 있습니다.

사용하려면 telnet명령 프롬프트에서 다음 명령을 실행하면됩니다.

telnet localhost 3306

위의 명령은 포트 가 응답 3306하는 경우 빠른 표시를 제공합니다 localhost.


PortQryUI를 다운로드하고 tcp와 udp에서 445 포트를 차단하고 활성화 한 후 확인했는데 tcp에서 동일한 청취가 표시되고 udp에서는 청취가 표시되지 않습니다.
Liam neesan

17

PowerShell 4.0부터 다음 명령을 사용할 수 있습니다 Test-NetConnection

예제와 같이 포트 3306을 테스트하려면 다음 명령을 사용하십시오.

Test-NetConnection -ComputerName localhost -Port 3306

TechNet Test-NetConnection 설명서


이것을 위해 +1. 대부분의 최신 Windows 시스템에 아무것도 설치하지 않아도되는 정말 좋은 대안입니다.
DCaugs

5

로컬 컴퓨터 (외부 IP 주소 사용)에서 포트로 텔넷 할 수 있지만 다른 컴퓨터에서는 텔넷으로 연결할 수없는 경우 중간에 차단 된 것입니다.

로컬 컴퓨터의 방화벽 은 첫 번째 조치조차 방해 할 수 있습니다.


텔넷은 더 이상 Win7 이상 시스템에 설치되지 않습니다.
Alexis Wilke

@AlexisWilke 정확하지 않습니다. 텔넷이 설치 될 수있다
deepdive

4
명령 행에서 텔넷을 설치하려면 : dism / online / Enable-Feature / FeatureName : TelnetClient
Jason Massey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.