Pode pingar um ip, mas não aparece no netstat?

1

Eu queria saber se alguém seria capaz de me ajudar com um scratcher de cabeça. Temos um dispositivo que se comunicou com o nosso servidor, mas não está enviando nenhum dado de volta.

Eu sou capaz de fazer o ping do endereço IP que pinga com sucesso, mas quando eu faço um netstat na máquina, o endereço IP não está listado.

Por que isso seria? Como um endereço IP pode ser pingável, mas não conectado? Existem outras ferramentas que eu poderia usar para me ajudar a diagnosticar esse problema?

Atualização:

Desculpe por usar os comentários abaixo. Eu não sabia que poderia editar meu próprio post !!

EightBitTony, acho que vejo o que você está recebendo quando diz: "netstat -a mostra máquinas conectadas, não apenas o endereço IP de todas as máquinas em qualquer lugar".

O único trabalho deste dispositivo outstation é entrar online e enviar dados para nossos servidores. O endereço IP do dispositivo é: 10.113.201.155 e o número da porta ao qual ele deve se conectar é: 6102.

Quando eu faço um netstat, eu esperava que ele estivesse conectado a esse número de porta (6102), mas não é. 6102 é a porta em que o software do servidor atende.

Este outstation não enviou nenhum dado de volta nos últimos dois dias, que é o problema que estamos tendo, mas é pingável, o que sugere que ele esteja online. Infelizmente este dispositivo não está localizado em um escritório em qualquer lugar onde eu poderia simplesmente redefini-lo.

Teremos que enviar uma equipe de manutenção, mas eu queria entender melhor o que está acontecendo e por que isso está acontecendo.

Eu tenho outra pergunta. Se o outstation ficar on-line, mas não se vincular à porta 6102, ele não será mostrado no netstat? Acho que sei a resposta aqui (não).

Atualização 2:

Obrigado EightBitTony. Você explicou isso perfeitamente para mim e eu entendo o que você quer dizer. Depois de ler sua resposta, acredito que o aplicativo falhou de alguma forma nessa máquina e está em algum tipo de estado danificado.

Eu tentei "aumentar" sua resposta, mas não tenho pontos de repetição suficientes !!

    
por Adrian 22.08.2011 / 12:25

2 respostas

4

Você pode executar ping em qualquer endereço IP em qualquer lugar que o roteamento de rede e os firewalls permitirem, mas isso não significa que ele esteja conectado ao seu computador e, portanto, não será exibido no netstat.

O Netstat mostra quais portas TCP possuem conexões ativas (ou seja, máquinas conectadas, não apenas máquinas que podem ou que se conectaram). Ping usa ICMP (às vezes UDP) e não depende de portas TCP.

No seu caso, parece que o aplicativo não está se conectando, mas o sistema operacional ainda está ativo e em execução, para que você possa executar ping na máquina (porque esse é o sistema operacional), mas o aplicativo não pode se conectar ao servidor porque não está em execução ou porque tem outros problemas.

Se você não conseguir se conectar a ele remotamente e fizer login para verificar o aplicativo, precisará enviar alguém para ele.

Você também perguntou,

I have another question. If the outstation comes online but does not bind to the port 6102 will it not be shown in netstat? I think I know the answer here.

Não sabemos qual SO ou aplicativo esta 'outstation' está executando, mas são aplicativos que se conectam a portas e, ainda assim, são sistemas operacionais (ou melhor, componentes desses sistemas operacionais) que criam e gerenciam a rede. Então, se você aplicativo se conecta, sim, você verá. Mas se o outstation inicializar e ativar a rede, ele não fará nada até que o aplicativo em execução tente fazer alguma coisa, se ele falhar, você não verá nada em sua extremidade. Rede e aplicativo são separados.

No último exemplo, supondo que seu computador possa se conectar à Internet, você pode usar ping www.google.com , mas isso não significa que www.google.com já tentou se conectar ao seu computador.

    
por 22.08.2011 / 13:19
2

Quais opções você está usando para o netstat? Se você quiser capturar o tráfego ICMP, precisará adicionar -p icmp à sua linha de comando. Você pode não ver o endereço do dispositivo na sua saída netstat (a resposta do EightBitTony lhe diz por que), mas se a comunicação tiver ocorrido com sucesso entre os dois hosts, seu endereço IP deverá estar no cache ARP do servidor; um arp -a rápido dirá isso, supondo que ambos os hosts estejam na mesma sub-rede.

Você também pode obter informações mais úteis usando o Wireshark ou algo do tipo para capturar o tráfego do aplicativo que chega ao seu servidor a partir do dispositivo.

    
por 22.08.2011 / 13:20