Não gosto de redes e tenho a seguinte pergunta relacionada ao comando ping do Linux .
Posso apenas executar ping em um endereço? Por exemplo:
miner@raspberrypi ~ $ ping onofri.org
PING onofri.org (67.222.36.105) 56(84) bytes of data.
64 bytes from onofri.org (67.222.36.105): icmp_req=1 ttl=47 time=202 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=2 ttl=47 time=206 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=3 ttl=47 time=215 ms
Ou também posso executar ping em um endereço: port , por exemplo: onofri.org:80 ?
Se eu tentar este não funciona:
miner@raspberrypi ~ $ ping onofri.org:80
ping: unknown host onofri.org:80
É possível executar ping como algo como address: port ? Se for possível, por que o que eu tentei não funciona?
linux
networking
ping
AndreaNobili
fonte
fonte
GET /index.html HTTP\1.1
e ver a resposta 200 (ou código de erro) junto com a marcação resultante.HTTP\1.1
? Realmente?HTTP/1.1
...Respostas:
Você pode usar o Paping , um teste de porta TCP de plataforma cruzada, emulando a funcionalidade do ping (ping da porta)
(veja também Github como code.google.com foi depreciado)
fonte
paping
? Eu visitei o repositório, mas não há lançamentos. Ah, deixa pra lá .. o código do google não estava acessível para mim no momento.Portas são um conceito de UDP e TCP . As mensagens de ping são tecnicamente chamadas de Solicitação de eco ICMP e Resposta de eco ICMP, que fazem parte do ICMP . ICMP, TCP e UDP são "irmãos"; eles não são baseados um no outro, mas são três protocolos separados que são executados sobre o IP.
Portanto, você não pode
ping
uma porta. O que você pode fazer é usar um scanner de porta comonmap
.Você também pode usar
telnet onofri.org 80
, conforme sugerido em uma das outras respostas (isso causará um erro se a porta estiver fechada ou filtrada).fonte
Eu uso o Telnet , uma vez que está embutido em muitas plataformas sem downloads adicionais.
Basta usar o comando telnet para conectar-se à porta que você deseja testar. Se você receber a mensagem abaixo ou uma mensagem do próprio serviço, a porta estará ativa.
Se você conhece a sequência de comandos do serviço ao qual está se conectando, pode digitar um comando ( HTTP / FTP GET, por exemplo) e observar a resposta e a saída no terminal. Isso é muito útil para testar o próprio serviço, pois mostra informações de erro enviadas ao cliente, como erros de HTTP 500.
Se você receber uma mensagem de que a conexão foi recusada, a porta está fechada.
fonte
Sim, use HPing para fazer isso:
Observe que ele precisa de privilégios de root (ou recursos do SELinux) para criar pacotes IP brutos, assim como o ping (que é provavelmente o suid no seu sistema).
fonte
hping3
.É o mesmo quehping3
? @ d33tahhping3
e pinga todas as portas .. Não importa fechado ou aberto .. Como posso saber se uma porta está fechada ou aberta?Você pode usar o netcat para conectar-se a uma porta específica e verificar se obtém uma conexão. O sinalizador -v aumentará a verbosidade para mostrar se a porta está aberta ou fechada. O sinalizador -z fará com que o netcat saia assim que tiver uma conexão. Você pode usar os códigos de saída através de $? para ver se a conexão foi estabelecida ou não.
Além disso, você pode usar mtr com o sinalizador -T para tcp e o sinalizador -P para especificar uma porta. Isso fará algo semelhante a um traceroute sobre TCP em vez de apenas ICMP. Isso pode ser um exagero, no entanto.
suspiro Eu tenho que editar para adicionar este bit, já que não podemos colocar código nos comentários. O Knoppix pode estar fazendo algo diferente com sua versão do netcat, mas é isso que recebo do Linux Mint
fonte
nc -z www.google.com 8000
, pode levar um longo tempo - mais de 5 segundos. Se eu fizer-w 1
, leva 5 segundos. Se o fizer-w 3
, leva três vezes mais tempo .. 15 flashes do cursor, 15 segundos.-w 1
deve ser um segundo, mas testado no cygwin.,. 5 segundos. É super rápido quando há um servidor na porta, mas um pouco lento quando não existe.Você também pode usar
nping
(parte denmap
):fonte
nping --tcp -p 80 localhost
Você pode fazer isso no shell com o Python como um liner não tão curto:
fonte
Apenas para referência, queria compartilhar um post de Vivek Gite: https://www.cyberciti.biz/faq/ping-test-a-specific-port-of-machine-ip-address-using-linux-unix/# comment-920398
Ele lista várias maneiras, algumas das quais já estão publicadas aqui. Mas o mais surpreendente para mim nada mais foi do que
bash
:Ou uma versão super simples: basta observar a saída do seguinte padrão de comando:
Útil ao trabalhar com contêineres de encaixe aleatórios.
fonte
looking at the output
- apenas inspecionar o código de retorno$?
pode ser útil. Também paira sobre portas fechadas, podem ser alguns tempo limite pode ser configurado em qualquer lugar ...echo >/dev/tcp/{hostname}/{portnumber}
não termina quando a porta está fechada. Eecho >/dev/tcp/{hostname}/{portnumber}
não mostra nada, embora a porta esteja aberta e eu possa vê-la em um navegador.Connection refused
. Caso contrário, ele sai mostrando nada eecho $?
mostrando o código de saída1
Eu adiciono
watch
ferramenta aqui:watch nmap -p22,80 google.com
fonte
É simples com
nmap
exemplos:
Para mais informações, consulte:
digite na linha de comando o seguinte:
man nmap
http://www.cyberciti.biz/networking/nmap-command-examples-tutorials/ http://www.tecmint.com/nmap-command-examples/
fonte
Você está tentando testar a comunicação ou obter uma resposta da porta 80 nesse nó?
PING
tentará estabelecer comunicação com um host específico por meio do ICMP que não tem nada a ver com portas.Em vez disso, tente http://nmap.org/ para verificar as informações da porta e testar a comunicação:
fonte