Test-NetConnection에 연결이 가능하다고 표시되는데 사이트를 방문할 수 없는 이유는 무엇입니까?

Test-NetConnection에 연결이 가능하다고 표시되는데 사이트를 방문할 수 없는 이유는 무엇입니까?

네트워크에 방화벽 제한이 있는 경우 특정 포트에서 특정 사이트에 액세스할 수 있는지 확인해야 합니다.

특정 포트에서 사이트에 액세스할 수 없다면 계속하기 전에 방화벽을 수정해야 한다는 의미입니다. 그렇지 않고 사이트에 접속할 수 있다면 내가 하려는 작업을 계속 진행할 수 있을 것입니다.

Github저장소의 https URL을 사용하여 저장소를 가져올 수 있는지 알고 싶었습니다 . https URL의 예: https://github.com/git-for-windows/git.git. 이는 clone및 기타 도구 와 함께 사용할 수 있습니다 .

Github리포지토리에 도달하고 확장하여 복제할 수 있는지 확인하기 위해 다음 명령을 실행했습니다.Test-NetConnection -ComputerName github.com -Port 443 |findstr "TcpTestSucceeded"

시스템에서 이 명령은 다음을 반환하여 github.com포트 443(https)을 통해 연결할 수 있음을 나타냅니다.

TcpTestSucceeded : True

그런데 웹브라우저를 열어서 을 방문했는데 https://github.com, 웹브라우저에 접속이 되지 않는다는 메시지가 떴습니다. https는 포트 443을 통해 이루어지며 도메인은 github.com테스트에 넣은 것과 같습니다.

내 질문은 다음과 같습니다

  • 두 테스트 사이에 왜 이러한 불일치가 있습니까?
  • 특정 포트를 통해 특정 도메인에 액세스할 수 있는지 여부를 CMD정확하게 테스트하려면 어떻게 해야 합니까 ?PowerShell

분명히 Test-NetConnection웹 브라우저가 github.com.

답변1

분명히 웹 브라우저가 github.com에 연결할 수 없기 때문에 Test-NetConnection 명령은 정확한 결과를 생성하지 못했습니다.

그것은 정확한 진술이 아닙니다.

Test-NetConnection은 실제로 대상 서버의 포트 443에 TCP 연결을 만들어 원격 서버의 TCP 포트 443이 수신 상태에 있는지 확인했습니다. Test-NetConnection은 포트 443에서 실행 중이거나 수신 중인 애플리케이션/서비스를 테스트하지 않습니다.

기본적으로 Test-NetConnection은 레이어 7에서 무엇이 실행 중이거나 수신 중인지 알 수 없으며 포트 443이 수신 상태에 있다는 것만 알려줄 수 있습니다.

답변2

"연결이 이루어질 수 있습니다"와 "내가 하려는 일을 계속 진행할 수 있습니다"라는 두 진술은 동일하지 않으며 간단한 TCP 연결 테스트는 Test-NetConnection실제 git clone.

포트에 대한 TCP 연결을 열 수 있다고 해서 해당 포트에서 수신 대기 중인 서비스에 대한 액세스를 의미하는 것은 아닙니다. TLS 협상, 인증, 권한 부여 또는 애플리케이션 수준 프로토콜 교환과 같이 초기 연결 이후 실패할 수 있는 여러 단계가 있습니다.

또한 방화벽 제한이 TCP 연결 실패의 유일한 원인은 아니며, TCP 연결 실패가 방화벽 제한의 유일한 영향도 아닙니다. 따라서 귀하의 진술은 다음과 같습니다.

특정 포트에서 사이트에 액세스할 수 없다면 계속하기 전에 방화벽을 수정해야 한다는 의미입니다.

그리고

그렇지 않고 사이트에 접속할 수 있다면 내가 하려는 작업을 계속 진행할 수 있을 것입니다.

둘 다 틀렸어. 즉, Test-NetConnection나중에 GitHub 액세스 실패를 초래한 문제를 테스트에서 감지하지 못한 이유를 궁금해하는 대신 실제로 문제가 무엇인지 분석한 다음 해당 특정 문제를 미리 감지하면 어떤 이점이 있는지 평가해야 합니다. 대답이 '예'라면 이를 수행하는 테스트를 고안할 수 있습니다.

실제로 가장 효율적인 조치는 사전 테스트 없이 의도한 작업을 시도하고 오류가 발생할 때마다 처리하는 것입니다. 문제를 미리 확인하는 것은 문제가 자동으로 해결될 수 있거나 실제 작업을 시도하고 실패할 경우 상당한 비용이나 위험이 따르는 경우에만 의미가 있습니다.

특히, GitHub 작업은 실패 원인을 합리적으로 명확하게 표시하면서 우아하게 실패하므로 의도한 작업을 직접 시도하는 대신 먼저 연결을 테스트하는 데 직접적인 이점은 없습니다.

관련 정보