Отличить TCP-сервер от клиента в выводе netstat

Остановка с <Ctrl+Z> и продолжение в фоновом режиме с bg эквивалентно для выполнения с & в конце команды.

Так, для выполненного в фоновом режиме и перенаправления произведите:

java -jar myProgram.jar 2> errorOutput.log > output.log &

Если Вам также нужна та эта команда, не умирает, когда Вы оставляете терминал, то необходимо использовать nohup

6
02.08.2015, 20:20
2 ответа

Я считаю, что netstat -ntp покажет только клиентские (не прослушивающие) сокеты в столбце Локальный адрес .

Флаг -l должен заставить netstat перечислить только серверные (прослушивающие) сокеты, а с -a вы должны получить оба, а затем вы можете различать на основе ГОСУДАРСТВО с.

0
27.01.2020, 20:30

Если вы запустите netstat без grep , вы увидите, что столбец слева от центра имеет заголовок например "Местный адрес" , а столбец справа от центра имеет заголовок типа "Внешний адрес". Строка, которая показывает локальный адрес, который включает номер порта сервера , является сервером.

Вы можете лучше понять это , если запустите два клиентских процесса одновременно, а затем запустите

sudo netstat -ntp | grep -E "Address|8002"

И почему не появляется идентификатор / описание процесса, когда сокет находится в состоянии FIN_WAIT2 ?

Вероятно, потому что процесс завершился; в конце концов, FIN означает «конец» или «окончание». Пакеты FIN и состояния FIN_ связаны с завершением (закрытием) TCP-соединения , что обычно происходит только тогда, когда с ним завершаются процессы { {1}} (что происходит автоматически, когда один или оба процесса умирают). Сокет может оставаться в системе некоторое время после того, как процесс, который его открыл, завершился. Опять же, вы, вероятно, лучше почувствуете это, запустив netstat , когда оба процесса работают и исправны, , а затем посмотрите, как он меняется, когда они закрываются.

1
27.01.2020, 20:30

Теги

Похожие вопросы