PowerShell을 사용하여 열린(수신) 포트 확인

PowerShell에서 다음을 사용할 수 있습니다. Test-NetConnection 원격 컴퓨터에서 포트를 사용할 수 있는지(열려 있는지) 확인하는 cmdlet입니다. 이 cmdlet을 사용하여 원격 서버 또는 네트워크 서비스의 응답 및 가용성을 확인하고 TCP 포트가 방화벽에 의해 차단되는지 테스트하고 ICMP 가용성 및 라우팅을 확인할 수 있습니다. 사실은, Test-NetConnection 다음과 같은 여러 인기 있는 네트워크 관리 도구를 대체합니다. ping, tracert, telnet, pathpingTCP 포트 스캐너 등

Test-NetConnection으로 열린 TCP 포트 확인

Test-NetConnection cmdlet을 사용하여 TCP 포트만 확인할 수 있습니다. 예를 들어 원격 메일 서버에서 TCP 포트 25(SMTP 프로토콜)가 열려 있는지 확인하려면 다음을 수행합니다.

Advertisement

Test-NetConnection -ComputerName ny-msg01 -Port 25

메모. Test-NetConnection cmdlet을 사용하여 TCP 포트 연결만 테스트할 수 있습니다. 그러나 cmdlet을 사용하여 원격 UDP 포트의 가용성을 확인할 수는 없습니다.

Test-NetConnection 명령에는 별칭이 있습니다. 티엔씨. 동일한 명령의 단축 버전은 다음과 같습니다.

TNC ny-msg01 -Port 25

명령의 결과를 살펴보겠습니다.

ComputerName           : ny-msg01
RemoteAddress          : 10.20.1.7
RemotePort             : 25
InterfaceAlias         : CORP
SourceAddress          : 10.20.1.79
PingSucceeded          : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded       : True

보시다시피 cmdlet은 서버 이름을 IP 주소로 확인하고 ICMP 응답을 확인합니다(예: ping), TCP 포트로부터의 응답을 확인합니다(포트 가용성). 지정된 서버는 ICMP를 통해 응답합니다(PingSucceeded = True) TCP 포트 25가 열려 있습니다(RemotePort=25, TcpTestSucceeded= True).

메모. 명령이 반환되면 핑성공=거짓 그리고 TcpTestSucceeded= 참이는 원격 컴퓨터에서 ICMP Echo 요청(ping)이 비활성화되었음을 의미할 가능성이 큽니다.

실행하면 매개변수가 없는 Test-NetConnection컴퓨터가 인터넷에 연결되어 있는지 확인합니다(인터넷 사용 가능 여부 확인). internetbeacon.msedge.net주인).

powershell: Windows에서 인터넷 연결 상태 확인

–를 추가할 수 있습니다.InformationLevel 상세 원격 TCP 포트를 확인할 때 자세한 정보를 표시하는 옵션:

TNC 192.168.32.101 -Port 3389 -InformationLevel Detailed

Test-NetConnection: 자세한 연결 상태 나열

cmdlet에는 다음과 같은 특수 매개변수가 있습니다.CommonTCP포트알려진 네트워크 프로토콜(HTTP, RDP, SMB, WINRM)의 이름을 지정할 수 있습니다.

예를 들어 HTTP 웹 서버의 가용성을 확인하려면 다음 명령을 사용할 수 있습니다.

Test-NetConnection -ComputerName woshub.com -CommonTCPPort HTTP

또는 기본 RDP 포트(TCP/3389)의 가용성을 확인하십시오.

Test-NetConnection ny-rds1 –CommonTCPPort RDP

Test-NetConnection cmdlet이 반환하는 모든 매개 변수를 나열할 수 있습니다.

Test-NetConnection ny-man01 -port 445|Format-List *

Test-NetConnection 모든 연결 상태 속성

포트가 사용 가능한지 확인만 하면 되는 경우 더 빠르게 확인할 수 있습니다.

Advertisement

TNC ny-msg1 -Port 25 -InformationLevel Quiet

cmdlet이 반환합니다. True이는 원격 TCP 포트가 열려 있음을 의미합니다.

TNC ny-msg1 -포트 25 -InformationLevel Quiet

. 이전 버전의 Windows PowerShell(버전 4.0 이전)에서는 다음 명령을 사용하여 원격 TCP 포트의 가용성을 확인할 수 있습니다.

(New-Object System.Net.Sockets.TcpClient).Connect('ny-msg01', 25)

(새 개체 System.Net.Sockets.TcpClient).연결

Test-NetConnection cmdlet을 사용하여 다음을 사용하여 원격 서버에 대한 경로를 추적할 수 있습니다.경로 추적 매개변수(내장 매개변수와 유사 tracert Windows의 명령). 다음을 사용하여 경로 확인 중에 최대 홉 수를 제한할 수 있습니다. -홉 매개변수.

Test-NetConnection ny-man01 –TraceRoute

cmdlet이 요약 네트워크 액세스 지연을 밀리초 단위로 반환했습니다(PingReplyDetails (RTT): 41 ms) 뿐만 아니라 대상 호스트로 가는 도중에 있는 라우터의 모든 IP 주소.

Test-NetConnection: powershell TraceRoute

PowerShell: 여러 호스트에서 열린 포트 확인

PowerShell을 사용하여 여러 원격 컴퓨터에서 특정 포트의 가용성을 확인할 수 있습니다. 다음 이름으로 일반 텍스트 파일에 호스트 이름 또는 IP 주소 목록을 저장합니다. servers.txt.

예를 들어, 작업은 TCP/25 포트가 응답하지 않거나 서버 목록에서 닫힌 호스트를 찾는 것입니다.

Get-Content c:PSlist_servers.txt |  where { -NOT (Test-Netconnection $_ -Port 25  -InformationLevel Quiet)}| Format-Table -AutoSize

Advertisement

원격 서버의 가용성을 확인하고 서버를 사용할 수 없는 경우 팝업 알림을 표시하는 간단한 모니터링 PowerShell 스크립트를 사용할 수 있습니다.

예를 들어 AD 상태 확인 중에 모든 도메인 컨트롤러에서 기본 서비스의 가용성을 확인할 수 있습니다(DC 목록은 Get-ADDomainController cmdlet을 사용하여 얻을 수 있음). DC에서 다음 서비스를 확인하자(유사한 ‘도메인 및 트러스트‘ PortQry 도구의 규칙):

  • RPC – TCP/135
  • LDAP – TCP/389
  • LDAP – TCP/3268
  • DNS – TCP/53
  • 케르베로스 – TCP/88
  • SMB – TCP/445

$Ports = "135","389","636","3268","53","88","445","3269", "80", "443"
$AllDCs = Get-ADDomainController -Filter * | Select-Object Hostname,Ipv4address
ForEach($DC in $AllDCs){
Foreach ($P in $Ports){
$check=Test-NetConnection $DC.Ipv4address -Port $P -WarningAction SilentlyContinue
If ($check.tcpTestSucceeded -eq $true)
{Write-Host $DC.hostname $P -ForegroundColor Green -Separator " => "}
else
{Write-Host $DC.hostname $P -Separator " => " -ForegroundColor Red}
}
}

스크립트는 도메인 컨트롤러에서 지정된 TCP 포트를 확인하고 사용할 수 없는 포트가 있으면 빨간색으로 강조 표시합니다(이 PowerShell 스크립트를 Windows 서비스로 실행할 수 있음).

poweshell: Active Directory 도메인 컨트롤러에서 개방 및 폐쇄 포트 테스트

PowerShell의 간단한 TCP/IP 포트 스캐너

PowerShell을 사용하여 원격 호스트 또는 IP 서브넷에서 열려 있거나 닫힌 TCP 포트를 검색하는 간단한 IP 스캐너를 구현할 수 있습니다.

192.168.1.100과 192.168.1.150 사이의 IP 주소 범위를 스캔하고 포트 3389가 열려 있는 컴퓨터를 표시하려면:

foreach ($ip in 100..150) {Test-NetConnection -Port 3389 -InformationLevel "Detailed" 192.168.1.$ip}

원격 호스트에서 TCP 포트 범위(1~1024)를 스캔합니다.

foreach ($port in 1..1024) {If (($a=Test-NetConnection srvfs01 -Port $port -WarningAction SilentlyContinue).tcpTestSucceeded -eq $true){ "TCP port $port is open!"}}

powershell 네트워크 포트 스캐너 스크립트

PowerShell을 사용하여 Windows에서 열린 포트를 나열하는 방법

사용 NetTCPConnection 가져오기 로컬 컴퓨터에서 열려 있는 포트를 나열하는 cmdlet(이는 NETSTAT). 컴퓨터에서 열려 있는 모든 TCP 포트 목록은 다음과 같이 볼 수 있습니다.

Advertisement

Get-NetTcpConnection -State Listen | Select-Object LocalAddress,LocalPort| Sort-Object -Property LocalPort | Format-Table

powershell: Windows에서 열려 있는 청취 포트 나열

컴퓨터의 특정 포트에서 수신 대기 중인 프로그램(프로세스)을 찾으려면 다음 명령을 사용하십시오(여기서 443은 확인하려는 포트 번호임).

Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess | ft Id, ProcessName, UserName, Path