수신 대기 상태로 TCP 포트를 여는 유틸리티


24

컴퓨터에서 특정 네트워크 TCP 포트를 여는 기본 유틸리티가 있습니까?

프로그램이 청취 상태의 포트를 처리하는 방법을 테스트해야합니다.


당신이 수신 대기 상태에서 특정 TCP 포트를 허용 하자는 의미입니까?
Diogo

1
이 질문은 말이되지 않습니다. 아무 것도 듣지 않는 포트는 기본적으로 "닫혀 있습니다".
Ingmar Hupp

2
이것은 내가 원하는 것입니다-선택한 포트에서 청취하고 아무것도하지 않는 유틸리티입니다.
Vic

답변:


10

netcat 은 원하는 것을해야합니다. STDOUT으로 기계를 청취하고 물건을 에코하십시오.

nc -4 -k -l -v localhost 1026

연결이 끝날 때 닫히려면 -k를 사용하지 마십시오.


2
그것은 Windows에서 작동합니까 ??? 이 명령을 여기에서 시도했지만 인식되지 않았습니다.
Diogo

4
나는 이것을 내 대답으로 게시하려고했다! = p 여기서 netcat을 다운로드 할 수 있습니다 : joncraton.org/files/nc111nt.zip 꽤 오래된 도구이지만 사람들이 얼마나 유용한 지 깨닫지 못했다고 생각합니다.
cutrightjm

@Diogo Rocha 다운로드 한 프로그램인지 알고 있습니까?
cutrightjm

3
몰랐어요 ... answear가 다음에 다운로드 할 링크를 게시하면 좋을 것 같습니다.
Diogo

@DiogoRocha-netcat에 대한 가짜 링크를 제거했습니다. 공식 사이트는 sourceforge에 있습니다. 거의 모든 패키징 저장소의 일부이므로 10 년 동안 소스에서 설치하지 않았습니다.
Florenz Kley

6

당신은

TCP 청취 : http://www.allscoop.com/tcp-listen.php

포트 피커 : http://www.linklogger.com/portpeeker.htm

Microsoft의 명령 줄 유틸리티 Portqry.exe


1
TCP 수신-설치하지 않고 멋진 작은 GUI 프로그램! ;-)
hoggar

1
포트 피커, 사이트가 더 이상 존재하지 않거나 도달 할 수 없음 (2019 년
shawty

InternetArchive의 최신 스냅 샷 : web.archive.org/web/20180616055542/http://www.linklogger.com/… 일부 다운로드 링크가 여전히 작동 중입니다.
nelson.t.cunha

4

iperf를 사용해보십시오. Windows 용 버전이 있습니다. 다음과 같이 실행하면 iperf -s -p 1234포트 1234에서 수신 대기합니다. 그런 다음 다음과 같은 작업을 수행하여 원격 시스템에서 해당 포트에 연결할 수 있습니다.

telnet 192.168.1.1 1234

iperf -c 192.168.1.1 1234

portqry -n 192.168.1.1 -e 1234

당신은 얻을 필요가 iperf.exe또는 portqry.exe마지막 이틀 동안. iPerf는이 작업을 위해 엄격하게 설계된 것은 아니지만 연결 문제, 대역폭 가용성, 스트레스 테스트 링크 등의 문제를 해결하는 데 유용합니다.


2

http://www.drk.com.ar/builder.php :이 유틸리티는 원하는대로 정확하게 수행하고 수신 된 데이터를 표시하는 것처럼 보입니다.

명령 줄이 아닌 GUI가있어 일부에게는 이점이 있습니다.


1

netpipes의 도구는 수도꼭지호스는 항상 단순화, 저를 잘 봉사 한 stdinstdout내 프로그램이 네트워크를 통해 사용하기.

netcat과 유사합니다 .

우분투 설명 :

netpipes 패키지는 쉘 스크립트에서 TCP / IP 스트림을 사용할 수있게합니다. 또한 프로그래머가 소켓과 관련된 모든 지루한 프로그래밍 비트를 건너 뛰고 필터 또는 기타 서비스 작성에 집중할 수 있도록하여 클라이언트 / 서버 코드를 단순화 할 수 있습니다.

EXAMPLES
       This creates a TCP-IP socket on the local machine bound to port 3000.

       example$ faucet 3000 --out --verbose tar -cf - .

       Every  time  some process (from any machine) attempts to connect to port 3000 on this machine the faucet program will fork(2) a process and the child
       will exec(2) a

       tar -cf - .

고마워, 그러나 나는 Windows를 위해 그것을 필요로한다…
Vic

Cygwin조차도?
Marcos

0

이는 Windows / Linux 네트워킹 스택 사이에있는 패킷 및 프로토콜 분석기 인 Wireshark에 완벽하게 사용됩니다 .

포트에 관계없이 전체 시스템에서 수신 한 모든 TCP / UDP 패킷을 볼 수 있습니다. 추가 분석을 위해 특정 포트를 통해 전송 된 패킷 만 필터링하도록 프로그램에 지시 할 수도 있습니다. Wireshark의 장점은 소스, 대상, 포트, MAC 주소, 데이터, 날짜, 체크섬 등 각 패킷에 대해 매우 상세한 메시지를 제공한다는 것입니다. 매우 유용하고 무료 인 도구입니다.


6
유머-언제 언제 Wireshark가 실제로 포트에서 수신 대기하는 서비스처럼 행동합니까? 트래픽을 수동으로 기록합니다.
Florenz Kley

@FlorenzKley 당신이 맞아요, 그렇지 않습니다 ...하지만 그의 질문을 특정 포트에서 네트워크 트래픽을 보는 방법으로 해석했습니다. OP가 자신의 프로그램 사본을 두 개만 실행하는 것은 사소한 일이 아니기 때문에 동일한 포트에서 한 번 (다른 프로그램이 이미 포트에서 수신중인 경우 어떻게되는지 확인)?
획기적인

0

가장 좋은 대답은 IMHO입니다. TCP Builder를보고 좋아했지만 해당 응용 프로그램을 실행하려면 관리자 권한이 필요하며 TCP 리스너와 함께 필요하지 않으며 TCP Builder를 설치하거나 많은 파일의 압축을 풀고 여러 파일을 복사해야하지만 TCP Listener는 1입니다. EXE는 더 이상 없습니다.

TCP Listener에는 관리자 권한이 필요하지 않았으며 AV를 검색했을 때 악의적이라고 말한 것은 없습니다. 빌더는 Virustotal에 1 AV가 나쁜 것이라고 말했지만 거짓 긍정으로 판명되었습니다.

빌더가 sans 관리자 권한을 실행하도록하는 동안 리스너는 소켓을 후크 할 수 없습니다. 모든 테스트를 수행 한 후에는 리스너의 1 개 파일 만 삭제할 수 있었고 모두 이전과 동일했습니다.

Netcat은 좋았지 만 2012 이상의 서버에서 작동하는 버전을 찾지 못했습니다. 따라서 네트워크 방화벽과 로컬 방화벽이 특정 TCP 포트의 연결을 허용하는지 테스트하려면 TCP 리스너가이 작업에 가장 적합한 도구 인 것 같습니다.

즐겨!


0

netcat의 Windows 버전을 사용할 수 있습니다 .

nc -l -v localhost -p 7

참고 : 일부 맬웨어 또는 방화벽 보안 소프트웨어는이 파일을 바이러스로 표시 할 수 있습니다. 이 프로그램이 수행 할 수있는 작업으로 인해이 프로그램은 맬웨어 프로그램에 포함되었을 수 있지만 맬웨어 그 자체는 아니며 2017-10-04부터이 파일은 VirusTotal에 의해 깨끗하게 스캔됩니다 (하나의 스캐너에 의해 "리스크웨어"로 표시됨). URL파일 스캔 자체
Mokubai

0

Windows에서는 netcat을 좋아하지만 인터넷에서 다운로드 및 설치가 항상 가능한 것은 아닙니다. 프로덕션 서버를 설정하고 설치하기 전에 방화벽 규칙을 테스트하고 싶을 수도 있습니다.

대부분의 (모든?) Windows 서버에는 JScript.net 컴파일러가 있습니다. 유효한 JScript.net 프로그램 인 polyglot 프로그램 인 일반 Windows 배치 파일을 작성할 수 있습니다 .

tl; dr;

아이디어는 jsc.exe시스템 에서 실행 파일 을 찾는 것입니다.

for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d /o:-n "%SystemRoot%\Microsoft.NET\Framework\*jsc.exe"') do (
   set "jsc=%%v"
)

그리고 배치 파일을 컴파일하는 데 사용하십시오.

"!jsc!" /nologo /out:"%APPDATA%\listener.exe" "%~dpsfnx0"

배치 파일에는 동기 소켓을 작성하고 청취하며 연결을 수락하고 모든 것을 삭제하는 기본 JScript.Net 코드가 포함되어 있습니다.

listener.Bind(localEndPoint);  
listener.Listen(10);  

// Start listening for connections.  
while (true) {  
    var data:byte[] = new byte[1024];

    Console.WriteLine("Waiting for a TCP connection on {0}:{1}...", ipAddress, port);  
    var handler = listener.Accept();  

    Console.WriteLine("Connected to {0}", handler.RemoteEndPoint);  

    try {
        // An incoming connection needs to be processed.  
        while (handler.Receive(data) > 0);  
    } finally {
        Console.WriteLine("Disconected\n");
    }

    handler.Shutdown(SocketShutdown.Both);  
    handler.Close();  
}

컴파일 된 프로그램은로 저장됩니다 %APPDATA%\listener.exe. 자체적으로 실행되고 서버에서 복사 될 수 있지만 폴리 글 로트 배치 파일에서 컴파일하면 보안 장애에 관계없이 작동합니다.


-2

Sysinternals 툴킷의 TCPView 는 매우 유용한 개요를 제공합니다.


이 도구를 사용하면 실행중인 시스템에서 TCP 포트를 열 수 있습니까?
Pimp Juice IT

나는 잘 모르는 것 같아요 .. 이름에서 알 수 있듯이 그것은 단지 뷰의
패트릭 Mihalčin

그러나 문제는 " 내 컴퓨터에서 특정 네트워크 TCP 포트 를 여는 기본 유틸리티가 있습니까?"입니다. TCPView에서는 연결을 닫을 수 있지만 이것이 시스템에서 변경할 수있는 유일한 것입니다.
Peter Mortensen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.