Test-NetConnection을 사용하여 연결 문제 해결

PowerShell의 Test-NetConnection cmdlet이 도입되기 전에는 다양한 명령 줄 도구를 사용하여 다양한 네트워크 연결 문제를 해결할 수 있었습니다.

ICMP 에코 및 응답을 테스트하기 위해 ping을 사용했고, 패킷이 드롭되는 지점을 확인하기 위해 tracert를 사용했으며, DNS 서버에 대한 DNS 쿼리를 수행하기 위해 nslookup을 사용했고, 열린 TCP 포트를 확인하기 위해 telnet을 사용하는 등 다양한 유틸리티가 있었습니다. 모든 것에 대한 유틸리티가 존재했습니다.

Windows 8.1 및 Windows Server 2012 R2에서 PowerShell v4가 도입되면서, 연결 문제 해결에 대한 이 단일 기능-단일 유틸리티 접근 방식은 사용되지 않게 되었습니다.

이제 새로운, 강력한 Test-NetConnection cmdlet을 소개해 드리겠습니다. PowerShell Test-NetConnection은 ping, tracert, nslookup, telnet 및 기타 유틸리티를 하나로 묶은 연결 문제 해결 도구 모음입니다.

Test-NetConnection으로 문제 해결하기

PowerShell test-netconnection cmdlet을 사용하여 네트워크 연결 문제 해결 과정에서 우리가 어떤 작업을 할 수 있는지 살펴보겠습니다.

이를 증명하기 위해 일반적이고 실제적인 문제를 해결하기 위해 PowerShell Test-NetConnection을 사용하여 “XYZ 웹사이트에 접속할 수 없어요!”라는 문제를 해결해 보겠습니다.

대부분의 사용자들은 웹사이트를 브라우저에서 성공적으로 렌더링하는 것 자체가 놀라운 일이라는 것을 알지 못합니다. 이를 가능하게 하기 위해서는 여러 가지 움직이는 부품들이 함께 작동해야 합니다. 최소한 다음과 같은 과정이 포함됩니다:

  • 인터넷 연결이 있어야 합니다.
  • DNS 서버로의 경로가 있어야 합니다.
  • URL을 해석하기 위해 DNS 서버에 연락해야 합니다.
  • URL이 해석된 IP 주소로의 경로가 있어야 합니다.
  • TCP 포트 80이 열려 있어야 합니다.
  • 등등, 등등.

인터넷 연결 확인하기

문제 해결을 시작하기 위해서는 먼저 인터넷 연결이 있는지 확인해야 합니다. 이를 위해 PowerShell Test-NetConnection을 매개 변수 없이 실행하면 됩니다. 하지만 더 많은 정보를 얻고 싶다면 InformationLevel 매개 변수에 Detailed 인수를 사용하는 것을 제안합니다.

Test-NetConnection -InformationLevel Detailed

이 간단한 명령은 로컬 연결 및 인터넷 연결을 확인하고 DNS 클라이언트가 DNS 서버로 전달된 이름을 해석할 수 있는지 확인합니다. 네트워크 연결의 일반적인 건강 상태 검사라고 생각하면 됩니다. 이 명령은 웹사이트를 렌더링하는 데 필요한 다섯 가지 과정 중 세 가지를 한 번에 확인하는 것입니다!

Test-NetConnection을 사용하여 웹사이트 호스트에 대한 연결 테스트하기

이제 문제가 있는 웹 사이트 호스트에 대한 문제 해결을 진행해야 합니다. 예를 들어 google.com을 사용해 볼 수 있습니다. 원격 컴퓨터도 사용할 수 있습니다.

Test-NetConnectionComputerName 매개변수와 함께 사용하여 웹 사이트 호스트가 DNS에서 해결될 수 있고, 해당 이름이 해결된 IP 주소로 이동할 수 있는 TCP 경로가 있으며, 핑을 보낼 수 있는지 동시에 확인할 수 있습니다.

Test-NetConnection -ComputerName google.com

이 단계에서는 기술적으로 google.com 웹 서버로의 경로가 있는지 확인하지만, 패킷이 google.com 웹 서버에 도달하기 위해 통과하는 라우터에 대한 자세한 정보를 찾고 싶습니다. 이를 위해 TraceRoute 매개변수를 사용하여 목록을 가져옵니다.

Test-NetConnection -ComputerName google.com -TraceRoute

TCP 포트가 열려 있는지 확인하세요.

최종 테스트는 웹 서버가 실행 중인 예상 TCP 포트가 열려 있는지 확인하는 것입니다. 이 경우, google.com만 지정하므로 TCP 포트 80이라고 가정합니다. 이를 위해 Test-NetConnection에 다른 매개변수를 추가하기만 하면 됩니다. Test-NetConnection은 일부 다른 서비스의 표준 TCP 포트를 인식하므로 포트 번호를 알 필요조차 없습니다. HTTP를 CommonTCPPort 매개변수에 전달하면 자동으로 처리해줍니다.

Test-NetConnection -ComputerName google.com -CommonTCPPort HTTP

그러나 웹 사이트가 8080과 같은 다른 포트에서 실행될 수 있다면, Port 매개변수를 사용하여 직접 TCP 포트를 지정할 수 있습니다.

Test-NetConnection -ComputerName google.com -Port 80

우리는 지금 이 기사의 시작 부분에서 개요로 설명 된 각 연결 요구 사항을 테스트했습니다. 현재 웹 사이트를 렌더링 할 수 없는 경우, 문제가 클라이언트에 있지 않음을 확인하고 문제를 Google이나 하위 DNS 서버에 전달할 수 있습니다.

Source:
https://adamtheautomator.com/test-netconnection/