Примеры команд netstat в Linux.
Команда netstat, входящая в стандартный набор сетевых инструментов UNIX, отображает различную network–related информацию, такую как сетевые подключения, статистику интерфейсов, таблицы маршрутизации, masquerade, multicast, и т.п.
В этой статье рассмотрим десять практических примеров использования команды netstat в Linux.
1. Список всех портов (как прослушиваемых, так и нет)
Перечислить все порты: netstat -a
Перечислить все TCP порты: netstat -at
Перечислить все UDP порты: netstat -au
2. Список сокетов, находящихся в состоянии LISTEN
Перечислить все прослушиваемые порты: netstat -l
Перечислить прослушиваемые TCP порты: netstat -lt
Перечислить прослушиваемые UDP порты: netstat -lu
Перечислить прослушиваемые UNIX сокеты: netstat -lx
3. Просмотр статистики для каждого протокола
Показать статистику всех портов: netstat -s
Показать статистику только TCP портов: netstat -st
Показать статистику только UDP портов: netstat -su
4. Отображение PID и имени процесса в выводе netstat
Опция netstat -p добавит «PID/Program Name» в вывод netstat, и может быть совмещена с любым другим набором опций. Это очень полезно при отладке, для определения того, какая программа работает на определённом порту.
5. Разрешение имён в выводе netstat
Когда вам не нужно резолвить имя хоста, имя порта, имя пользователя, используйте опцию netstat -n для вывода значений в цифровом формате. Команда покажет IP-адрес вместо хоста, номер порта вместо имени порта, UID вместо имени пользователя.
Это также ускорит вывод, так как netstat не станет выполнять ненужный поиск.
<pre># netstat -an</pre>
Для вывода цифровых значений только некоторых из этих пунктов, используйте следующие команды:
<pre># netsat -a --numeric-ports # netsat -a --numeric-hosts # netsat -a --numeric-users</pre>
6. Вывод информации netstat непрерывно
Опция netstat -c будет выводить информацию непрерывно, в стиле top, обновляя экран каждые несколько секунд.
7. Неподдерживаемые системой семейства адресов
Опция netstat --verbose покажет подробный вывод, а в самом конце отобразит неподдерживаемые Address Family.
8. Маршрутизация ядра
Показать таблицу маршрутизации ядра: netstat -r
Примечание: Используйте netstat -rn для просмотра маршрута в цифровом формате без разрешения имён узлов.
9. Соответствие портов и процессов
Узнать, какой порт занимает определённая программа:
<pre># netstat -ap | grep ssh (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 *:ssh *:* LISTEN - tcp6 0 0 [::]:ssh [::]:* LISTEN -</pre>
Выяснить, каким процессом используется определённый порт:
<pre># netstat -an | grep ':80'</pre>
10. Сетевые интерфейсы
Показать список сетевых интерфейсов: netstat -i
Показать расширенную информацию об интерфейсах (аналогично ifconfig): netstat -ie
11. netstat -lnptux
Резюмируем вышеописанное и объединим ключи в одну полезную команду, которая покажет:
- <kbd>-l</kbd> все открытые порты (LISTEN)
- <kbd>-t</kbd> по протоколу TCP
- <kbd>-u</kbd> по протоколу UDP
- <kbd>-x</kbd> по протоколу UNIX Socket
- <kbd>-n</kbd> без резолва IP/имён
- <kbd>-p</kbd> но с названиями процессов и PID-ами
- -atupn проверяем, какие порты и чем заняты
Примечание: Не все процессы могут быть идентифицированы последним ключом, чужие процессы показаны не будут. Вы должны иметь права root чтобы увидеть всё.
# netstat -lnptux
Active Internet connections (only servers)
Комментарии