Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
howto:utils:netstat [2015/06/28 15:30] Алексей Кожевников |
howto:utils:netstat [2019/01/17 14:07] (текущий) Алексей Кожевников ↷ Страница перемещена из howto:netstat в howto:utils:netstat |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
Команда **netstat**, входящая в стандартный набор сетевых инструментов UNIX, отображает различную network–related информацию, такую как сетевые подключения, статистику интерфейсов, таблицы маршрутизации, masquerade, multicast, и т.п. | Команда **netstat**, входящая в стандартный набор сетевых инструментов UNIX, отображает различную network–related информацию, такую как сетевые подключения, статистику интерфейсов, таблицы маршрутизации, masquerade, multicast, и т.п. | ||
- | В этой статье рассмотрим десять практических примеров использования команды **netstat в Linux**. | + | ===== Примеры: ===== |
- | ===== Список всех портов (как прослушиваемых, так и нет) ===== | + | ==== Количество соединений ==== |
+ | <code>netstat -ant| awk '{print $4}' | grep ":80$" -c</code> | ||
+ | |||
+ | ==== netstat -lnptux ==== | ||
+ | |||
+ | * -l все открытые порты (LISTEN) | ||
+ | * -t по протоколу TCP | ||
+ | * -u по протоколу UDP | ||
+ | * -x по протоколу UNIX Socket | ||
+ | * -n без резолва IP/имён | ||
+ | * -p но с названиями процессов и PID-ами | ||
+ | |||
+ | Примечание: Не все процессы могут быть идентифицированы последним ключом, чужие процессы показаны не будут. Вы должны иметь права root чтобы увидеть всё. | ||
+ | |||
+ | ==== Соответствие портов и процессов ==== | ||
+ | |||
+ | Узнать, какой порт занимает определённая программа: | ||
+ | <code> | ||
+ | # netstat -ap | grep ssh | ||
+ | </code> | ||
+ | |||
+ | Выяснить, каким процессом используется определённый порт: | ||
+ | <code> | ||
+ | # netstat -an | grep ':80' | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Параметры ===== | ||
+ | |||
+ | ==== Список всех портов (как прослушиваемых, так и нет) ==== | ||
Перечислить все порты: **netstat -a** | Перечислить все порты: **netstat -a** | ||
Строка 20: | Строка 49: | ||
</code> | </code> | ||
- | Перечислить все TCP порты: **netstat -at** | + | ==== Список сокетов, находящихся в состоянии LISTEN ==== |
+ | Перечислить все прослушиваемые порты: **netstat -l** | ||
- | Перечислить все UDP порты: **netstat -au** | ||
- | |||
- | |||
- | ===== Список сокетов, находящихся в состоянии LISTEN ===== | ||
- | |||
- | Перечислить все прослушиваемые порты: **netstat -l** | ||
- | <code> | ||
- | # netstat -l | ||
- | Active Internet connections (only servers) | ||
- | Proto Recv-Q Send-Q Local Address Foreign Address State | ||
- | tcp 0 0 localhost:domain *:* LISTEN | ||
- | tcp6 0 0 [::]:ssh [::]:* LISTEN | ||
- | udp 0 0 192.168.128.134:ntp *:* | ||
- | </code> | ||
Перечислить прослушиваемые TCP порты: **netstat -lt** | Перечислить прослушиваемые TCP порты: **netstat -lt** | ||
Строка 47: | Строка 63: | ||
- | ===== 3. Просмотр статистики для каждого протокола ===== | + | ==== Просмотр статистики для каждого протокола ==== |
Показать статистику всех портов: **netstat -s** | Показать статистику всех портов: **netstat -s** | ||
Строка 72: | Строка 88: | ||
</code> | </code> | ||
- | Показать статистику только TCP портов: **netstat -st** | + | ==== Отображение PID и имени процесса в выводе netstat ==== |
- | <code> | + | |
- | # netstat -st | + | |
- | </code> | + | |
- | Показать статистику только UDP портов: **netstat -su** | + | Опция **netstat -p** добавит «PID/Program Name» в вывод netstat, и может быть совмещена с любым другим набором опций. Это очень полезно при отладке, для определения того, какая программа работает на определённом порту. |
- | <code> | + | |
- | # netstat -su | + | |
- | </code> | + | |
- | ===== 4. Отображение PID и имени процесса в выводе netstat ===== | ||
- | |||
- | Опция **netstat -p** добавит «PID/Program Name» в вывод netstat, и может быть совмещена с любым другим набором опций. Это очень полезно при отладке, для определения того, какая программа работает на определённом порту. | ||
- | <code> | ||
- | # netstat -pt | ||
- | Active Internet connections (w/o servers) | ||
- | Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name | ||
- | tcp 0 0 org-ru-putty.vm.udf:www 52-106.plus.kerch:55723 ESTABLISHED 9486/nginx: worker | ||
- | tcp 0 0 org-ru-putty.vm.udf:www 52-106.plus.kerch:55757 ESTABLISHED 9486/nginx: worker | ||
- | </code> | ||
- | ===== 5. Разрешение имён в выводе netstat ===== | + | ==== Разрешение имён в выводе netstat ==== |
Когда вам не нужно резолвить имя хоста, имя порта, имя пользователя, используйте опцию **netstat -n** для вывода значений в цифровом формате. Команда покажет IP-адрес вместо хоста, номер порта вместо имени порта, UID вместо имени пользователя. | Когда вам не нужно резолвить имя хоста, имя порта, имя пользователя, используйте опцию **netstat -n** для вывода значений в цифровом формате. Команда покажет IP-адрес вместо хоста, номер порта вместо имени порта, UID вместо имени пользователя. | ||
- | Это также ускорит вывод, так как netstat не станет выполнять ненужный поиск. | ||
- | |||
- | <code> | ||
- | # netstat -an | ||
- | </code> | ||
Для вывода цифровых значений только некоторых из этих пунктов, используйте следующие команды: | Для вывода цифровых значений только некоторых из этих пунктов, используйте следующие команды: | ||
- | |||
<code> | <code> | ||
# netsat -a --numeric-ports | # netsat -a --numeric-ports | ||
Строка 113: | Строка 107: | ||
</code> | </code> | ||
- | ===== 6. Вывод информации netstat непрерывно ===== | + | ==== Вывод информации netstat непрерывно ==== |
Опция **netstat -c** будет выводить информацию непрерывно, в стиле **top**, обновляя экран каждые несколько секунд. | Опция **netstat -c** будет выводить информацию непрерывно, в стиле **top**, обновляя экран каждые несколько секунд. | ||
Строка 126: | Строка 120: | ||
</code> | </code> | ||
- | ===== 7. Неподдерживаемые системой семейства адресов ===== | + | ==== Маршрутизация ядра ==== |
- | + | ||
- | Опция **netstat –verbose** покажет подробный вывод, а в самом конце отобразит неподдерживаемые Address Family. | + | |
- | <code> | + | |
- | netstat: no support for `AF IPX' on this system. | + | |
- | netstat: no support for `AF AX25' on this system. | + | |
- | netstat: no support for `AF X25' on this system. | + | |
- | netstat: no support for `AF NETROM' on this system. | + | |
- | </code> | + | |
- | + | ||
- | ===== 8. Маршрутизация ядра ===== | + | |
Показать таблицу маршрутизации ядра: **netstat -r** | Показать таблицу маршрутизации ядра: **netstat -r** | ||
- | <code> | ||
- | # netstat -r | ||
- | Kernel IP routing table | ||
- | Destination Gateway Genmask Flags MSS Window irtt Iface | ||
- | default 192.168.128.2 0.0.0.0 UG 0 0 0 eth0 | ||
- | 192.168.128.0 * 255.255.255.0 U 0 0 0 eth0 | ||
- | </code> | ||
- | Примечание: Используйте **netstat -rn** для просмотра маршрута в цифровом формате без разрешения имён узлов. | ||
- | ===== 9. Соответствие портов и процессов ===== | ||
- | |||
- | Узнать, какой порт занимает определённая программа: | ||
- | |||
- | <code> | ||
- | # 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 - | ||
- | </code> | ||
- | |||
- | Выяснить, каким процессом используется определённый порт: | ||
- | |||
- | <code> | ||
- | # netstat -an | grep ':80' | ||
- | </code> | ||
- | ===== 10. Сетевые интерфейсы ===== | + | ==== Сетевые интерфейсы ==== |
Показать список сетевых интерфейсов: **netstat -i** | Показать список сетевых интерфейсов: **netstat -i** | ||
Строка 172: | Строка 131: | ||
# netstat -i | # netstat -i | ||
Kernel Interface table | Kernel Interface table | ||
- | Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg | + | Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg |
- | eth0 1500 0 1911037 0 0 0 1382056 0 0 0 BMRU | + | eth0 1500 0 264355 0 0 0 218185 0 0 0 BMRU |
- | lo 16436 0 0 0 0 0 0 0 0 0 LRU | + | lo 65536 0 195328 0 0 0 195328 0 0 0 LRU |
</code> | </code> | ||
Показать расширенную информацию об интерфейсах (аналогично ifconfig): **netstat -ie** | Показать расширенную информацию об интерфейсах (аналогично ifconfig): **netstat -ie** | ||
- | <code> | ||
- | # netstat -ie | ||
- | Kernel Interface table | ||
- | eth0 Link encap:Ethernet HWaddr 00:0c:29:68:4c:a4 | ||
- | inet addr:192.168.128.134 Bcast:192.168.128.255 Mask:255.255.255.0 | ||
- | inet6 addr: fe80::20c:29ff:fe68:4ca4/64 Scope:Link | ||
- | UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 | ||
- | RX packets:24278 errors:0 dropped:0 overruns:0 frame:0 | ||
- | TX packets:11275 errors:0 dropped:0 overruns:0 carrier:0 | ||
- | collisions:0 txqueuelen:1000 | ||
- | RX bytes:33203025 (33.2 MB) TX bytes:665822 (665.8 KB) | ||
- | Interrupt:19 Base address:0x2000 | ||
- | </code> | ||
- | ===== 11. netstat -lnptux ===== | + | ==== Неподдерживаемые системой семейства адресов ==== |
- | + | ||
- | Резюмируем вышеописанное и объединим ключи в одну полезную команду, которая покажет: | + | |
- | + | ||
- | * -lвсе открытые порты (LISTEN) | + | |
- | * -tпо протоколу TCP | + | |
- | * -uпо протоколу UDP | + | |
- | * -xпо протоколу UNIX Socket | + | |
- | * -nбез резолва IP/имён | + | |
- | * -pно с названиями процессов и PID-ами | + | |
- | + | ||
- | Примечание: Не все процессы могут быть идентифицированы последним ключом, чужие процессы показаны не будут. Вы должны иметь права root чтобы увидеть всё. | + | |
+ | Опция **netstat --verbose** покажет подробный вывод, а в самом конце отобразит неподдерживаемые Address Family. | ||
<code> | <code> | ||
- | # netstat -lnptux | + | # netstat --verbose |
- | Active Internet connections (only servers) | + | ... |
- | Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name | + | netstat: no support for `AF IPX' on this system. |
- | tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9614/nginx | + | netstat: no support for `AF AX25' on this system. |
- | tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 601/sshd | + | netstat: no support for `AF X25' on this system. |
- | udp 0 0 8.8.4.4:123 0.0.0.0:* 574/ntpd | + | netstat: no support for `AF NETROM' on this system. |
- | udp 0 0 127.0.0.1:123 0.0.0.0:* 574/ntpd | + | |
- | udp 0 0 0.0.0.0:123 0.0.0.0:* 574/ntpd | + | |
- | Active UNIX domain sockets (only servers) | + | |
- | Proto RefCnt Flags Type State I-Node PID/Program name Path | + | |
- | unix 2 [ ACC ] STREAM LISTENING 4233 826/python /var/run/fail2ban/fail2ban.sock | + | |
- | unix 2 [ ACC ] STREAM LISTENING 8122 2561/mysqld /var/run/mysqld/mysqld.sock | + | |
- | unix 2 [ ACC ] STREAM LISTENING 160413 7301/php-fpm.conf /var/run/php5-fpm.sock | + | |
</code> | </code> | ||
+ | |||
Source: http://putty.org.ru/articles/netstat-linux-examples.html | Source: http://putty.org.ru/articles/netstat-linux-examples.html | ||
+ | {{tag> netstat linux port net network}} |