Темы
Введение
Установка netstat
Основные режимы работы
Заключение
Введение
netstat — классическая консольная утилита для отображения сетевых подключений, маршрутов, статистики интерфейсов и портов.
Ранее входила в состав пакета net-tools, но в современных версиях Fedora заменена на инструмент ss из пакета iproute2.
Тем не менее, netstat всё ещё можно установить и использовать для совместимости или привычного анализа.
Установка netstat
Пакет net-tools можно установить стандартной командой:
- Код: выделить все
sudo dnf install net-tools
После установки проверить наличие утилиты:
- Код: выделить все
which netstat
Пример вывода:
- Код: выделить все
/usr/bin/netstat
Основные режимы работы
Ниже приведены наиболее часто используемые варианты запуска:
| Команда | Назначение |
| netstat -tuln | Показать все TCP и UDP-порты, прослушиваемые на сервере |
| netstat -anp | Показать все активные соединения и PID процессов |
| netstat -i | Информация об интерфейсах (пакеты, ошибки, коллизии) |
| netstat -r | Таблица маршрутизации (аналог команды route) |
Опция -n заставляет netstat печатать IP-адреса вместо имен хостов и сетей. Это особенно полезно, когда вы хотите избежать поисков адреса по сети (например, через DNS или NIS-сервер).
Пример вывода
- Код: выделить все
# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
udp 0 0 127.0.0.1:323 0.0.0.0:*
- Код: выделить все
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 195.0.1.2 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
195.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Вторая колонка вывода netstat показывает маршрутизационную запись gateway. Если шлюз не используется, печатается звездочка. Третья колонка показывает сетевую маску (Genmask) маршрута. Когда дается IP-адрес, чтобы найти подходящий маршрут для него, ядро просматривает все записи таблицы маршрутизации, берет побитовое AND адреса и genmask и лишь затем сравнивает результат с целью маршрута.
G - маршрут использует шлюз (gateway).
U - интерфейс, который нужно использовать, работает.
H - только отдельный хост может быть достигнут через данный маршрут (не сеть!). Например, для записи loopback 127.0.0.1 .
D - устанавливается, если запись таблицы была произведена по приходу перенаправляемого сообщения ICMP (см. раздел Internet Control Message Protocol главы 2), или если запись таблицы была создана демоном динамической маршрутизации, наподобие gated.
M - устанавливается, если запись таблицы была изменена перенаправляемым сообщением ICMP.
! - путь неверен (закрыт), все пакеты будут отброшены.
Отображение статистики интерфейса
- Код: выделить все
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 1500 3248 0 0 0 1053 0 0 0 BMRU
eth1 1500 0 0 0 0 63 0 0 0 BMRU
lo 65536 1040159 0 0 0 1040159 0 0 0 LRU
tun0 1500 0 0 0 0 3 0 0 0 MOPRU
Последняя колонка показывает флаги, установленные для этого интерфейса. Здесь используется односимвольная
версия флагов, которые печатает ifconfig:
B - Установлен широковещательный адрес.
L - Этот интерфейс задает устройство loopback.
M - Интерфайс получает все пакеты (режим promiscuous).
O - ARP выключен для этого интерфейса.
P - Это соединение point-to-point.
R - Интерфейс работает.
U - Интерфейс активен.
Отображение соединений
netstat поддерживает множество опций для отображения активных и пассивных соединений. Опции -t, -u, -w и -x
показывают активные TCP, UDP, RAW или UNIX соединения. Если вы зададите параметр -a, сокеты, которые ждут
соединения (то есть, слушают сеть), также показываются. Это даст вам список всех серверов, которые
в настоящее время работают в вашей системе.
netstat -ta
- Код: выделить все
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1863/mysqld
tcp 0 0 192.168.1.254:139 0.0.0.0:* LISTEN 1759/smbd
tcp 0 0 195.0.1.15:110 0.0.0.0:* LISTEN 1123/dovecot
tcp 0 0 192.168.1.254:110 0.0.0.0:* LISTEN 1123/dovecot
tcp 0 0 195.0.1.15:143 0.0.0.0:* LISTEN 1123/dovecot
tcp 0 0 192.168.1.254:143 0.0.0.0:* LISTEN 1123/dovecot
tcp 0 0 192.168.1.254:80 0.0.0.0:* LISTEN 1575/httpd
tcp 0 0 195.0.1.15:80 0.0.0.0:* LISTEN 1575/httpd
tcp 0 0 195.0.1.15:465 0.0.0.0:* LISTEN 1789/master
tcp 0 0 127.0.0.1:465 0.0.0.0:* LISTEN 1789/master
tcp 0 0 192.168.1.254:465 0.0.0.0:* LISTEN 1789/master
tcp 0 0 192.168.1.254:53 0.0.0.0:* LISTEN 1168/named
tcp 0 0 195.0.1.15:53 0.0.0.0:* LISTEN 1168/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1168/named
tcp 0 0 195.0.1.15:22 0.0.0.0:* LISTEN 1093/sshd
tcp 0 0 0.0.0.0:1560 0.0.0.0:* LISTEN 2139/rphost
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 1918/postmaster
tcp 0 0 195.0.1.15:25 0.0.0.0:* LISTEN 1789/master
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1789/master
tcp 0 0 192.168.1.254:25 0.0.0.0:* LISTEN 1789/master
tcp 0 0 0.0.0.0:953 0.0.0.0:* LISTEN 1168/named
tcp 0 0 192.168.1.254:443 0.0.0.0:* LISTEN 1575/httpd
tcp 0 0 195.0.1.15:443 0.0.0.0:* LISTEN 1575/httpd
tcp 0 0 192.168.1.254:445 0.0.0.0:* LISTEN 1759/smbd
tcp 0 0 195.0.1.15:993 0.0.0.0:* LISTEN 1123/dovecot
tcp 0 0 192.168.1.254:993 0.0.0.0:* LISTEN 1123/dovecot
tcp 0 0 195.0.1.15:995 0.0.0.0:* LISTEN 1123/dovecot
tcp 0 0 192.168.1.254:995 0.0.0.0:* LISTEN 1123/dovecot
tcp 0 0 0.0.0.0:1540 0.0.0.0:* LISTEN 2045/ragent
tcp 0 0 0.0.0.0:1541 0.0.0.0:* LISTEN 2071/rmngr
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 1085/snmpd
tcp 0 0 195.0.1.15:1541 195.0.1.15:38802 ESTABLISHED 2071/rmngr
tcp 0 0 195.0.1.15:1541 195.0.1.15:38682 ESTABLISHED 2071/rmngr
tcp 0 0 195.0.1.15:1541 195.0.1.15:38544 ESTABLISHED 2071/rmngr
tcp 0 0 195.0.1.15:1541 195.0.1.15:38546 ESTABLISHED 2071/rmngr
tcp 0 0 195.0.1.15:38550 195.0.1.15:1541 ESTABLISHED 2045/ragent
tcp 0 0 195.0.1.15:1541 195.0.1.15:38556 ESTABLISHED 2071/rmngr
tcp 1 0 127.0.0.1:46512 127.0.0.1:3306 CLOSE_WAIT 2093/radiusd
tcp 0 0 195.0.1.15:1541 195.0.1.15:38550 ESTABLISHED 2071/rmngr
tcp 0 0 195.0.1.15:51880 195.0.1.15:5432 TIME_WAIT -
tcp 1 0 127.0.0.1:46514 127.0.0.1:3306 CLOSE_WAIT 2093/radiusd
tcp 0 0 195.0.1.15:38744 195.0.1.15:1541 TIME_WAIT -
tcp 1 0 127.0.0.1:46506 127.0.0.1:3306 CLOSE_WAIT 2093/radiusd
tcp 0 0 195.0.1.15:38544 195.0.1.15:1541 ESTABLISHED 2139/rphost
tcp 1 0 127.0.0.1:46510 127.0.0.1:3306 CLOSE_WAIT 2093/radiusd
tcp 0 0 195.0.1.15:38682 195.0.1.15:1541 ESTABLISHED 2139/rphost
tcp 1 0 127.0.0.1:46508 127.0.0.1:3306 CLOSE_WAIT 2093/radiusd
tcp 0 0 195.0.1.15:38802 195.0.1.15:1541 ESTABLISHED 2045/ragent
tcp 0 0 195.0.1.15:1560 195.0.1.15:40304 ESTABLISHED 2139/rphost
tcp 0 52 195.0.1.15:22 195.0.1.3:4494 ESTABLISHED 1177/sshd: root@pts
tcp 0 0 195.0.1.15:1560 195.0.1.15:40302 ESTABLISHED 2139/rphost
tcp 0 0 195.0.1.15:40302 195.0.1.15:1560 ESTABLISHED 2045/ragent
tcp 0 0 195.0.1.15:38546 195.0.1.15:1541 ESTABLISHED 2139/rphost
tcp 0 0 195.0.1.15:38556 195.0.1.15:1541 ESTABLISHED 2139/rphost
tcp 0 0 195.0.1.15:51882 195.0.1.15:5432 TIME_WAIT -
tcp 0 0 195.0.1.15:40304 195.0.1.15:1560 ESTABLISHED 2071/rmngr
Заключение
Хотя netstat считается устаревшим, он по-прежнему остаётся полезным для диагностики сетевых подключений и служб в Fedora.
Для новых систем рекомендуется использовать команду ss, обеспечивающую более высокую скорость и поддержку современных протоколов.
