- Как посмотреть открытые порты в Linux
- Как посмотреть порты в Linux через netstat
- Как посмотреть порты в Linux через lsof
- Как посмотреть порты в Linux через nmap
- Как посмотреть открытые порты в Linux
- Способ 1. netstat
- Способ 2 lsof
- Способ 3. nmap
- Найти процесс по номеру порта в Linux
- Пример использования netstat
- Пример использования fuser
- Пример использования lsof
- Как посмотреть на Linux открытые порты — описание способов
- Как посмотреть открытые порты Linux через «nmap»
- Статистика открытых сетевых соединений в Linux через команду «netstat»: описание ее атрибутов
- Узнать, кто слушает порт в Linux через «lsof»: описание атрибутов команды
- Статистика открытых портов в Linux через ss и описание ее атрибутов
- Просмотр открытых портов в Linux через «tcpdump» и описание атрибутов утилиты
- Как в Linux посмотреть занятые порты
Как посмотреть открытые порты в Linux
Мы продолжаем рассказывать интересные для многих начинающих пользователей темы. И в этой статье мы расскажем вам о том, как посмотреть открытые порты в Linux и что это такое.
Если порт в системе открыт, это означает то что какая-либо программа использует его для связи, синхронизации с другой программой через локальную или интернет сеть.
Если вам нужно узнать какие есть открытые порты в вашей системе Linux то можете использовать такую команду как netstat. В результате вам предоставится информация с сервисами которые прослушивают ваши порты и IP адреса.
Как посмотреть порты в Linux через netstat
Здесь стоит отметить то что:
- -l или —listening — Показать тоолько прослушиваемые порты
- -p или —program — Показать название программы и ее PID
- -t или —tcp Показать tcp порты
- -u или —udp Показать udp порты
- -n или —numeric Показать IP адреса в числовом виде
Как посмотреть порты в Linux через lsof
Эта программа позволяет пользователю узнать какие есть открытые порты в его системе и соединения, это касается также и сетевых, но для этого нужно использовать опцию i.
dhcpcd 2136 root 6u IPv4 4986 0t0 UDP *:bootpcntpd 2213 root 27u IPv6 5598 0t0 UDP [fe80::7879:19ff:fe51:f833]:ntphamachid 2323 root 8u IPv4 5587 0t0 TCP 192.168.1.2:35445->212.118.234.65:https (ESTABLISHED)smbd 2392 root 27u IPv6 5624 0t0 TCP *:microsoft-ds (LISTEN)sshd 2421 root 3u IPv4 6196 0t0 TCP *:ssh (LISTEN)upsd 2467 nut 4u IPv4 6235 0t0 TCP comm-app.local:nut (LISTEN)…
Вот еще пример того, какие процессы могут использоваться с портом 80:
Как посмотреть порты в Linux через nmap
Вот еще очень простой и удобный способ того, как посмотреть открытые порты в Linux. По сути Nmap является довольно мощным и многофункциональным, сетевым сканером для системы. Его основные функции это сканирование и пентестинг удаленных узлов, но его также можно легко использовать и для локальной системы с Linux.
Starting Nmap 6.47 ( http://nmap.org ) at 2015-08-02 17:27 EEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00036s latency).
Other addresses for localhost (not scanned): 127.0.0.1 127.0.0.1 127.0.0.1 127.0.0.1 127.0.0.1 127.0.0.1
rDNS record for 127.0.0.1: comm-app.local
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3493/tcp open nut
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
Эта программа может пригодиться также в том случае, если вам нужно узнать какие порты на вашей системе доступны снаружи и если ваше устройство это общедоступный сервер то результат будет таким же как и при локальном сканировании, в отличии от домашней сборки. Здесь в немного по-другому. Есть несколько вариантов для этого софта:
С системой в данный момент Используется только роутер и в сеть будут видны только порты роутера. Также дополнительным защитным порогом может стать NAT сервер провайдера.
Технологие под названием NAT (от англ. Network Address Translation — «преобразование сетевых адресов») позволяет нескольким пользователям использовать один внешний IP адрес. Для того чтобы узнать какие порты у вас открыты сначала нужно узнать ваш IP адрес, для лучшей надежности лучше всего использовать онлайн сервис:
Источник
Как посмотреть открытые порты в Linux
Если порт открыт это означает, что какая либо программа (например сервис) использует его для связи с другой программой через интернет или в локальной системе. Чтобы посмотреть какие порты открыты в вашей системе Linux можно использовать команду netstat. В выводе будут показаны все сервисы и прослушиваемые ими порты и ip адреса.
Способ 1. netstat
- -l или —listening — посмотреть только прослушиваемые порты
- -p или —program — показать имя программы и ее PID
- -t или —tcpпоказать tcp порты
- -u или —udp показать udp порты
- -n или —numeric показывать ip адреса в числовом виде
Способ 2 lsof
Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию i.
Еще один пример, смотрим какие процессы работают с портом 80:
Способ 3. nmap
Nmap — мощный сетевой сканер, разработанный для сканирования и пентестинга удаленных узлов, но ничего не мешает направить его на локальный компьютер:
Детальнее об опциях сканирования в Nmap можно узнать в статье как просканировать сеть в Nmap.
Если вы хотите посмотреть какие порты на компьютере доступны снаружи, здесь тоже пригодится Nmap. Если компьютер — общедоступный сервер, то результат скорее всего не будет отличатся от локального сканирования, но на домашнем компьютере все немного по другому. Первый вариант — используется роутер и в сеть будут видны только порты роутера, еще одним порогом защиты может стать NAT сервер провайдера. Технология NAT позволяет нескольким пользователям использовать один внешний IP адрес. И так для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:
Дальше запускаем сканирование:
В результате мы можем получить открытый порт 80 веб сервера, или даже 21 — файлового сервера, которых мы не устанавливали, эти порты открыты роутером, 80 — для веб-интерфейса, а 21 для может использоваться для обновления прошивки. А еще можно вообще не получить результатов, это будет означать что все порты закрыты, или на сервере установлена система защиты от вторжений IDS.
Источник
Найти процесс по номеру порта в Linux
При работе в Unix-системах мне частенько приходится определять, какой процесс занимает порт, например, чтобы остановить его и запустить на нём другой процесс. Поэтому я решил написать эту небольшую статью, чтоб каждый, прочитавший её, мог узнать, каким процессом занят порт в Ubuntu, CentOS или другой ОС из семейства Linux.
Как же вычислить, какие запущенные процессы соотносятся с занятыми портами? Как определить, что за процесс открыл udp-порт 2222, tcp-порт 7777 и т.п.? Получить подобную информацию мы можем нижеперечисленными методами:
netstat утилита командной строки, показывающая сетевые подключения, таблицы маршрутизации и некоторую статистику сетевых интерфейсов; fuser утилита командной строки для идентификации процессов с помощью файлов или сокетов; lsof утилита командной строки, отображающая информацию об используемых процессами файлах и самих процессах в UNIX-системе; /proc/$pid/ в ОС Linux /proc для каждого запущенного процесса содержит директорию (включая процессы ядра) в /proc/$PID с информацией об этом процессе, в том числе и название процесса, открывшего порт.
Использование вышеперечисленных способов может потребовать права супер-пользователя.
Теперь давайте рассмотрим каждый из этих способов по отдельности.
Пример использования netstat
Введём в командную строку команду:
Получим примерно такой результат:
Из вывода видно, что 4942-й порт был открыт Java-приложением с PID’ом 3413. Проверить это можно через /proc :
Примерный результат выполнения команды:
При необходимости получения информации по конкретному порту (например, 80-му, используемого обычно для HTTP) вместо отображения всей таблицы можно grep -ануть результат:
Результат будет примерно такой:
Пример использования fuser
Для того, чтобы вычислить процесс, занимающий порт 5050, введём команду:
И получим результат:
Аналогичным образом, как мы делали выше, можно посмотреть процесс в его директории /proc/$PID , в которой можно найти много интересной дополнительной информации о процессе, такую как рабочая директория процесса, владелец процесса и т.д., но это выходит за рамки этой статьи.
Пример использования lsof
При использовании lsof введите команду по одному из шаблонов:
Пример реального использования:
После этого мы можем получить более полную информацию о процессах с PID’ами 2123, 2124 и т.д..
На выходе получим примерно следующее:
Получить информацию о процессе также можно следующим проверенным способом:
В этом выводе можно выделить следующие параметры:
- 2727 — PID;
- www-date — имя пользователя владельца;
- www-date — название группы;
- /usr/sbin/apache2 -k start — название команды с аргументами;
- 14:27:33 — время работы процесса в формате [[дд-]чч:]мм:сс;
- Mon Nov 30 21:21:28 2015 — время старта процесса.
Надеюсь, у меня получилось доступно объяснить, как определить процесс по порту в Linux-системах, и теперь у вас ни один порт не останется неопознанным!
Источник
Как посмотреть на Linux открытые порты — описание способов
Любой разбирающийся в персональных компьютерах человек рано или поздно сталкивается с задачей просмотра открытых портов. Сетевые порты представляют собой некие механизмы, которые используются операционной системой для определения того, какому именно приложению или игре передать часть сетевых пакетов. Знать эту информацию важно, так как использование одного и того же порта различными службами приведет к ошибке, а сетевая программа не сможет корректно работать, если ее порты будут закрыты в настройках ОС. Необходимо разобраться с тем, как посмотреть в Linux открытые порты, с помощью каких команд это можно сделать, а также для чего они нужны.
Как посмотреть открытые порты Linux через «nmap»
Если сетевой порт открыт, то это значит, что та или иная программа (служба или сервис) использует его для взаимодействия с другими приложениями или серверами разработчика посредством глобальной сети Интернет или локальной вычислительной сети. Для понимания сути портов обычно новичкам приводят в пример обычный дом, в который почтальон приносит посылку. Сотрудник почты доносит конверт или ящик до дома — это компьютер, а точнее его айпи-адрес. Далее жильцы дома должны посмотреть, кому именно доставлена посылка, и отнести ее в соответствующую комнату. Эта комната и будет портом.
В Linux порты можно проверить альтернативной командой «zenmap»
Обратите внимание! Способов произвести просмотр открытых портов Linux множество, так как в этой операционной системе существуют не одна команда и утилита, позволяющие это делать. Ниже описана команда «nmap», являющаяся наиболее популярной.
В операционной системе Linux список открытых портов можно узнать, набрав в терминале команду «nmap». Она вызывает утилиту с аналогичным названием, которая является многофункциональным сетевым сканером для поиска и тестирования удаленных узлов в Глобальной сети, но ее также можно использовать и локально.
«Nmap» дает возможность не только на ОС Linux проверить порт, но и просмотреть службы, которые их используют, а также выявить возможные уязвимости. Для начала работы утилиту следует инсталлировать с помощью простой команды «$ sudo apt install nmap». После загрузки и установки из стандартного репозитория ПО будет готово к работе. Для запуска сканирования набирают команду «$nmap localhost».
Простое сканирование возможно и без опций, но если требуется задать ряд параметров, то рекомендуется сперва изучить их значение. Кстати, для поиска открытых внешних портов используют команду «$ wget -O — -q eth0.me», а затем «$nmap 185.29.237.91».
«Nmap» может открывать данные обо всех портах, имеющихся в операционной системе
Статистика открытых сетевых соединений в Linux через команду «netstat»: описание ее атрибутов
Это базовая утилита линукс, которая не требует скачивания и установки, так как имеется практически во всех дистрибутивах операционной системы. Она позволяет быстро проверить доступность порта на Linux и показать открытие сетевые соединения.
Пользоваться командой можно и безо всяких атрибутов, но для максимально подробного отображения нужной информации без них не обойдись. Параметры у утилиты следующие:
- «-l / —listening» — проверка прослушиваемых соединений;
- «-p / —program» — отображение названия программы и ее PID’а;
- «-t / —tcp» — отображение TCP-соединений;
- «-u / —udp» — отображение UDP-соединений;
- «-n / —numeric» — показ IP-адресов в виде чисел.
Важно! Если соединение открытое и ожидает подключения, то оно обладает типом «listen» и рядом с ним будет указан айпи-адрес, используемый для выполнения этого подключения. Значение IP может быть любым (*/0.0.0.0) или конкретным (в этом случае оно будет указано).
Пример использования «netstat»
Узнать, кто слушает порт в Linux через «lsof»: описание атрибутов команды
Еще одна стандартная программа операционной системы, позволяющая определить прослушиваемые порты на Linux. Помимо этого, она выводит в консоль все открытие в ОС соединения, включая сетевые (для этого ее выполняют с атрибутом «—i»). Для просмотра именно соединений, а не сетевых служб «lsof» запускается с параметром «—P». Команда выглядит следующим образом: «$ sudo lsof -i —P». Если нужно узнать, какие процессы и службы пользуются, например, семидесятым (70) соединением, следует набрать строку «$sudo lsof -i -P | grep :80».
Обратите внимание! Если нужно найти именно TCP соединения, то прописывают «lsof -i tcp:$portNumber», а если UDP, то «lsof -i udp:$portNumber». В данном случае параметр «$portNumber» означает номер соединения.
Еще один способ взаимодействовать с портами — «lsof»
Статистика открытых портов в Linux через ss и описание ее атрибутов
Команда «ss» — это более функциональная и современная замена утилите «netstat». Последняя получает данные из специальной папки «/proc», а «ss» запрашивает информацию у подсистемы ядра линукс. Вследствие этого «ss» функционирует более быстро и точно. Она обладает аналогичными опциями и атрибутами. Запуск производится по команде «$sudo ss —tulpn». Она отображает тип соединения, его состояние, локальный адрес и т. д.
Если нужно проверить, какие именно процессы работают, к примеру, на 80-м соединении, необходимо прописать или скопировать фразу «$ sudo ss -tulpn | grep :80» и нажать на клавишу «Ввод».
Системная утилита «ss» является более современной альтернативой «netstat»
Просмотр открытых портов в Linux через «tcpdump» и описание атрибутов утилиты
Команда «tcpdump» — это один из самых важных инструментов для специалистов, работающих с информационной безопасностью компьютерных сетей, основанных на линуксе. Если пользователь хочет овладеть всеми тонкостями настройки протоколов TCP и IP, то он должен быть хорошо знаком с функциями «tcpdump».
Далее приведено несколько важных атрибутов этой утилиты, позволяющие проверять свободные портовые соединения и узнавать айпи-адреса служб, использующих их:
- «-nn» — отображение айпи-адресов и номеров портов вместо имени хоста и названия используемого протокола передачи данных;
- «-i any» — прослушивание всем интерфейсов для поиска скрытого тарифа, если таковой имеется;
- «-q» — показ минимальных данных о пакете трафика.
Также есть три выражения: «type», «dir» и «prito». Опции тоже три: хосты, сети и порты. Комбинации для выполнения директорий: «src» и «dst». Протоколы по запросу: TCP, UDP, ICMP, AH и т. д. К примеру, для показа интернет-трафика, который связан с тем или иным портом, необходимо выполнить команду «# tcpdump port 3389», а затем «tcpdump src port 1025». Показ трафика одного протокола выполняется так: «# tcpdump icmp».
Пример использования «tcpdump»
Как в Linux посмотреть занятые порты
Занятые порты — это те сетевые соединения, которые уже используются какими-либо программами или службами. Вообще портовые связи могут находиться в различных состояниях: открытом, закрытом, отфильтрованном и неотфильтрованном. Если сказано, что соединение открыто, то имеется в виду, что использующая его программа или служба на проверяемом персональном компьютере выполняет прослушивание входящих пакетов. Узнать, занят ли port на Linux, можно с помощью следующих способов.
В первом из них используется команда «netstat», которая уже была описана в этом материале. Она идеально подходит для сбора любой сетевой информации об операционной системе. Вывод всех портовых соединений осуществляется по команде «$ sudo netstat —ltup». Атрибут «l» указывает на то, что нужно вывести сокеты, «t» работает с TCP-соединениями, а «u» — с UDP. Последний параметр «p» выводит имена процессов, которые прослушивают порты в данный момент времени.
Второй способ заключается в использовании более функциональной утилиты «ss», обладающей аналогичными параметрами и методом вывода информации. Следующая строка покажет все соединения на протоколах TCP и UDP в формате чисел: «$ sudo ss -lntu».
Еще один быстрый способ получить данные обо всех открытых и закрытых портах заключается в использовании утилиты «nmap» — мощного и известного средства для сканирования сетей линукс, а также проверки сетевых соединений. По умолчанию этого софта нет в списке программ, поэтому его нужно будет установить. Для этого прописывают в командной строке запись и выполняют ее: «$ sudo apt install nmap» (подходит для стандартной линукс и Ubuntu).
Обратите внимание! Сканирование всех соединений с помощью этой утилиты выполняется путем ввода строки «$ sudo nmap -n -PN -sT -sU -p- localhost». Она позволяет определить все открытые, закрытые и прослушивающие порты.
Последняя программа — «lsof». Для вывода всех файлов глобальной или локальной сети вводят команду с использованием атрибута «—i». Он способен продемонстрировать не только имена служб, но и их числовые порты: «$ sudo lsof —i».
Использование команды «$ sudo lsof —i» в терминале
Таким образом, что в операционной системе линукс есть множество способов проверить, открыт тот или иной порт, а также проанализировать дополнительную информацию по нему.
Источник