Utilitário para abrir a porta TCP para ouvir o estado

24

Existe algum utilitário básico para abrir uma porta TCP de rede específica na minha máquina?

Preciso testar como meu programa lida com portas no estado de escuta.

Vic
fonte
ocupar você quer dizer sobre deixar uma porta TCP específica aberta no estado de escuta?
Diogo
11
Esta questão não faz sentido. Uma porta é "fechada" por padrão quando nada está escutando nela.
Ingmar Hupp
2
É isso que eu quero - algum utilitário que estará escutando na porta de minha escolha e não faça nada.
Vic

Respostas:

10

O netcat deve fazer o que você deseja. Faça com que você escute em sua máquina e faça eco de STDOUT:

nc -4 -k -l -v localhost 1026

quando você quiser fechar quando a conexão terminar, não use -k

Florenz Kley
fonte
2
Funciona no Windows ??? Eu tentei este comando aqui e não foi reconhecido.
Diogo
4
Eu ia postar isso como minha resposta! = p Você pode baixar o netcat aqui: joncraton.org/files/nc111nt.zip É uma ferramenta bastante antiga, mas acho que as pessoas não conseguiram perceber o quão útil pode ser.
Cutrightjm
@Diogo Rocha Você sabe que é um programa baixado, correto?
Cutrightjm
3
Eu não sabia ... Seria bom se o answear postar o link para baixar então ...
Diogo
@DiogoRocha - removi o link falso para o netcat. O site oficial está no sourceforge. É parte de praticamente todos os repositórios de pacotes existentes, por isso não instalo a partir do código fonte há 10 anos seguidos.
Florenz Kley
6

Você tem

Ouvir o TCP: http://www.allscoop.com/tcp-listen.php

Port Peeker: http://www.linklogger.com/portpeeker.htm

Utilitário de linha de comando da Microsoft Portqry.exe

nelson.t.cunha
fonte
11
Ouvir TCP - pequeno e agradável programa GUI sem instalação! ;-)
hoggar
11
Port Peeker, o site não existe mais ou não é acessível (jan 2019)
shawty
Aqui está, o último instantâneo do InternetArchive: web.archive.org/web/20180616055542/http://www.linklogger.com/… Alguns links para download ainda estão funcionando.
nelson.t.cunha
4

Tente iperf. Existe uma versão para Windows. Você pode simplesmente executá-lo como se iperf -s -p 1234fosse ouvir na porta 1234. Em seguida, você pode conectar-se a essa porta a partir de uma máquina remota, fazendo algo como:

telnet 192.168.1.1 1234

iperf -c 192.168.1.1 1234

portqry -n 192.168.1.1 -e 1234

Você precisaria obter iperf.exeou portqry.exepara os dois últimos. O iPerf não foi projetado estritamente para esta tarefa, mas é ótimo para solucionar problemas de conectividade, disponibilidade de largura de banda, links de teste de estresse etc.

reggaethecat
fonte
2

Parece que esse utilitário fará exatamente o que você deseja, até exibindo os dados recebidos, se você quiser: http://www.drk.com.ar/builder.php

Possui uma GUI, e não apenas uma linha de comando, uma vantagem para alguns.

Jon
fonte
1

A torneira e a mangueira das ferramentas netpipes sempre me serviram bem, simplificando e para os meus programas usarem na rede.stdinstdout

Semelhante ao netcat .

Descrição do Ubuntu:

O pacote netpipes torna os fluxos TCP / IP utilizáveis ​​em scripts de shell. Ele também pode simplificar o código do cliente / servidor, permitindo que o programador pule todos os bits de programação tediosos relacionados aos soquetes e se concentre em escrever um filtro ou outro serviço.

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 - .
Marcos
fonte
Obrigado, mas eu preciso dele para Windows ...
Vic
Nem mesmo Cygwin?
Marcos
0

Esse é o uso perfeito para o Wireshark , um analisador de pacotes e protocolos que fica entre a pilha de rede do Windows / Linux.

Isso permitirá que você visualize todos os pacotes TCP / UDP recebidos por toda a sua máquina, independentemente da porta. Você também pode dizer ao programa para filtrar apenas pacotes enviados através de uma determinada porta para análise posterior. A vantagem do Wireshark é que ele fornece mensagens muito detalhadas para cada pacote - origem, destino, porta, endereços MAC, dados, datas, somas de verificação, etc. Ferramenta muito útil (e gratuita!).

Avanço
fonte
6
me humor - desde quando quando o Wireshark realmente se comporta como um serviço escutando em uma porta? Ele registra passivamente o tráfego.
Florenz Kley
@FlorenzKley, você está certo, não ... Interpretei a pergunta dele como exibir o tráfego de rede em uma determinada porta, já que não seria trivial para o OP apenas executar duas cópias de seu programa em uma vez na mesma porta (para ver o que acontece se outro programa já estiver escutando na porta)?
Breakthrough
0

Ouvir TCP é a melhor resposta IMHO. Eu olhei e gostei do TCP Builder, mas você PRECISA de direitos de administrador para executar esse aplicativo, NÃO precisa deles com o ouvinte TCP e também precisa instalar o TCP Builder ou descompactar e copiar um monte de arquivos, enquanto o TCP Listener é 1 EXE, nada mais.

O TCP Listener também não precisava de direitos de administrador e, quando eu o digitalizei, nada disse que era malicioso. O Builder tinha 1 AV no Virustotal dizendo que era ruim, mas acabou sendo um falso positivo (espero) :)

Embora eu tenha conseguido que o Builder executasse os direitos de administrador, ele não poderia conectar o soquete enquanto o Listener. Depois de fazer todos os meus testes, eu poderia excluir o arquivo 1 do Listener e tudo era como antes.

O Netcat teria sido bom, mas não encontrei uma versão que funcionasse com o servidor 2012 ou posterior. Portanto, para testar completamente se o firewall da rede e os firewalls locais permitem a conexão de portas TCP específicas, o ouvinte do TCP parece ser a melhor ferramenta para esse trabalho.

Apreciar!

David Howard
fonte
0

Você pode usar a versão do netcat para Windows :

nc -l -v localhost -p 7
água de neta
fonte
Nota: alguns softwares de segurança de malware ou firewall podem sinalizar esse arquivo como vírus. Devido ao que este programa pode fazer, ele pode ter sido incluído em programas de malware, mas não é um malware em si. Desde 04/10/2017, esse arquivo foi verificado como limpo pelo VirusTotal (marcado como "riskware" por apenas um scanner). Veja a nota da Comunidade no URL e a própria varredura de arquivos
Mokubai
0

Eu gosto do netcat no Windows, mas nem sempre é possível baixar e instalar coisas da Internet. Talvez você esteja configurando um servidor de produção e deseje testar suas regras de firewall antes (e sem) de instalar nada.

A maioria dos servidores Windows (todos?) Possui um compilador JScript.net. Você pode escrever um arquivo em lote antigo simples do Windows que também seja um programa JScript.net válido, um programa poliglota .

tl; dr;

A idéia é encontrar o jsc.exeexecutável no seu sistema:

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

E use-o para compilar o arquivo em lotes.

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

O arquivo em lotes contém o código JScript.Net básico que cria um soquete síncrono, escuta, aceita a conexão e descarta tudo o que vem:

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();  
}

O programa compilado será salvo como %APPDATA%\listener.exe. Ele pode ser executado sozinho, copiado em um servidor, mas a compilação a partir do arquivo em lotes poliglota funcionará independentemente de quaisquer obstáculos de segurança no seu caminho.

ixe013
fonte
-2

O TCPView do kit de ferramentas Sysinternals fornece uma visão geral muito boa.

Patrik Mihalčin
fonte
Esta ferramenta permite a abertura da porta TCP na máquina em execução?
Pimp Juice IT
Eu não estou ciente de que .. é apenas uma visão como o nome sugere
Patrik Mihalcin
Mas a pergunta é / foi: "Existe algum utilitário básico para abrir uma porta TCP de rede específica na minha máquina?". No TCPView, você pode fechar uma conexão, mas essa é a única coisa que pode ser alterada no sistema.
Peter Mortensen