Windows를 사용하다 보면 네트워크 설정이나 문제 해결을 위해 여러 가지 도구들을 활용하게 됩니다. 그 중에서도 netsh라는 도구는 특별히 강력하고 유용한 기능들을 제공하며, 다양한 네트워크 작업을 간편하게 수행할 수 있게 도와줍니다.
netsh는 그 자체로 네트워크 설정과 관리를 위한 강력한 명령 줄 스크립팅 인터페이스라는 것을 암시합니다. 이 도구는 Windows 2000에서 처음 소개되었으며, 그 이후의 모든 버전의 Windows에서 사용할 수 있습니다.
netsh
란
넷쉬 (Netsh)는 Windows 기반 운영 체제에서 네트워크 설정을 관리하고 구성하는 데 사용되는 명령 줄 유틸리티입니다. netsh
는 Network Shell의 줄임말로, 이는 사용자가 네트워크 구성 및 관리 작업을 수행할 수 있도록 강력한 명령 줄 인터페이스를 제공한다는 것을 의미합니다. 이 도구는 Windows 2000에서 처음 등장했으며, Windows Vista부터 netsh 명령은 PowerShell과 통합되어PowerShell을 사용하여 netsh 명령을 실행할 수 있게 되었습니다. 그 이후 모든 버전의 Windows에서 사용할 수 있게 되었습니다.
netsh
는 주로 시스템 관리자나 네트워크 관리자들이 네트워크 구성을 조작하고 모니터링하기 위해 사용하는 도구입니다. 이 도구를 이용하면 다양한 네트워크 작업을 수행할 수 있으며, 이를 통해 네트워크 구성과 관리를 더욱 효율적으로 수행할 수 있습니다.
또한, netsh
명령은 배치 스크립트나 PowerShell 스크립트를 통해 자동화할 수 있습니다. 이를 활용하면 반복적인 네트워크 작업을 간편하게 수행할 수 있으며, 이를 통해 네트워크 관리의 효율성을 크게 향상시킬 수 있습니다.
이처럼 netsh
는 네트워크 설정과 관리를 위한 다양한 기능을 제공하는 강력한 도구입니다. netsh
의 다양한 기능을 이해하고 활용하면, Windows 기반 시스템에서의 네트워크 관리 작업이 훨씬 더 간편해지고 효율적이게 될 것입니다.
netsh
명령이 지원된 Windows 버전
다음과 같은 Windows 버전에서 netsh
명령이 지원됩니다.
- Windows NT 4.0
- Windows 2000
- Windows XP
- Windows Server 2003
- Windows Vista
- Windows Server 2008
- Windows 7
- Windows Server 2008 R2
- Windows 8
- Windows Server 2012
- Windows 8.1
- Windows Server 2012 R2
- Windows 10
- Windows Server 2016
- Windows 11
- Windows Server 2022
netsh
주요 기능
netsh
는 다양한 기능을 통해 네트워크 설정과 관리를 단순화하고, 효율적으로 수행할 수 있게 도와주며 아래와 같은 기능들을 제공합니다.
- 네트워크 인터페이스 관리:
netsh
를 사용하면 컴퓨터의 네트워크 인터페이스를 표시하고 구성할 수 있습니다. IP 주소, 서브넷 마스크, 게이트웨이, DNS 서버 등의 네트워크 구성 요소를 쉽게 설정하고 변경할 수 있습니다. 또한, 네트워크 인터페이스의 상태를 확인하거나 활성화/비활성화 할 수도 있습니다. - 방화벽 규칙 설정:
netsh
는 Windows 방화벽의 규칙을 생성, 수정, 삭제하는 데 사용됩니다. 특정 포트를 열거나 닫을 수 있으며, 들어오는 연결과 나가는 연결에 대한 보안 정책을 관리할 수 있습니다. 이를 통해 컴퓨터의 네트워크 보안을 향상시킬 수 있습니다. - 라우팅 관리:
netsh
를 사용하면 라우팅 테이블을 조작하여 데이터 패킷의 경로를 제어할 수 있습니다. 특정 네트워크로의 트래픽을 다른 네트워크로 전송하도록 라우팅 설정을 변경할 수 있습니다. 이 기능은 복잡한 네트워크 환경에서 트래픽을 효율적으로 관리하는 데 유용합니다. - 네트워크 모니터링:
netsh
를 사용하면 현재의 네트워크 설정 및 연결 상태를 확인할 수 있습니다. 네트워크 인터페이스의 상태, IP 주소, 네트워크 통계 등 다양한 정보를 제공하므로, 네트워크 문제를 진단하고 해결하는 데 도움이 됩니다. - 스크립트 및 자동화:
netsh
명령은 배치 파일이나 PowerShell 스크립트에 포함시켜 자동화할 수 있습니다. 이를 이용하면 반복적인 네트워크 설정 작업을 간소화하고, 효율성을 향상시킬 수 있습니다. 예를 들어, 네트워크 설정을 변경해야 하는 일련의 작업을 스크립트로 작성해두면, 이를 한 번에 실행하여 시간을 절약할 수 있습니다.
netsh
활용 예시
netsh
는 다음과 같은 명령을 통해 네트워크와 관련된 작업을 간편하게 수행할 수 있도록 도와줍니다. 그리고 netsh
명령은 기본적으로 PowerShell과 명령 프롬프트에서 동일하게 동작합니다.
참고: 기본적으로 netsh
는 관리 권한이 필요할 수 있으므로 관리자 권한으로 명령 프롬프트 또는 PowerShell을 실행후 사용합니다.
네트워크 인터페이스 확인
netsh interface show interface
이 명령은 현재 시스템에서 사용 가능한 네트워크 인터페이스3를 나열합니다. 네트워크 인터페이스의 이름, 형식, 상태 및 연결 유형을 표시합니다. 이 정보를 통해 사용 가능한 네트워크 인터페이스를 확인할 수 있습니다.
IP 주소 구성
netsh interface ipv4 set address name="이더넷" static 192.168.1.2 255.255.255.0 192.168.1.1
이 명령은 "이더넷"이라는 네트워크 인터페이스에 정적인 IPv4 주소를 할당하는데 사용됩니다. 여기에서 IP 주소, 서브넷 마스크, 게이트웨이 IP 주소를 설정할 수 있습니다. IP 주소 더 알아보기
netsh interface ipv4 set address
: 이 부분은 Windows에서 네트워크 인터페이스의 IPv4 주소를 설정하는 명령의 일부입니다. 이 명령을 사용하여 IPv4 주소, 서브넷 마스크, 게이트웨이 및 네트워크 인터페이스를 구성할 수 있습니다.name=이더넷
: 여기서 이더넷은 네트워크 인터페이스의 이름을 나타냅니다. 이 명령은이더넷
이라는 특정 네트워크 인터페이스에 대한 설정을 변경하겠다는 것을 의미합니다.static
: 이 부분은 IPv4 주소를 정적으로 설정하겠다는 것을 나타냅니다. 정적 IP 주소는 수동으로 설정되며 DHCP 서버에서 주소를 동적으로 할당하는 대신 수동으로 구성됩니다.192.168.1.2
: 이 부분은 해당 네트워크 인터페이스에 할당할 정적 IPv4 주소를 나타냅니다. 여기에서는 192.168.1.2를 설정하고 있습니다.255.255.255.0
: 이 부분은 서브넷 마스크를 설정합니다. 서브넷 마스크는 네트워크 주소와 호스트 주소를 나누는 데 사용됩니다.255.255.255.0
은/24
서브넷 마스크를 나타내며, 24 비트가 네트워크 부분이고 8 비트가 호스트 부분임을 의미합니다.192.168.1.1
: 이 부분은 게이트웨이 IP 주소를 설정합니다. 게이트웨이는 이 네트워크에서 외부 네트워크로 통하는 경로를 제공하는 장치 또는 라우터의 IP 주소를 나타냅니다.shell
방화벽 규칙 추가
netsh advfirewall firewall add rule name="Web" dir=in action=allow program="%SystemRoot%\system32\svchost.exe" enable=yes
이 명령은 방화벽 규칙을 추가하는데 사용됩니다. Web이라는 규칙 이름을 가진 규칙을 생성하며, 들어오는 연결에 대해 허용 동작을 정의합니다. 프로그램 경로를 지정하여 특정 응용 프로그램에 대한 규칙을 설정할 수 있습니다.
netsh advfirewall firewall add rule
: 이 부분은 Windows 방화벽 관련 설정을 변경하는 데 사용되는netsh
명령의 일부입니다.firewall add rule
은 새로운 방화벽 규칙을 추가하려는 목적을 나타냅니다.name=Web
: 이 부분은 방화벽 규칙의 이름을 설정하는 부분입니다. 여기서Web
은 새로운 규칙의 이름으로, 이 이름을 사용하여 규칙을 구분할 수 있습니다.dir=in
: 방화벽 규칙의 방향을 정의하는 부분입니다.in
은 들어오는 연결에 대한 규칙을 설정하겠다는 것을 나타냅니다. 즉, 외부에서 내부로 들어오는 연결을 다루는 규칙을 생성합니다.action=allow
: 방화벽 규칙의 동작을 정의하는 부분입니다.allow
는 규칙이 들어오는 연결을 허용한다는 것을 의미합니다. 따라서 이 규칙을 적용하면 해당 규칙에서 지정한 조건을 충족하는 들어오는 연결을 허용합니다.program=%SystemRoot%\system32\svchost.exe
: 이 부분은 방화벽 규칙을 어떤 프로그램에 적용할 것인지를 지정합니다. 여기서%SystemRoot%\system32\svchost.exe
는 Windows 서비스 호스트 프로세스를 가리킵니다. 이 규칙은 이 프로세스에 대한 연결을 허용하도록 설정하고 있습니다.enable=yes
: 이 부분은 새로운 규칙을 활성화하도록 설정합니다.enable=yes
는 규칙을 활성화하겠다는 의미이며, 이렇게 설정된 규칙은 방화벽에서 적용됩니다.
라우팅 테이블 설정
netsh interface ipv4 add route 192.168.2.0/24 "로컬 연결" 192.168.1.2
이 명령은 IPv4 라우팅 테이블에 새 경로를 추가합니다. 여기에서 목적지 네트워크 주소, 인터페이스 이름 및 게이트웨이 IP 주소를 지정합니다. 이를 통해 목적지 네트워크로 데이터를 전달하는 데 사용되는 경로를 정의할 수 있습니다.
netsh interface ipv4 add route
: 이 부분은 Windows에서 IPv4 라우팅 테이블에 새로운 경로를 추가하는 명령의 일부입니다. 이 명령을 사용하여 데이터 패킷을 목적지로 라우팅할 수 있습니다.192.168.2.0/24
: 이 부분은 목적지 네트워크 주소와 서브넷 마스크를 나타냅니다. 여기에서는192.168.2.0/24
로 설정되어 있으며, 이것은192.168.2.0
네트워크의 주소 범위를 나타냅니다.로컬 연결
: 이 부분은 경로가 적용될 네트워크 인터페이스의 이름을 나타냅니다. 로컬 연결이라는 이름은 해당 경로가 어떤 네트워크 인터페이스에 적용되는지 식별합니다.192.168.1.2
: 이 부분은 게이트웨이 IP 주소를 나타냅니다. 게이트웨이는 목적지로 데이터 패킷을 전송하는 중간 경로입니다. 여기에서는192.168.1.2
로 설정되어 있으며, 이 주소를 통해 데이터 패킷이 목적지 네트워크로 라우팅됩니다.