- 11 примеров использования netstat
- 1. Список всех портов (как прослушиваемых, так и нет)
- 2. Список сокетов, находящихся в состоянии LISTEN
- 3. Просмотр статистики для каждого протокола
- 4. Отображение PID и имени процесса в выводе netstat
- 5. Разрешение имён в выводе netstat
- 6. Вывод информации netstat непрерывно
- 7. Неподдерживаемые системой семейства адресов
- 8. Маршрутизация ядра
- 9. Соответствие портов и процессов
- 10. Сетевые интерфейсы
- 11. netstat -lnptux
- 14 примеров команды ss для мониторинга сетевых подключений
- 1. Перечисление всех соединений
- 2. Список слушающих и не слушающих портов
- 3. Список прослушивающих сокетов
- 4. Список всех TCP соединений
- 5. Список всех слушающих TCP соединения
- 6. Список всех UDP соединений
- 7. Список всех слушающих UDP соединений
- 8. Отображение у сокетов PID (идентификаторов процессов)
- 9. Показать сводную статистику
- 10. Показать сокеты IPv4 и IPv6
- 11. Фильтр соединений по номеру порта
- 12. Вывод номеров портов в числовом формате, а не имени в ss
- 13. Поиск открытых портов на Linux
- 14. Поиск программ, которые прослушивают порты на Linux
- Статьи о программе ss
- 12 ss Command Examples to Monitor Network Connections
- 1. Listing all Connections
- 2. Listing Listening and Non-listening Ports
- 3. Listing Listening Sockets
- 4. List all TCP Connections
- 5. List all Listening TCP Connections
- 6. List all UDP Connections
- 7. List all Listening UDP Connections
- 8. Display PID (Process IDs) of Sockets
- 9. Display Summary Statistics
- 10. Display IPv4 and IPv6 Socket Connections
- 11. Filter Connections by Port Number
- 12. Check Man Pages for ss Command
11 примеров использования netstat
Команда netstat, входящая в стандартный набор сетевых инструментов UNIX, отображает различную network–related информацию, такую как сетевые подключения, статистику интерфейсов, таблицы маршрутизации, masquerade, multicast, и т.п.
В этой статье рассмотрим десять практических примеров использования команды netstat в Linux.
1. Список всех портов (как прослушиваемых, так и нет)
Перечислить все порты: netstat -a
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN udp6 0 0 fe80::20c:29ff:fe68:ntp [::]:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 20492 /var/run/mysqld/mysqld.sock unix 2 [ ACC ] STREAM LISTENING 23323 /var/run/php5-fpm.sock
Перечислить все TCP порты: netstat -at
# netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 *:http *:* LISTEN
Перечислить все UDP порты: netstat -au
# netstat -au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 localhost:domain *:* udp 0 0 *:bootpc *:* udp6 0 0 fe80::20c:29ff:fe68:ntp [::]:*
2. Список сокетов, находящихся в состоянии LISTEN
Перечислить все прослушиваемые порты: netstat -l
# 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 *:*
Перечислить прослушиваемые TCP порты: netstat -lt
# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN
Перечислить прослушиваемые UDP порты: netstat -lu
# netstat -lu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:bootpc *:* udp6 0 0 [::]:ntp [::]:*
Перечислить прослушиваемые UNIX сокеты: netstat -lx
# netstat -lx Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 3141 /var/run/fail2ban/fail2ban.sock unix 2 [ ACC ] STREAM LISTENING 20492 /var/run/mysqld/mysqld.sock unix 2 [ ACC ] STREAM LISTENING 23323 /var/run/php5-fpm.sock
3. Просмотр статистики для каждого протокола
Показать статистику всех портов: netstat -s
# netstat -s Ip: 11150 total packets received 1 with invalid addresses 0 forwarded 0 incoming packets discarded 11149 incoming packets delivered 11635 requests sent out Icmp: 13791 ICMP messages received 12 input ICMP message failed. Tcp: 15020 active connections openings 97955 passive connection openings 135 failed connection attempts Udp: 2841 packets received 180 packets to unknown port received. .
Показать статистику только TCP портов: netstat -st
Показать статистику только UDP портов: netstat -su
4. Отображение PID и имени процесса в выводе netstat
Опция netstat -p добавит «PID/Program Name» в вывод netstat, и может быть совмещена с любым другим набором опций. Это очень полезно при отладке, для определения того, какая программа работает на определённом порту.
# 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
5. Разрешение имён в выводе netstat
Когда вам не нужно резолвить имя хоста, имя порта, имя пользователя, используйте опцию netstat -n для вывода значений в цифровом формате. Команда покажет IP-адрес вместо хоста, номер порта вместо имени порта, UID вместо имени пользователя.
Это также ускорит вывод, так как netstat не станет выполнять ненужный поиск.
Для вывода цифровых значений только некоторых из этих пунктов, используйте следующие команды:
# netsat -a --numeric-ports # netsat -a --numeric-hosts # netsat -a --numeric-users
6. Вывод информации netstat непрерывно
Опция netstat -c будет выводить информацию непрерывно, в стиле top, обновляя экран каждые несколько секунд.
# netstat -c Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 org-ru-putty.vm.udf:www 182.131.74.202:59933 FIN_WAIT2 tcp 0 0 org-ru-putty.vm.udf:www 182.131.74.202:63761 FIN_WAIT2 tcp 0 0 org-ru-putty.vm.udf:www 92-181-66-102-irk.:4585 ESTABLISHED ^C
7. Неподдерживаемые системой семейства адресов
Опция netstat —verbose покажет подробный вывод, а в самом конце отобразит неподдерживаемые Address Family.
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.
8. Маршрутизация ядра
Показать таблицу маршрутизации ядра: netstat -r
# 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
Примечание: Используйте netstat -rn для просмотра маршрута в цифровом формате без разрешения имён узлов.
9. Соответствие портов и процессов
Узнать, какой порт занимает определённая программа:
# 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 -
Выяснить, каким процессом используется определённый порт:
10. Сетевые интерфейсы
Показать список сетевых интерфейсов: netstat -i
# netstat -i Kernel Interface table 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 lo 16436 0 0 0 0 0 0 0 0 0 LRU
Показать расширенную информацию об интерфейсах (аналогично ifconfig): netstat -ie
# 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
11. netstat -lnptux
- -l все открытые порты (LISTEN)
- -t по протоколу TCP
- -u по протоколу UDP
- -x по протоколу UNIX Socket
- -n без резолва IP/имён
- -p но с названиями процессов и PID-ами
Примечание: Не все процессы могут быть идентифицированы последним ключом, чужие процессы показаны не будут. Вы должны иметь права root чтобы увидеть всё.
# netstat -lnptux Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9614/nginx tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 601/sshd udp 0 0 8.8.4.4:123 0.0.0.0:* 574/ntpd 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
14 примеров команды ss для мониторинга сетевых подключений
Команда ss — это инструмент, который используется для отображения информации о сетевых сокетах в системе Linux. Инструмент отображает более подробную информацию, чем команда netstat, которая используется для отображения активных соединений сокетов.
В этом руководстве мы подробно рассмотрим, как можно использовать команду ss для отображения различной информации о сетевых подключения (сокетах) в Linux.
1. Перечисление всех соединений
Базовая команда ss без каких-либо опций просто выводит список всех соединений независимо от состояния, в котором они находятся.
Если ни одна из опций не используется, ss отображает список открытых не слушающих сокетов (например, TCP/UNIX/UDP), которые установили соединение.
2. Список слушающих и не слушающих портов
Вы можете получить список как слушающих, так и не слушающих портов, используя опцию -a, как показано ниже.
3. Список прослушивающих сокетов
Чтобы отобразить только сокеты прослушивания, используйте флаг -l:
4. Список всех TCP соединений
Чтобы отобразить все соединения TCP, используйте параметр -t:
5. Список всех слушающих TCP соединения
Для просмотра всех слушающих TCP-сокетов используйте комбинацию -lt:
6. Список всех UDP соединений
Для просмотра всех сокетов с UDP соединениями используйте параметр -ua:
7. Список всех слушающих UDP соединений
Для просмотра списка подключений UDP используйте параметр -lu.
8. Отображение у сокетов PID (идентификаторов процессов)
Для отображения идентификаторов процессов, связанных с соединениями сокетов, используйте флаг -p:
9. Показать сводную статистику
Чтобы вывести сводную статистику, используйте опцию -s.
10. Показать сокеты IPv4 и IPv6
Если вам интересны соединения через сокет IPv4, используйте опцию -4.
Чтобы отобразить соединения IPv6, используйте параметр -6.
11. Фильтр соединений по номеру порта
Команда ss также позволяет фильтровать номер порта сокета или номер адреса. Например, для отображения всех соединений сокетов с портом назначения или исходным портом ssh выполните команду.
ss -at '( dport = :22 or sport = :22 )'
ss -at '( dport = :ssh or sport = :ssh )'
12. Вывод номеров портов в числовом формате, а не имени в ss
По умолчанию команда ss показывает имена портов, чтобы выводились порты в виде чисел, используйте опцию -n:
13. Поиск открытых портов на Linux
Следующая команда покажет все прослушиваемые порты для TCP и UDP соединений в виде цифровых значений:
14. Поиск программ, которые прослушивают порты на Linux
Если добавить ключ -p, то программа дополнительно покажет процессы, использующие сокет:
Статьи о программе ss
12 ss Command Examples to Monitor Network Connections
ss command is a tool that is used for displaying network socket related information on a Linux system. The tool displays more detailed information that the netstat command which is used for displaying active socket connections.
In this guide, we delve in and see how the ss command can be used to display varied socket connection information in Linux.
1. Listing all Connections
The basic ss command without any options simply lists all the connections regardless of the state they are in.
2. Listing Listening and Non-listening Ports
You can retrieve a list of both listening and non-listening ports using the -a option as shown below.
3. Listing Listening Sockets
To display listening sockets only, use the -l flag as shown.
4. List all TCP Connections
To display all TCP connection, use the -t option as shown.
5. List all Listening TCP Connections
To have a view of all the listening TCP socket connection use the -lt combination as shown.
6. List all UDP Connections
To view all the UDP socket connections use the -ua option as shown.
7. List all Listening UDP Connections
To list listening UDP connections use the -lu option.
8. Display PID (Process IDs) of Sockets
To display the Process IDs related to socket connections, use the -p flag as shown.
9. Display Summary Statistics
To list the summary statistics, use the -s option.
10. Display IPv4 and IPv6 Socket Connections
If you are curious about the IPv4 socket connections use the -4 option.
To display IPv6 connections, use the -6 option.
11. Filter Connections by Port Number
ss command also lets you filter socket port number or address number. For example, to display all socket connections with a destination or source port of ssh run the command.
$ ss -at '( dport = :22 or sport = :22 )'
Alternatively, you can run the command.
$ ss -at '( dport = :ssh or sport = :ssh )'
12. Check Man Pages for ss Command
To get more insights into the ss command usage, check the man pages using the command.
Those are some of the commonly used options that are used with ss command. The command is considered more superior to netstat command and provide detailed information about network connections.