소개
Netsh 유틸리티와 네트워크 관리에서의 중요성에 대한 간략한 개요를 제공합니다. 스크립팅 지원, 원격 실행, 문제 해결 기능과 같은 주요 기능을 강조합니다.
목차
콘텐츠 최적화
1. Netsh 유틸리티란?
Netsh(Network Shell)는 네트워크 설정을 구성하고 문제를 해결하기 위한 강력한 Windows 명령줄 도구입니다. 동적 연결 라이브러리(DLL)를 통해 시스템 구성 요소와 상호 작용하며 다음과 같은 다양한 컨텍스트를 지원합니다. 예: advfirewall, wlan 및 winhttp.
2. Netsh 명령의 일반 구문
netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [Domain\]UserName] [-p Password|*] [Command | -f ScriptFile]
구문 매개변수를 간략히 설명하고 사용 사례를 강조합니다.
3. Netsh 추적 심층 분석
추적 수집:
진단을 위해 네트워크 이벤트와 패킷을 캡처하려면 netsh trace 컨텍스트를 사용합니다.
- 시나리오를 표시하는 명령:
netsh trace show scenarios

- 특정 시나리오의 공급자를 표시하려면:
netsh trace show scenario <Scenario name>
중요 매개변수:
다음과 같은 주요 매개변수를 자세히 설명합니다. 예: scenario, capture, report, persistent, traceFile 등에 대해 예를 들어 설명합니다.
일반적인 추적 명령:
- 추적 시작:
netsh trace start scenario=InternetClient capture=yes tracefile=C:\temp\trace.etl
- 추적 중지:
netsh trace stop
고급 옵션:
다음과 같은 옵션을 사용한 고급 추적 예를 제공합니다. 예: maxsize, filemode 및 overwrite.
ETL을 CAP로 변환:
Wireshark와 같은 도구에서 사용할 수 있도록 ETL 파일을 변환하는 방법을 설명합니다.
netsh trace convert input=trace.etl output=trace.cap
4. Netsh를 사용한 네트워크 캡처 필터링
기본 필터:
일반적으로 사용되는 필터를 강조합니다. 예를 들면 다음과 같습니다.
- 특정 IPv4 주소로 오가는 트래픽 캡처:
IPv4.Address == x.x.x.x
프로토콜별 필터:
- DNS 트래픽 캡처:
DNS
고급 필터:
TCP 핸드셰이크 패킷 캡처와 같은 예를 제공합니다.
TCP.Flags.SYN == 1 AND TCP.Flags.ACK == 0
5. 주요 Netsh 컨텍스트 및 사용 사례
IP 구성:
- 고정 IP 설정:
netsh interface ip set address "Ethernet" static 10.0.0.5 255.255.255.0 10.0.0.1
Winsock 및 TCP/IP 스택 재설정:
- TCP/IP 스택 재설정:
netsh int ip reset
방화벽 운영:
- 방화벽 규칙 추가:
netsh advfirewall firewall add rule name="Allow Ping" dir=in action=allow protocol=icmpv4
WinHTTP 프록시 구성:
- 프록시 설정:
netsh winhttp set proxy "proxy:8080" "<local>"
네트워크 캡처 분석에 일반적으로 사용되는 netmon 필터:
기본 필터
| 필터 | 목적 |
| IPv4.Address == x.x.x.x | 특정 IPv4 주소로 오가는 트래픽을 캡처합니다. |
| IPv4.SourceAddress == x.x.x.x | 특정 출발지 IP에서 오는 트래픽을 필터링합니다. |
| IPv4.DestinationAddress == x.x.x.x | 특정 대상 IP로 향하는 트래픽을 필터링합니다. |
| IPv6.Address == xxxx::xxxx | 특정 주소로 오가는 IPv6 트래픽을 필터링합니다. |
| TCP.Port == 80 | 특정 TCP 포트에서 트래픽을 캡처합니다(예: HTTP용 80). |
| UDP.Port == 53 | 특정 UDP 포트에서 트래픽을 캡처합니다(예: DNS용 53). |
프로토콜별 필터
| 필터 | 프로토콜 | 설명 |
| DNS | DNS | DNS 쿼리와 응답을 캡처합니다. |
| HTTP | HTTP | HTTP 트래픽을 캡처합니다(메서드로 추가로 필터링할 수 있음). |
| TCP | TCP | 모든 TCP 트래픽을 캡처합니다. |
| UDP | UDP | 모든 UDP 트래픽을 캡처합니다. |
| SMB2 | SMB | SMBv2 파일 공유 트래픽을 캡처합니다. |
| Kerberos | Kerberos | Kerberos 인증 패킷을 캡처합니다. |
| LDAP | LDAP | LDAP 쿼리/응답을 캡처합니다. |
대화 필터
| 필터 | 목적 |
| IPv4.SourceAddress == x.x.x.x AND IPv4.DestinationAddress == y.y.y.y | 두 특정 호스트 간의 트래픽을 필터링합니다. |
| TCP.SourcePort == 12345 AND TCP.DestinationPort == 80 | 특정 클라이언트-서버 세션을 필터링합니다. |
애플리케이션 계층 필터
| 필터 | 예 |
| HTTP.Request.Method == “GET” | GET 요청만 캡처합니다. |
| HTTP.Host == “example.com” | 특정 도메인으로 향하는 HTTP 트래픽을 필터링합니다. |
| DNS.QryName == “example.com” | 특정 도메인에 대한 DNS 쿼리를 필터링합니다. |
| SMB2.CreateRequest.FileName == “filename.txt” | SMB 트래픽에서 파일 액세스를 캡처합니다. |
고급 필터
| 필터 | 목적 |
| TCP.Flags.SYN == 1 AND TCP.Flags.ACK == 0 | SYN 패킷을 캡처합니다(TCP 핸드셰이크 시작). |
| TCP.Flags.FIN == 1 | FIN 패킷을 캡처합니다(TCP 세션 종료). |
| TCP.Flags.Reset == 1 | TCP RST 패킷을 캡처합니다(연결 재설정). |
| Frame.Length > 1000 | 1000바이트보다 큰 패킷만 캡처합니다. |
netsh interface ip set address “Ethernet” static 10.0.0.5 255.255.255.0 10.0.0.1
netsh interface ip set dns “Ethernet” static 1.1.1.1
netsh interface ip set address “Ethernet” dhcp
netsh int ip reset
netsh winsock reset
netsh advfirewall firewall add rule name=”Allow Ping” dir=in action=allow protocol=icmpv4
netsh advfirewall firewall add rule name=”Allow RDP” dir=in action=allow protocol=TCP localport=3389
netsh advfirewall set allprofiles state on
netsh advfirewall export “C:\\backup\\fwconfig.wfw”
netsh winhttp show proxy
netsh winhttp set proxy “proxy:8080” “<local>”
netsh winhttp reset proxy
6. 결론
Netsh의 다용도성을 요약하고 독자가 더 많은 컨텍스트와 명령을 탐색하도록 권장합니다. 자세한 내용은 공식 Microsoft 설명서.