PowerShell의 포트에서 수신 대기

Sheeraz Gul 2024년2월15일
PowerShell의 포트에서 수신 대기

이 자습서에서는 PowerShell의 포트에서 수신 대기하는 방법을 보여줍니다.

PowerShell 포트에서 수신 대기

단계별 명령과 함께 PowerShell을 사용하여 포트에서 수신 대기할 수 있습니다. PowerShell에서 [System.Net.Sockets.TcpListener]Port 명령을 사용하여 수신기를 초기화할 수 있습니다.

아래 단계에 따라 PowerShell을 사용하여 포트에서 수신 대기합니다.

  1. 먼저 PowerShell을 관리자로 열어야 합니다. 시작 메뉴에서 PowerShell을 검색하고 PowerShell 아이콘을 마우스 오른쪽 버튼으로 클릭한 다음 관리자 권한으로 실행을 클릭합니다.

    시스템에서 허가를 요청할 수 있습니다. 를 클릭합니다.

  2. 다음 단계에서 PowerShell 스크립트를 생성합니다. 다음 명령을 실행합니다.

    New-Item 'C:\Users\Sheeraz\DemoTCPServer.ps1' -type file
    

    위 명령은 C:\Users\Sheeraz 경로에 DemoTCPServer.ps1이라는 이름의 PowerShell 파일을 생성합니다. 출력을 참조하십시오.

    	Directory: C:\Users\Sheeraz
    
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    -a----         11/3/2022   4:02 PM              0 DemoTCPServer.ps1
    
  3. 파일이 생성되면 다음 단계는 스크립트를 편집하는 것입니다. 다음 명령을 실행합니다.

    ise C:\Users\Sheeraz\DemoTCPServer.ps1
    

    위 명령은 PowerShell ISE에서 DemoTCPServer.ps1 파일을 편집합니다.

  4. DemoTCPServer.ps1 스크립트에 대한 단계별 프로세스를 따릅니다.

    • 먼저 포트, 텍스트 파일, 서버 배너에 대한 변수를 초기화합니다.
    • 그런 다음 지정된 포트에 엔드포인트를 생성합니다.
    • 이제 New-Object System.Net.Sockets.TcpListener $DemoEndpoint 명령을 사용하여 수신기가 있는 TCP 포트를 만듭니다. 이렇게 하면 포트에서 수신하는 데 도움이 됩니다.
    • TCP 포트를 시작합니다.
    • TCP 포트가 TCP 클라이언트를 수락하도록 허용합니다.
    • TCP 클라이언트의 스트림을 만듭니다.
    • 이제 스트림으로 작성자를 생성합니다.
    • 배너를 사용하여 줄을 쓰고 작성자를 플러시합니다.
    • 이제 포트에서 수신할 스트림을 읽을 버퍼를 만듭니다.
    • 루프를 사용하여 스트림의 각 줄을 읽습니다.
    • 포트에서 수신 대기를 수행했으며 이제 버퍼, 스트림 및 TCP 클라이언트를 폐기합니다.
    • 마지막으로 TCP 포트를 중지합니다. PowerShell 스크립트 DemoTCPServer.ps1에서 이러한 단계를 구현해 보겠습니다.
```powershell
$DemoPort = 8080
$DemoFile = 'C:\Users\Sheeraz\demo.txt'
$DemoBanner = "Connection: OK"

$DemoEndpoint = New-Object System.Net.IPEndPoint([IPAddress]::Any,$DemoPort)
$DemoTCPPort = New-Object System.Net.Sockets.TcpListener $DemoEndpoint
$DemoTCPPort.Start()
Write-Output "The TCP Port $DemoPort is Open Now"
$AcceptIngTcp = $DemoTCPPort.AcceptTcpClient()
$Stream = $AcceptIngTcp.GetStream()
$DemoWriter = New-Object System.IO.StreamWriter($Stream)
$DemoBanner | % {
			$DemoWriter.WriteLine($_)
			$DemoWriter.Flush()
		}

while($true) {
$DemoBuffer = New-Object System.IO.StreamReader $Stream
$DEMOLINE = $DemoBuffer.ReadLine()
if ($DEMOLINE -eq "quit") {
	break
}
else {
$DEMOLINE
$DEMOLINE |  Out-File $DemoFile -Append
}
}
$DemoBuffer.Dispose()
$Stream.Dispose()
$AcceptIngTcp.Dispose()
$DemoTCPPort.Stop()
Write-Output "The TCP Port $DemoPort is Closed"
```
  1. 스크립트가 생성되면 저장합니다. 이제 포트 작업에서 수신 대기로 TCP 포트를 생성하는 스크립트를 실행할 시간입니다. 다음 명령을 실행합니다.

    PowerShell.exe -ExecutionPolicy Bypass -File C:\Users\Sheeraz\DemoTCPServer.ps1
    

    위의 명령은 이제 TCP 포트를 시작하고 포트에서 수신 대기합니다. 명령의 출력은 다음과 같습니다.

    The TCP Port 8080 is Open Now
    
  2. 원격 컴퓨터의 TCP 포트에 연결하려면 cmd에서 다음 telnet 명령을 실행합니다. 먼저 제어판>프로그램>Windows 기능 켜기 또는 끄기에서 확인할 수 있는 telnet 서비스가 활성화되어 있는지 확인합니다.

    다음 명령을 참조하십시오.

    telnet 10.10.10.10 8080
    
  3. 여기에서 다운로드할 수 있는 PuTTY와 같은 telnet 클라이언트 애플리케이션을 사용할 수도 있습니다. 연결 유형에서 기타텔넷을 선택하는 것을 잊지 마십시오.

    아래 스크린샷을 참조하십시오.

    PuTTY 텔넷 클라이언트

  4. IP와 포트를 입력하고 열기를 클릭합니다.

    PuTTY 클라이언트 터미널

  5. 이제 이 터미널을 사용하여 연결을 통해 데이터를 보내고 포트에서 수신 대기할 수 있습니다. 예를 들어:

    This is PowerShell Listen on Port Test
    

    포트 테스트에서 듣기

  6. 위에서 보낸 데이터는 'C:\Users\Sheeraz\demo.txt' 파일에 저장되며 이는 해당 포트에서 수신 대기가 수행됨을 의미합니다.

    포트 출력에서 듣기

  7. 마지막으로, TCP 연결을 종료하려면 quit 명령을 실행하십시오.

작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook