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

Как использовать информацию netstat

У нас есть приложение под названием «Seamer», установленное на машине 2008R2 с именем «R2DUO», для которого IP-адрес установлен как 192.61.247.37 в файле хоста, а 172.26.127.40 - это IP-адрес карты Ethernet. У нас есть еще две системы в локальной сети с именем R2TMBER и R2LEAF. Одна функциональность должна быть достигнута, когда есть соединение с портом 5009. На данный момент эта функциональность не достигается, когда я проверил netstat -a, я мог видеть эти записи,

TCP    0.0.0.0:5009           R2DUO:0        LISTENING
TCP    127.0.0.1:445          R2DUO:64181    ESTABLISHED
TCP    127.0.0.1:5009         R2DUO:49519    ESTABLISHED

TCP    127.0.0.1:49156        R2DUO:5009     TIME_WAIT            around 50 entries are there now

TCP    127.0.0.1:49519        R2DUO:5009     ESTABLISHED
TCP    127.0.0.1:64181        R2DUO:microsoft-ds  ESTABLISHED
TCP    127.0.0.1:65190        R2DUO:5009     TIME_WAIT            again 50 entries are there


TCP    172.26.127.42:5009     R2DUO:64445    ESTABLISHED
TCP    172.26.127.42:64445    R2DUO:5009     ESTABLISHED

TCP    192.61.247.37:5009     R2TMBER:50334    ESTABLISHED
TCP    192.61.247.37:61552    R2LEAF:5009      ESTABLISHED

Это все знания, которые я знаю на данный момент, сначала 5009 в режиме прослушивания, затем он устанавливает соединение. Но после этого внезапно происходит TIME_WAIT, затем устанавливается соединение и снова идет timewait, наконец, он устанавливает соединение с двумя другими системами в LAN. Может ли кто-нибудь указать мне что-то не так в настройке системы или мне нужно проверить какие-либо вещи, связанные с сетью. Я хотел бы знать логику этой последовательности в netstat, показанном ниже. Сначала это будет 0.0.0.0:portnumber, затем будет 127.0.0.1 (loopback): portnumber, затем это ethernetIp: portnumber, наконец, это будет с IP-адресом введенной системы в файле хоста и на двух других машинах и т. д.

Обновление на основе комментария; Убедитесь, что служба не конфликтует с какой-либо базовой службой MS;
Реестр имени службы и номера порта транспортного протокола

winfs 5009 tcp Microsoft Windows Filesystem [Simon_Skaria] 2006-01
winfs 5009 udp Microsoft Windows Filesystem [Simon_Skaria] 2006-01

Думаю, вам будет интересно прочитать статью в Википедии о TCP соединение рукопожатие и жизненный цикл соединения, если вы очень заинтересованы в понимании информации netstat. Кроме того, вы упомянули состояние соединения, которое относится к программированию сокетов TCP, но на самом деле вы можете игнорировать все это, потому что на самом деле это довольно просто. (хорошо...;-)

Когда ты звонишь netstat -a вы запрашиваете ВСЕ соединения, как прослушивающие, так и подключенные.

В основном LISTENING строка указывает, что какой-то процесс прослушивает TCP-порт 5009, что хорошо, потому что это ваше приложение ...

TCP    0.0.0.0:5009           R2DUO:0        LISTENING

Однако, когда какой-то удаленный процесс устанавливает соединение с TCP-сокетом 5009, программа, управляющая 5009, обычно разветвляет другой процесс или поток для обработки соединения, поэтому вы фактически получаете netstat -a как это;

TCP    0.0.0.0:5009           R2DUO:0        LISTENING
TCP    127.0.0.1:5009         R2DUO:49519    ESTABLISHED

который является исходным слушателем, плюс подключенный удаленный процесс. т.е. это ваша клиентская программа, подключающаяся к серверу.

Дальнейшие соединения создают дополнительные линии вроде этого;

TCP    0.0.0.0:5009           R2DUO:0        LISTENING
TCP    127.0.0.1:5009         R2DUO:49519    ESTABLISHED
TCP    127.0.0.1:5009         XXX:NNN        ESTABLISHED
TCP    127.0.0.1:5009         YYY:NNN        ESTABLISHED

ВРЕМЯ ЖДЕТ

В этом ответе есть довольно хорошее объяснение состояния TIME_WAIT;
https://stackoverflow.com/questions/337115/setting-time-wait-tcp

TCP    127.0.0.1:65190       R2DUO:5009     TIME_WAIT
TCP    127.0.0.1:NNNN        YYYTO:5009     TIME_WAIT
TCP    127.0.0.1:NNNN        RXXXO:5009     TIME_WAIT
TCP    127.0.0.1:NNNN        XXTXX:5009     TIME_WAIT
...many more...

TIME_WAIT - это состояние, которое возникает в конце соединения на стороне клиента, когда клиент активно закрыл соединение, отправив ACK в FIN, но, насколько возможно, пакеты все еще идут с другой стороны соединения. , следовательно, клиентское соединение находится в состоянии TIME_WAIT, которое всегда длиннее, чем TTL пакета, см. этот и который для очень подробного обсуждения статуса TCP TIME_WAIT.

Порт 5009, по-видимому, зарегистрирован службой файловой системы Microsoft Windows (winfs), поэтому вам нужно будет предоставить дополнительные сведения о ваших службах и настройке, а также о том, в чем проблема, кроме той, что вы видели в выводе netstat.

Нагрузка подключений: TIME_WAIT

TCP    127.0.0.1:65190       R2DUO:5009     TIME_WAIT
TCP    127.0.0.1:NNNN        YYYTO:5009     TIME_WAIT
TCP    127.0.0.1:NNNN        RXXXO:5009     TIME_WAIT
TCP    127.0.0.1:NNNN        XXTXX:5009     TIME_WAIT
...many more...

По сути, ваш клиент подключается, а затем сразу же отключается, много раз, поэтому что-то более раннее в приложении, такое как проверка подлинности или несоответствие протокола приложения, или что-то, не связанное с базовым TCP.

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

Некоторые возможности для этого - проблема с паролем между клиентом и сервером или некоторая неправильная конфигурация приложения, которая может вызвать внезапное закрытие со стороны клиента.