Чтобы просканировать хост в Nmap, откройте терминал и введите nmap -sV -p- адрес: флаг -p- проверит все 65 535 TCP-портов, -sV определит, какие сервисы и каких версий на них висят. Для быстрой проверки хватит nmap адрес без флагов: сканер пройдёт по 1 000 самых частых портов за несколько секунд. Найти живые устройства в локальной сети можно командой nmap -sn 192.168.1.0/24. Ниже разбираем команды с настоящим выводом сканера, а если Nmap для вас часть пути в безопасность, посмотрите, кто такой этичный хакер и чем он живёт помимо сканирования.
Что делает 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 это лечится перезапуском терминала, так как установщик правит переменную для новых сессий.
Первое сканирование: пошаговая инструкция
Тренироваться будем на scanme.nmap.org: это сервер самих разработчиков, который они разрешают сканировать всем желающим. Все примеры вывода ниже сняты именно с него 11 сентября 2026 года.
- Откройте терминал. На Windows это PowerShell или командная строка, на Linux и macOS любой эмулятор терминала.
- Запустите базовое сканирование:
nmap scanme.nmap.org. Без флагов Nmap проверит 1 000 самых распространённых TCP-портов. - Дождитесь отчёта. На удалённый хост уходит 5–30 секунд, зависит от того, сколько портов не отвечают вовсе.
- Найдите в отчёте строки со статусом
open: это и есть точки входа на машину. - Уточните сервисы: повторите команду с флагом
-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 прочитал заголовок страницы. Три способа выбирать скрипты, от точного к широкому:
- По имени:
nmap -p 80 --script http-title хост. Несколько имён перечисляются через запятую. - По категории:
nmap --script vuln хостзапускает все скрипты категории vuln, которые проверяют сервисы на известные проблемы. Есть категорииsafe,discovery,auth,brute,intrusive. - По маске:
nmap --script "http-*" хостзапускает всё, что начинается сhttp-. Кавычки обязательны, иначе оболочка развернёт звёздочку по файлам в текущем каталоге.
Проверка на уязвимости категорией vuln по одному порту 80 на scanme заняла около двух минут и нашла листинг каталога /images/ и вероятную уязвимость к Slowloris (CVE-2007-6750) у старого Apache. Прежде чем запускать незнакомый скрипт, прочитайте, что он делает: nmap --script-help имя выведет категорию и описание. Скрипты из категорий intrusive и brute нагружают сервис и могут его уронить, на чужих системах их не запускают вовсе. Если после NSE захочется посмотреть на трафик сканера глазами, следующий инструмент в связке это Wireshark, его часто преподают на тех же курсах.
Как сохранить результат сканирования в файл
Отчёт в терминале удобно читать один раз, а для сравнения «было и стало» нужен файл. 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 ничего не нашёл» сводится к пяти ситуациям. Симптом, причина, решение:
- Все порты
filtered, включая те, что точно открыты. Между вами и целью файрвол, который отбрасывает пакеты без ответа, либо провайдер режет исходящие соединения на «опасные» порты. В нашем прогоне с сервера порты 445, 1433 и 3128 на scanme отдалиfiltered, потому что фильтр стоит на стороне хостинга. Проверка:--reasonпокажетno-response, а скан с другой сети даст другой результат. You requested a scan type which requires root privileges. Флаги-sS,-sU,-Oи-Aсобирают пакеты сами, для этого нужен root. Запускайте черезsudo, на Windows терминал от администратора.- Сканирование идёт вечность. Обычно это
-p-в сочетании с фильтрующим файрволом: на каждый порт без ответа сканер ждёт таймаут. Полное сканирование scanme с флагом--min-rate 2000заняло у нас 34 секунды, без него занимает минуты. Ускоряйте через-T4,--min-rateи уменьшение диапазона, а UDP сканируйте только по нужным портам. Host seems downна живой машине. Хост не отвечает на ICMP, стандартная политика Windows и облачных файрволов. Решение из раздела про сеть:-Pn.- Сервис определился как
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 |
|---|---|---|---|---|---|
| Профессия Этичный хакер Перейти на сайт курса | 178 533 ₽ | 5477 ₽/мес. | 12 месяцев | Обзор курса | |
| ДО Профессия Специалист по кибербезопасности 2.0 Перейти на сайт курса | 141 563 ₽ | 3933 ₽/мес. | 12 месяцев | Обзор курса | |
| Кибербезопасность Перейти на сайт курса | 200 000 ₽ | 16 667 ₽/мес. | 24 месяца | Обзор курса | |
| Специалист по кибербезопасности Перейти на сайт курса | 145 900 ₽ | 6079 ₽/мес. | 5 месяцев | Обзор курса | |
| ДО Кибербезопасность и приложения на Python Перейти на сайт курса | 74 400 ₽ | 250 000 ₽/мес. | Обзор курса |
Больше программ — в полном каталоге курсов по кибербезопасности




