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.
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.
Respostas:
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
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
Tente iperf. Existe uma versão para Windows. Você pode simplesmente executá-lo como se iperf -s -p 1234
fosse 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.exe
ou portqry.exe
para 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.
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.
A torneira e a mangueira das ferramentas netpipes sempre me serviram bem, simplificando e para os meus programas usarem na rede.stdin
stdout
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 - .
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!).
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!
Você pode usar a versão do netcat para Windows :
nc -l -v localhost -p 7
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;
polyglot-listener.bat 1234
para escutar na porta 1234
.A idéia é encontrar o jsc.exe
executá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.
O TCPView do kit de ferramentas Sysinternals fornece uma visão geral muito boa.