Назад | Перейти на главную страницу

Может пинговать ip, но не отображается в netstat?

Мне было интересно, сможет ли кто-нибудь помочь мне с чесалкой для головы. У нас есть устройство, которое связывалось с нашим сервером, но не отправляет обратно никаких данных.

Я могу пинговать IP-адрес, который успешно пингует, но когда я выполняю netstat на машине, IP-адрес не отображается.

Почему это могло быть? Как IP-адрес может быть доступен для проверки связи, но не подключен? Могу ли я использовать какие-либо другие инструменты для диагностики этой проблемы?

Обновить:

Извините за использование комментариев ниже. Я не понимал, что могу редактировать свой пост !!

EightBitTony, мне кажется, я понимаю, что вы имеете в виду, когда говорите: «netstat -a показывает подключенные машины, а не только IP-адрес каждой машины в любом месте».

Единственная задача этого удаленного устройства - подключаться к сети и отправлять данные на наши серверы. IP-адрес устройства: 10.113.201.155, а номер порта, к которому оно должно подключиться: 6102.

Когда я выполняю netstat, я ожидал, что он будет подключен к этому номеру порта (6102), но это не так. 6102 - это порт, который прослушивает серверное программное обеспечение.

Эта удаленная станция не отправляла обратно никаких данных за последние 2 дня, что является проблемой, с которой мы сталкиваемся, но ее можно проверить, предполагая, что она подключена к сети. К сожалению, это устройство не находится в офисе, где бы я мог его просто сбросить.

Мы собираемся отправить группу обслуживания, но я хотел лучше понять, что происходит и почему это происходит.

У меня есть еще один вопрос. Если удаленная станция подключается к сети, но не привязывается к порту 6102, не будет ли это отображаться в netstat? Думаю, я знаю ответ здесь (нет).

Обновление 2:

Спасибо EightBitTony. Вы мне это прекрасно объяснили, и я понимаю, о чем вы. Прочитав ваш ответ, я считаю, что приложение каким-то образом вышло из строя на этой машине и находится в каком-то аварийном состоянии.

Я попытался "повысить" ваш ответ, но мне не хватает очков репутации !!

Вы можете пропинговать любой IP-адрес в любом месте, где разрешена сетевая маршрутизация и брандмауэры, но это не означает, что он подключен к вашему компьютеру и поэтому не будет отображаться в netstat.

Netstat показывает, какие TCP-порты имеют активные соединения (то есть подключенные машины, а не только машины, которые могли или которые использовались для подключения). Ping использует ICMP (иногда UDP) и не полагается на порты TCP.

В вашем случае это звучит так, как будто приложение не подключается, но операционная система все еще работает, поэтому вы можете проверить связь с машиной (потому что это отвечает ОС), но приложение не может подключиться к вашему серверу, потому что это не так. работает, или потому что у него другие проблемы.

Если вы не можете подключиться к нему удаленно и войти в систему, чтобы проверить приложение, вам нужно отправить кого-нибудь к нему.

Вы также спросили,

У меня есть еще один вопрос. Если удаленная станция подключается к сети, но не привязывается к порту 6102, не будет ли это отображаться в netstat? Думаю, я знаю ответ здесь.

Мы не знаем, какая ОС или приложение работает на этой «удаленной станции», но это приложения, которые подключаются к портам, и все же именно операционные системы (или, скорее, компоненты этих операционных систем) запускают и управляют сетью. Итак, если вы применение подключается, да вы это увидите. Но если удаленная станция загружается и запускает сеть, она ничего не будет делать, пока работающее приложение не попытается что-либо сделать, в случае сбоя вы ничего не увидите на своем конце. Сеть и приложение разделены.

Последний пример. Предполагая, что ваш компьютер может подключаться к Интернету, вы можете ping www.google.com но это не значит, что www.google.com когда-либо пытался подключиться к вашему компьютеру.

Какие параметры вы используете для netstat? Если вы хотите перехватывать ICMP-трафик, вам нужно добавить -p icmp в вашу командную строку. Вы можете не увидеть адрес устройства в выводе netstat (ответ EightBitTony говорит вам, почему), но если связь между двумя хостами прошла успешно, то его IP-адрес должен быть в кэше ARP сервера; быстрый arp -a сообщит вам об этом, если оба хоста находятся в одной подсети.

Вы также можете получить более полезную информацию, используя Wireshark или что-то в этом роде, чтобы вместо этого перехватить трафик приложения, поступающий на ваш сервер с устройства.