Команда Netstat отображает различные сетевые данные, такие как сетевые подключения, таблица маршрутизации, статистики интерфейсов, маскированные соединения, многоадресное пространство и т.д.,
В этой статье, давайте рассмотрим 10 практических примеров команды NetStat в Unix.
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:30037 *:* LISTEN udp 0 0 *:bootpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6135 /tmp/.X11-unix/X0 unix 2 [ ACC ] STREAM LISTENING 5140 /var/run/acpid.socket
Список всех портов TCP с помощью netstat -at
# netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN tcp 0 0 localhost:webcache 0.0.0.0:* LISTEN tcp 0 0 andreyex.ru:domain 0.0.0.0:* LISTEN tcp 0 0 localhost:domain 0.0.0.0:* 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 andreyex.ru:49419 google-public-dn:domain ESTABLISHED udp 0 0 andreyex.ru:39293 google-public-dn:domain ESTABLISHED udp 0 0 andreyex.ru:50053 google-public-dn:domain ESTABLISHED
2. Список сокетов, которые находятся в состояние прослушмвания
Список только прослушивающих портов с помощью netstat -l
# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN tcp 0 0 localhost:webcache 0.0.0.0:* LISTEN tcp 0 0 andreyex.ru:domain 0.0.0.0:* LISTEN tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
Список только прослушивающихся TCP портов с помощью netstat -lt
# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN tcp 0 0 localhost:webcache 0.0.0.0:* LISTEN tcp 0 0 andreyex.ru:domain 0.0.0.0:* LISTEN tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
Список только прослушивающихся UDP портов с помощью netstat -lu
# netstat -lu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 andreyex.ru:domain 0.0.0.0:* udp 0 0 localhost:domain 0.0.0.0:* udp 0 0 andreyex.ru:ntp 0.0.0.0:*
Список только прослушивающихся портов UNIX с помощью netstat -lx
# netstat -lx Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 19693 tmp/core.adm.internal unix 2 [ ACC ] SEQPACKET LISTENING 8723 /run/udev/control unix 2 [ ACC ] STREAM LISTENING 12566 /var/run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 16948 /var/run/fail2ban/fail2ban.sock unix 2 [ ACC ] STREAM LISTENING 19702 tmp/core.sock
3. Показать статистику для каждого протокола
Показать статистику для всех портов с использованием netstat -s
# netstat -s Ip: 190566 total packets received 0 forwarded 0 incoming packets discarded 189618 incoming packets delivered 170462 requests sent out 16 dropped because of missing route Icmp: 74 ICMP messages received 0 input ICMP message failed. ICMP input histogram: destination unreachable: 22 echo requests: 52 .....
Показать статистику для TCP (или) UDP портов с использованием netstat -st (или) -su
# netstat -st # netstat -su
4. PID и названий программ в выводе netstat с помощью команды netstat -p
Опция netstat -p может быть объединена с любым другим вариантом netstat. Это добавит «PID/Название программы» на выходе 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 localhost:56642 localhost:46846 TIME_WAIT - tcp 0 0 localhost:56642 localhost:46748 TIME_WAIT -
5. Не разрешать хост, порт и имя пользователя в выводе netstat
Если вы не хотите отображать имя хоста, порт или пользователя, используйте netstat с опцией -n. Это будет отображаться в цифрах, и не разрешать имя хоста, имя порта, имя пользователя.
Это также ускоряет выход, так как netstat не выполняет какие-либо просмотров.
# netstat -an
Если вы не хотите один из этих трех пунктов (порт или хост, или пользователя), используйте следующие команды.
# netsat -a --numeric-ports # netsat -a --numeric-hosts # netsat -a --numeric-users
6. Непрерывная печать информации netstat
netstat будет печатать информацию непрерывно каждые несколько секунд.
# netstat -c Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:37840 localhost:webcache ESTABLISHED tcp 0 0 andreyex.ru:vlsi-lm 213.132.93.178:24080 ESTABLISHED tcp 0 0 localhost:56642 localhost:47258 TIME_WAIT tcp 0 0 localhost:56642 localhost:47150 TIME_WAIT ^C
Выход из печати: Ctrl+C.
7. Найти номера поддерживающей адрес семей в вашей системе
netstat --verbose
В конце концов, вы будете иметь что-то вроде этого.
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 gw.msk.ispsyste 0.0.0.0 UG 0 0 0 eth0 213.159.208.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
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 0.0.0.0:28456 0.0.0.0:* LISTEN 779/sshd tcp 0 0 andreyex.ru:28456 213.132.93.178:13430 ESTABLISHED 2893/sshd: andreyex tcp 0 0 andreyex.ru:28456 213.132.93.178:13106 ESTABLISHED 2393/sshd: andreyex tcp6 0 0 [::]:28456 [::]:* LISTEN 779/sshd
Узнайте, какой процесс использует определенный порт:
# netstat -an | grep ':80'
10. Показать список сетевых интерфейсов
# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1555 2765202 0 0 0 86602 0 0 0 BMRU lo 65536 93149 0 0 0 93149 0 0 0 LRU
Отображение расширенной информации об интерфейсах (по аналогии с ifconfig) с использованием netstat -ie:
# netstat -ie Kernel Interface table eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1550 inet 213.159.209.228 netmask 255.255.254.0 broadcast 213.159.209.255 inet6 fe80::5054:ff:fe80:19a4 prefixlen 64 scopeid 0x20<link> ether 52:54:00:80:19:a4 txqueuelen 1000 (Ethernet) RX packets 2772322 bytes 189451708 (180.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 86767 bytes 137897931 (131.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0