Nmap: команды сканирования портов и сети с примерами вывода

Чтобы просканировать хост, введите nmap -sV -p- адрес: сканер проверит все 65 535 портов и покажет версии сервисов. Разбираем команды Nmap для портов, сети и NSE-скриптов на живом выводе с scanme.nmap.org, типовые ошибки вроде filtered и Host seems down, и где проходит граница статьи 272 УК РФ.
Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер, эксперт в выборе онлайн-курсов
Все 2547 статей автора Подписаться на Телеграм-канал
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 3207 экспертных мнений Подписаться на Телеграм-канал
Обложка: Nmap: команды сканирования портов и сети с примерами вывода

Чтобы просканировать хост в Nmap, откройте терминал и введите nmap -sV -p- адрес: флаг -p- проверит все 65 535 TCP-портов, -sV определит, какие сервисы и каких версий на них висят. Для быстрой проверки хватит nmap адрес без флагов: сканер пройдёт по 1 000 самых частых портов за несколько секунд. Найти живые устройства в локальной сети можно командой nmap -sn 192.168.1.0/24. Ниже разбираем команды с настоящим выводом сканера, а если Nmap для вас часть пути в безопасность, посмотрите, кто такой этичный хакер и чем он живёт помимо сканирования.

CheckroiCheckroiПодборка курсов по Nmap9 курсов • 6 школСравните цены, школы, программу и найдите выгодные предложения по обучениюСравнить

Что делает Nmap и как читать его вывод

Рой сканирует сеть в терминале и смотрит на карту портов

Nmap (Network Mapper) отправляет на адрес пакеты и по ответам понимает, включена ли машина, какие порты у неё открыты, какие программы за ними стоят и какая операционная система установлена. Утилита бесплатная, с открытым кодом, работает на Linux, Windows и macOS. Текущая версия по данным nmap.org на сентябрь 2026 года: 7.991.

Главное, что нужно понимать в отчёте сканера, это состояние порта. Их шесть, но на практике вы будете видеть три.

Состояние Что значит Что делать
open Порт принимает соединения, за ним работает сервис Определить сервис через -sV, проверить NSE-скриптами
closed Хост ответил, но на порту ничего не слушает Ничего: сервиса нет, машина при этом точно жива
filtered Ответа нет вообще, пакеты режет файрвол или фильтр по пути Попробовать другой тип сканирования или принять, что доступ закрыт
unfiltered Порт доступен, но открыт он или закрыт, ACK-скан не понял Досканировать через -sS или -sT
open|filtered Типично для UDP: ответа нет, и это либо «открыт», либо «фильтруется» Добавить -sV, чтобы сканер отправил зонды под конкретный протокол

Ситуация «половина портов filtered» чаще всего означает, что перед хостом стоит межсетевой экран. Как именно он решает, что пропускать, мы разбирали в статье что такое NGFW. Полное описание состояний есть в русском переводе руководства Nmap.

Установка Nmap на Windows, Linux и macOS

На Linux сканер обычно есть в репозиториях, на Windows и macOS ставится установщиком с официального сайта. Скачивать Nmap со сторонних площадок не стоит: сканер работает с сетью на низком уровне, и подменённая сборка получит доступ ко всему трафику.

  • Windows 10 и 11: скачать Nmap можно только с nmap.org, файл nmap-7.991-setup.exe на странице загрузок. Установщик ставит сам Nmap, графическую оболочку Zenmap (GUI) и драйвер захвата пакетов Npcap, без него сканирование в Windows не работает. Отдельного zip-архива без установщика на странице сейчас нет.
  • Ubuntu, Debian, Astra Linux и другие Линуксы на apt: sudo apt install nmap. В репозитории версия отстаёт от сайта: в Ubuntu 24.04 ставится 7.94, и для учебных задач этого хватает.
  • Kali Linux: ничего ставить не нужно, Nmap входит в базовый набор. Если вы разворачиваете Kali только ради него, посмотрите, какие курсы учат работать с Kali целиком, а не одной утилитой.
  • Fedora, RHEL, ALT: sudo dnf install nmap либо RPM-пакет с nmap.org.
  • macOS: brew install nmap через Homebrew или образ nmap-7.991.dmg с сайта.

Проверка после установки: nmap --version. Первая строка ответа покажет номер версии, а если команда не найдена, значит каталог с бинарником не попал в PATH. На Windows это лечится перезапуском терминала, так как установщик правит переменную для новых сессий.

Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединиться

Первое сканирование: пошаговая инструкция

Тренироваться будем на scanme.nmap.org: это сервер самих разработчиков, который они разрешают сканировать всем желающим. Все примеры вывода ниже сняты именно с него 11 сентября 2026 года.

  1. Откройте терминал. На Windows это PowerShell или командная строка, на Linux и macOS любой эмулятор терминала.
  2. Запустите базовое сканирование: nmap scanme.nmap.org. Без флагов Nmap проверит 1 000 самых распространённых TCP-портов.
  3. Дождитесь отчёта. На удалённый хост уходит 5–30 секунд, зависит от того, сколько портов не отвечают вовсе.
  4. Найдите в отчёте строки со статусом open: это и есть точки входа на машину.
  5. Уточните сервисы: повторите команду с флагом -sV, чтобы увидеть названия и версии программ.

Так выглядит результат второго шага, сокращённый до значимых строк:

$ nmap scanme.nmap.org
Starting Nmap 7.94SVN ( https://nmap.org ) at 2026-09-11 19:11 MSK
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.20s latency).
Not shown: 978 closed tcp ports (reset)
PORT      STATE    SERVICE
22/tcp    open     ssh
80/tcp    open     http
9929/tcp  open     nping-echo
31337/tcp filtered Elite

Nmap done: 1 IP address (1 host up) scanned in 28.54 seconds

Строка Not shown: 978 closed tcp ports говорит, что 978 из 1 000 портов закрыты и сканер их просто не печатает. Открытых три: SSH, веб-сервер и служебный эхо-сервис Nping. Пятый шаг добавляет к этому версии:

$ nmap -sV -p 22,80,9929 scanme.nmap.org
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http       Apache httpd 2.4.7 ((Ubuntu))
9929/tcp open  nping-echo Nping echo
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Уже по этим двум строкам видно, что на сервере старая Ubuntu 14.04 с OpenSSH 6.6 и Apache 2.4.7. Именно так пентестер и администратор Linux получают первую картину о машине, к которой у них нет доступа.

Команды сканирования портов: флаги, которые нужны каждый день

У Nmap больше сотни параметров, их называют ключами или флагами, но в повседневной работе используется десяток. Собрали их в таблицу: слева команда, справа когда она нужна. Умение выбрать тип сканирования под задачу входит в базовые требования к специалисту по кибербезопасности на первой же должности.

Команда Что делает Когда использовать
nmap -p 22,80,443 хост Проверяет только перечисленные порты Нужно узнать, открыт ли конкретный порт
nmap -p 1-1024 хост Сканирует диапазон Аудит «системных» портов ниже 1024
nmap -p- хост Все 65 535 TCP-портов Полная инвентаризация, ищем нестандартные сервисы
nmap -F хост Быстрый режим, 100 портов вместо 1 000 Нужен ответ за пару секунд
nmap --top-ports 20 хост N самых частых портов по статистике Nmap Массовая проверка большой сети
sudo nmap -sS хост SYN-скан, «полуоткрытое» соединение Основной режим под root: быстрый и малозаметный
nmap -sT хост Полное TCP-соединение Когда нет прав root, сканер выбирает его сам
sudo nmap -sU хост UDP-порты (DNS, NTP, SNMP) TCP-скан ничего не нашёл, а сервисы точно есть
nmap -sV хост Версии сервисов Всегда, когда важно «что именно там стоит»
sudo nmap -O хост Определение ОС по отпечатку стека TCP/IP Инвентаризация, поиск забытых устройств
sudo nmap -A хост Всё сразу: -sV, -O, скрипты, traceroute Разовый подробный отчёт по одному хосту
nmap -Pn хост Не пинговать перед сканированием Хост «мёртв» для ping, но сервисы на нём есть
nmap -T4 хост Шаблон скорости от 0 до 5 -T4 для своей сети, -T2 когда нельзя нагружать канал
nmap --reason хост Показывает, по какому ответу сканер поставил состояние Разбираемся, почему порт filtered

Чем -sS отличается от -sT

SYN-скан отправляет только первый пакет рукопожатия и по ответу делает вывод, не завершая соединение. Это быстрее и оставляет меньше следов в логах приложений, но требует прав администратора, потому что сканер собирает пакет вручную. Без sudo Nmap без предупреждения переключается на -sT, то есть на обычный connect(), как это делает браузер. На результат для открытых портов это не влияет:

$ sudo nmap -sS -p 22,80 scanme.nmap.org
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

$ nmap -sT -p 22,80 scanme.nmap.org
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

UDP и определение ОС

UDP-скан медленный по природе протокола: если сервис не ответил, Nmap не знает, закрыт порт или пакет отфильтрован. Поэтому вместо чистого open вы часто увидите open|filtered:

$ sudo nmap -sU -p 53,123,161 scanme.nmap.org
PORT    STATE         SERVICE
53/udp  closed        domain
123/udp open          ntp
161/udp open|filtered snmp

Определение ОС через -O тоже требует root и работает точнее, когда у хоста есть хотя бы один открытый и один закрытый порт. На scanme при сканировании двух открытых портов Nmap честно написал OSScan results may be unreliable и дал список догадок с вероятностью 94 % в пользу Linux 4.15–5.8. Если вам нужен уверенный ответ, сканируйте больше портов. Описание всех техник есть в разделе руководства о типах сканирования.

Сканирование сети: как найти все устройства

Изометрическая домашняя сеть: роутер, ноутбук, телефон и принтер с импульсами сканирования

Для инвентаризации локальной сети порты не нужны, достаточно узнать, кто вообще включён. За это отвечает флаг -sn, который выключает сканирование портов и оставляет только обнаружение хостов:

$ nmap -sn -n 192.168.50.0/24
Starting Nmap 7.991 ( https://nmap.org ) at 2026-09-11 19:20 +0300
Nmap scan report for 192.168.50.1
Host is up (0.0028s latency).
Nmap scan report for 192.168.50.35
Host is up (0.0094s latency).
Nmap scan report for 192.168.50.68
Host is up (0.056s latency).
Nmap scan report for 192.168.50.124
Host is up (0.0054s latency).
Nmap scan report for 192.168.50.197
Host is up (0.011s latency).
Nmap scan report for 192.168.50.231
Host is up (0.00060s latency).
Nmap done: 256 IP addresses (6 hosts up) scanned in 18.46 seconds

Это домашняя сеть автора: роутер на .1, четыре устройства и сам ноутбук на .231, 256 адресов за 18 секунд. Флаг -n отключает обратный DNS-запрос для каждого адреса, без него сканирование в домашней сети идёт заметно дольше. Под root в локальной сети Nmap использует ARP-запросы, и их не заблокировать файрволом: устройство обязано ответить на ARP, иначе оно не сможет работать в сети. Как строится адресация в подсетях и почему /24 это 256 адресов, объясняли в разборе профессии сетевого инженера.

Способы задать цель, которые пригодятся при работе с сетью:

  • nmap 192.168.1.1-50: диапазон адресов внутри подсети.
  • nmap 10.0.0.0/16: вся сеть из 65 536 адресов, для -sn это нормальная задача.
  • nmap -iL hosts.txt: список целей из файла, по одной на строку.
  • nmap 192.168.1.0/24 --exclude 192.168.1.1: исключить роутер или другой хост, который трогать нельзя.
  • nmap -6 адрес: сканирование по IPv6.

Если Nmap пишет Host seems down, а вы точно знаете, что машина работает, значит она не отвечает на ping и сканер не стал тратить время на порты. Добавьте -Pn: Nmap пропустит проверку и просканирует порты напрямую. Подробнее о методах обнаружения хостов написано в главе Host Discovery.

NSE-скрипты: как Nmap ищет уязвимости

Nmap Scripting Engine превращает сканер портов в инструмент проверки сервисов. Скрипты на Lua лежат в каталоге /usr/share/nmap/scripts/, в версии 7.94 их 605, каталог с описаниями опубликован на nmap.org/nsedoc. Запускаются они флагом --script, а набор скриптов по умолчанию включает короткий флаг -sC:

$ nmap -sC -p 22,80 scanme.nmap.org
PORT   STATE SERVICE
22/tcp open  ssh
| ssh-hostkey:
|   2048 20:3d:2d:44:62:2a:b0:5a:9d:b5:b3:05:14:c2:a6:b2 (RSA)
|   256 96:02:bb:5e:57:54:1c:4e:45:2f:56:4c:4a:24:b2:57 (ECDSA)
|_  256 33:fa:91:0f:e0:e1:7b:1f:6d:05:a2:b0:f1:54:41:56 (ED25519)
80/tcp open  http
|_http-title: Go ahead and ScanMe!
|_http-favicon: Nmap Project

Скрипт ssh-hostkey вытащил отпечатки ключей сервера, http-title прочитал заголовок страницы. Три способа выбирать скрипты, от точного к широкому:

  1. По имени: nmap -p 80 --script http-title хост. Несколько имён перечисляются через запятую.
  2. По категории: nmap --script vuln хост запускает все скрипты категории vuln, которые проверяют сервисы на известные проблемы. Есть категории safe, discovery, auth, brute, intrusive.
  3. По маске: nmap --script "http-*" хост запускает всё, что начинается с http-. Кавычки обязательны, иначе оболочка развернёт звёздочку по файлам в текущем каталоге.

Проверка на уязвимости категорией vuln по одному порту 80 на scanme заняла около двух минут и нашла листинг каталога /images/ и вероятную уязвимость к Slowloris (CVE-2007-6750) у старого Apache. Прежде чем запускать незнакомый скрипт, прочитайте, что он делает: nmap --script-help имя выведет категорию и описание. Скрипты из категорий intrusive и brute нагружают сервис и могут его уронить, на чужих системах их не запускают вовсе. Если после NSE захочется посмотреть на трафик сканера глазами, следующий инструмент в связке это Wireshark, его часто преподают на тех же курсах.

Ваня БуявецКанал основателя Checkroi Вани БуявцаЗабирайте промпты и обучение по нейросетям в моём Телеграм-каналеБольше 3 700 человек уже применяют Claude Code, ChatGPT и другие нейросети в работе, учёбе, бизнесе и жизниПерейти в канал

Как сохранить результат сканирования в файл

Отчёт в терминале удобно читать один раз, а для сравнения «было и стало» нужен файл. Nmap умеет три формата, и все три можно писать одной командой:

$ nmap -p 22,80 -oN scan.txt -oX scan.xml -oG scan.gnmap scanme.nmap.org
$ ls -la scan.*
-rw-r--r-- 1 root root  383 Sep 11 19:13 scan.gnmap
-rw-r--r-- 1 root root  469 Sep 11 19:13 scan.txt
-rw-r--r-- 1 root root 1736 Sep 11 19:13 scan.xml
  • -oN: обычный текст, ровно то, что вы видели на экране.
  • -oX: XML для импорта в Metasploit, Zenmap и SIEM-системы.
  • -oG: строки формата «хост, порты в одну строку», под grep и awk.
  • -oA имя: все три файла сразу, с расширениями .nmap, .xml и .gnmap.

Для регулярного аудита связка выглядит так: -oX сегодня, -oX через неделю, потом ndiff старый.xml новый.xml покажет, какие порты открылись или закрылись. Утилита ndiff ставится вместе с Nmap. Форматы вывода описаны в главе руководства о выводе, там же есть флаг -v, который заставляет сканер печатать открытые порты по мере обнаружения, а не в конце.

Частые ошибки и что с ними делать

Рой спокойно сверяется с чек-листом, половина пунктов уже отмечена

Большинство вопросов «почему Nmap ничего не нашёл» сводится к пяти ситуациям. Симптом, причина, решение:

  1. Все порты filtered, включая те, что точно открыты. Между вами и целью файрвол, который отбрасывает пакеты без ответа, либо провайдер режет исходящие соединения на «опасные» порты. В нашем прогоне с сервера порты 445, 1433 и 3128 на scanme отдали filtered, потому что фильтр стоит на стороне хостинга. Проверка: --reason покажет no-response, а скан с другой сети даст другой результат.
  2. You requested a scan type which requires root privileges. Флаги -sS, -sU, -O и -A собирают пакеты сами, для этого нужен root. Запускайте через sudo, на Windows терминал от администратора.
  3. Сканирование идёт вечность. Обычно это -p- в сочетании с фильтрующим файрволом: на каждый порт без ответа сканер ждёт таймаут. Полное сканирование scanme с флагом --min-rate 2000 заняло у нас 34 секунды, без него занимает минуты. Ускоряйте через -T4, --min-rate и уменьшение диапазона, а UDP сканируйте только по нужным портам.
  4. Host seems down на живой машине. Хост не отвечает на ICMP, стандартная политика Windows и облачных файрволов. Решение из раздела про сеть: -Pn.
  5. Сервис определился как tcpwrapped или unknown. Порт открыт, но соединение обрывается до обмена данными: там либо защита вроде fail2ban, либо сервис ждёт TLS. Попробуйте -sV --version-intensity 9 и скрипт ssl-cert.

Отдельная ошибка новичка не техническая: сканировать всё подряд «для тренировки». Ниже про то, чем это заканчивается.

Законно ли сканировать порты

Сам по себе Nmap легален, он входит в состав Kali Linux и Astra Linux и лежит в репозиториях всех дистрибутивов. Вопрос в цели. Сканировать можно свою сеть, свои серверы и системы, на проверку которых у вас есть письменное разрешение владельца. Для тренировки есть scanme.nmap.org, учебные площадки вроде Hack The Box и виртуальные машины в собственной лаборатории.

Сканирование чужого сервера без разрешения в России прямого запрета не имеет, но статья 272 УК РФ о неправомерном доступе к компьютерной информации начинает работать в тот момент, когда после сканирования вы подключаетесь к найденному сервису, перебираете пароли скриптом brute или используете уязвимость из отчёта vuln. Провайдер при этом видит сканирование в логах и может заблокировать аккаунт по договору ещё до всякого уголовного дела. Разработчики Nmap собрали отдельную главу о правовых рисках, и её стоит прочитать до первого запуска в чужую сторону.

Правило пентестера: сначала договор и письменное разрешение с перечнем адресов и окном времени, потом nmap. Разбор того, как эта работа устроена изнутри, есть в статье о том, как стать этичным хакером, а если интереснее расследовать последствия чужих сканирований, посмотрите, кто такой форензик.

Где освоить Nmap и пентест системно

Команды из этой статьи закрывают 90 % бытовых задач: проверить свой сервер, найти устройства в сети, сохранить отчёт. Но Nmap это первые полчаса любого пентеста, а дальше идут эксплуатация, отчёт заказчику и защита. Этому учат на курсах по тестированию на проникновение и в общих программах по кибербезопасности: там сканирование разбирают в связке с Metasploit, Burp Suite и Wireshark на учебных стендах, где ошибка ничего не ломает. Ниже подборка программ с нашей оценкой.

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
Профессия Этичный хакер
Перейти на сайт курса
SkillboxSkillbox178 533 ₽5477 ₽/мес.12 месяцевОбзор курса
ДО Профессия Специалист по кибербезопасности 2.0
Перейти на сайт курса
GeekBrainsGeekBrains141 563 ₽3933 ₽/мес.12 месяцевОбзор курса
Кибербезопасность
Перейти на сайт курса
НетологияНетология200 000 ₽16 667 ₽/мес.24 месяцаОбзор курса
Специалист по кибербезопасности
Перейти на сайт курса
Академия ЭдюсонЭдюсон145 900 ₽6079 ₽/мес.5 месяцевОбзор курса
ДО Кибербезопасность и приложения на Python
Перейти на сайт курса
Skillbox KidsSkillbox Kids74 400 ₽250 000 ₽/мес.Обзор курса

Больше программ — в полном каталоге курсов по кибербезопасности

Часто задаваемые вопросы

Как проверить, открыт ли конкретный порт

Укажите порт через флаг -p: nmap -p 3389 адрес. В ответе будет одна строка с состоянием: open, closed или filtered. Несколько портов перечисляются через запятую, диапазон через дефис: -p 80,443,8000-8100.

Что значит filtered в отчёте Nmap

Сканер не получил ответа: пакет отбросил файрвол на хосте или фильтр где-то по пути. Порт при этом может быть и открыт, и закрыт. Флаг --reason покажет, какой именно ответ (или его отсутствие) привёл к такому состоянию, а сканирование из другой сети даст понять, где стоит фильтр.

Как просканировать все 65 535 портов

Флагом -p-: nmap -p- адрес. По умолчанию Nmap проверяет только 1 000 самых частых портов. Полное сканирование удалённого хоста занимает от полминуты до нескольких минут, ускорить его можно параметрами -T4 и --min-rate 1000.

Есть ли Nmap на русском языке

Интерфейс сканера только английский, и переключить его нельзя. Зато официальное руководство переведено на русский и лежит на nmap.org в разделе man/ru: там описаны все флаги, состояния портов и форматы вывода. Графическая оболочка Zenmap тоже на английском.

Можно ли использовать Nmap онлайн без установки

Существуют веб-сервисы, которые запускают Nmap на своём сервере и показывают результат в браузере. Для быстрой проверки собственного сайта они подходят, но сканирование идёт с чужого IP, обычно ограничено сотней портов и, как правило, без NSE-скриптов. Для чего-то большего сканер проще поставить: на Windows это один установщик, на Linux одна команда.

Чем Zenmap отличается от Nmap

Zenmap это графическая оболочка над тем же сканером: она собирает команду из галочек, хранит историю сканирований и рисует карту сети. Ставится вместе с Nmap из установщика для Windows и macOS, на Linux ставится отдельно, разработчики распространяют её как Python-пакет. Для обучения удобно тем, что показывает итоговую команду в отдельном поле.

Читайте Checkroi первым в Google
Добавьте Checkroi в избранные источники — и наши разборы курсов и обзоры школ будут показываться выше в вашей выдаче Google.
Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!