В том же духе, что и вопросы «Полезная командная строка» (для Windows , Linux и Mac ), я думаю, что было бы удобно иметь «полезные способы использования утилиты x». Страницы руководства говорят вам, что делают параметры, но не обязательно, почему вы будете их использовать, что означает результат, какие полезные действия делает команда, о которых вы никогда не узнаете, если не будете экспериментировать, или как получить ответ, который вам действительно нужен.
Я хотел бы знать о netstat . Может показаться, что я смогу определить, какие процессы используют пропускную способность и, действительно, насколько быстро система использует пропускную способность. Он также выглядит полезным для обнаружения нежелательных подключений (вероятно, virii) и предоставляет все виды информации о маршрутизации (с которой мне приходилось играть только при попытке заставить Sharp Zaurus PDA использовать TCP / IP через USB). Другими словами, он звучит как золотая жила, и я надеялся, что некоторые из вас поделятся частями найденной вами информации.
Пожалуйста, включите версию netstat и вашу ОС в свой ответ. Было бы неплохо увидеть пример выходных данных и узнать, что это значит. Я пометил этот вопрос как вики сообщества, и я надеюсь, что вы сделаете то же самое в своих ответах, чтобы другие люди, зная другую ОС, могли написать почти эквивалентную команду, если они знают, в том же ответе, и тогда мы можем голосовать, какие ответы являются наиболее полезными.
Таблицы маршрутизации Netstat
[Это было проверено на Mac OS X 10.5.7. Я подозреваю, что результат почти одинаков для всех платформ, как было указано, для работы на Solaris.]
даст вам таблицу маршрутизации.
то же самое, но даст вам необработанные IP-адреса вместо поиска имен компьютеров. Его вывод выглядит так (только дольше):
Колонки:
Пункт назначения и шлюз. Пункт назначения - это адрес (или диапазон адресов), на который мы можем отправлять информацию. Все данные, отправленные в этот пункт назначения, будут направлены в соответствующий шлюз. Шлюз знает, куда отправлять данные для следующего «перехода» в пути. Если мы хотим отправить данные в пункт назначения, который не имеет записи в таблице маршрутизации, он пройдет через шлюз по умолчанию.
Флаги: на странице man / info перечислены все флаги. Вот что означают настройки моего шлюза по умолчанию:
Любопытно, что он утверждает, что был добавлен вручную, так как он пришел через DHCP.
Refs : «Поле refcnt дает текущее число активных использований маршрута. Протоколы, ориентированные на соединение, обычно удерживают один маршрут на время соединения, в то время как протоколы без установления соединения получают маршрут при отправке в тот же пункт назначения». (Man страница)
Use: «Поле use предоставляет счетчик количества пакетов, отправленных по этому маршруту».
Netif: «Запись интерфейса указывает сетевой интерфейс, используемый для маршрута».
На моем Mac
Срок действия: из справочной страницы для другой версии netstat: «Отображает время (в минутах), оставшееся до истечения маршрута».
источник
Проверьте страницу Netstat в CommandLineFu, чтобы узнать о некоторых полезных способах использования netstat в bash.
источник
В окнах:
Показывает количество соединений TCP / IP. Полезно при устранении высоких сетевых систем, работающих под управлением из портов TCP и нужно увеличить MaxUserPorts .
источник
Скорость передачи / приема
На Mac [OS X 10.5.7]:
[См . Ответ Чака для заметок об использовании в Solaris и Linux.]
Вывод выглядит так:
Это показывает, сколько пакетов и байтов было передано в данный интервал времени. (10 секунд в этом примере). Я был подключен к YouTube и загружал более 1 МБ каждый интервал, пока не закрыл вкладку браузера и скорость не достигла дна.
Это может оказаться полезным, если вы ожидаете окончания загрузки или загрузки. Контролируйте скорость, и когда она резко падает, вы знаете, что это сделано.
Обратите внимание, что команда выше показывает всю пропускную способность на всех интерфейсах. Чтобы привязать его к определенному интерфейсу (в данном примере WiFi), используйте
-I
флаг следующим образом:источник
Окна:
Показывает активные соединения TCP, но без активности UDP.
Показывает все активные соединения TCP, а также прослушивает соединения TCP и UDP. Здесь не отображается исходящая активность UDP.
источник
netstat -p tcp -n
илиnetstat -p tcp -an
Windows
Показать процесс с использованием соединения
источник
Windows 7 (возможно, так как ранее, хотя):
список активных сессий с соответствующими PID
или сохранить шаг
(из повышенного приглашения CMD) дает имя процесса
источник
Я уверен, что заново изобретаю колесо, но вот простой Perl-скрипт для запуска netstat и сортировки выходных данных, так что IP-адреса, в основном подключенные в данный момент, выходят на первое место. Это лучше всего использовать с программой 'watch' для обновления с 2-секундными интервалами.
Обновление: значительная перезапись 2013-02-11, чтобы избавиться от многих проблем и отобразить имена хостов
Пример вывода:
источник
Solaris:
источник
Из книги Wicked Cool Shell Scripts:
Скрипт № 90.1 : Каждые 'n' минуты, получать значения netstats (через crontab)
Сценарий # 90,2 : Анализ NETSTAT работает журнал производительности, выявляя важные результаты и тенденции.
(Люблю эту книгу - стоит купить!)
источник
В Solaris многие люди привыкли делать «netstat -i 1» для получения количества запущенных пакетов. Netstat для Linux имеет бесполезную версию этой функции, так как она показывает необработанный счетчик, а не дельту. Чтобы получить аналогичные результаты, выполните "sar -n DEV 1 0". Рассмотрим фактически «LANG = C sar -n DEV 1 0 | grep interfacename» (sar устанавливает время с AM и PM в начале строки в определенных локалях, поэтому лучше всего привыкнуть всегда запускать «LANG = C sar "на случай, если вы когда-нибудь разберетесь).
источник
На Солярисе,
Показывает сводку различной статистики. Полезно для проверки ошибок и т. Д.
источник
Так как никто еще не упомянул это:
предоставляет массу полезной статистики по протоколу под Linux.
источник