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

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



답변

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)을 사용하여 시작해야합니다.


답변

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.


답변

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

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

Test-NetConnection -ComputerName localhost -Port 3306

TechNet Test-NetConnection 설명서


답변

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

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


답변