Прослушивание портов linux centos

Как проверить прослушивающие порты в Linux (используемые порты)

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

В этой статье объясняется, как использовать команды netstat , ss и lsof чтобы узнать, какие службы прослушивают какие порты. Инструкции применимы для всех операционных систем Linux и Unix, таких как macOS.

Что такое порт прослушивания

Сетевой порт идентифицируется по его номеру, связанному IP-адресу и типу протокола связи, например TCP или UDP.

Порт прослушивания — это сетевой порт, на котором приложение или процесс прослушивает, выступая в качестве конечной точки связи.

Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра. В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.

У вас не может быть двух служб, слушающих один и тот же порт на одном IP-адресе.

Например, если вы используете веб-сервер Apache, который прослушивает порты 80 и 443 и вы пытаетесь установить Nginx , последний не запустится, потому что порты HTTP и HTTPS уже используются.

Проверьте порты прослушивания с помощью netstat

netstat — это инструмент командной строки, который может предоставить информацию о сетевых подключениях.

Чтобы вывести список всех прослушиваемых портов TCP или UDP, включая службы, использующие порты, и статус сокета, используйте следующую команду:

Параметры, используемые в этой команде, имеют следующее значение:

  • -t — Показать TCP-порты.
  • -u — Показать порты UDP.
  • -n — Показывать числовые адреса вместо разрешающих узлов.
  • -l — Показать только прослушивающие порты.
  • -p — Показать PID и имя процесса слушателя. Эта информация отображается только в том случае, если вы запускаете команду от имени пользователя root или sudo .

Результат будет выглядеть примерно так:

Важными столбцами в нашем случае являются:

  • Proto — протокол, используемый сокетом.
  • Local Address — IP-адрес и номер порта, который прослушивает процесс.
  • PID/Program name — PID и имя процесса.

Если вы хотите отфильтровать результаты, используйте команду grep . Например, чтобы узнать, какой процесс прослушивает TCP-порт 22, введите:

Выходные данные показывают, что на этой машине порт 22 используется сервером SSH:

Если вывод пуст, это означает, что порт ничего не прослушивает.

Вы также можете фильтровать список по критериям, например, PID, протоколу, состоянию и так далее.

netstat устарел и заменен ss и ip , но все же это одна из наиболее часто используемых команд для проверки сетевых подключений.

Проверьте порты прослушивания с помощью ss

ss — это новый netstat . В нем отсутствуют некоторые функции netstat , но он предоставляет больше состояний TCP и работает немного быстрее. Параметры команды в основном те же, поэтому переход с netstat на ss не представляет труда.

Чтобы получить список всех прослушивающих портов с помощью ss , введите:

Результат почти такой же, как у netstat :

Проверьте порты прослушивания с помощью lsof

lsof — это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.

Читайте также:  Эмулятор айфона mac os

В Linux все является файлом. Вы можете думать о сокете как о файле, который записывает в сеть.

Чтобы получить список всех прослушивающих TCP-портов с типом lsof :

Используются следующие параметры:

  • -n — Не преобразовывать номера портов в имена портов.
  • -p — Не разрешать имена хостов, показывать числовые адреса.
  • -iTCP -sTCP:LISTEN — Показать только сетевые файлы с состоянием TCP LISTEN.

Большинство имен выходных столбцов говорят сами за себя:

  • COMMAND , PID , USER — имя, pid и пользователь, запускающий программу, связанную с портом.
  • NAME — номер порта.

Чтобы узнать, какой процесс прослушивает определенный порт, например порт 3306 вы должны использовать:

Выходные данные показывают, что сервер MySQL использует порт 3306 :

Для получения дополнительной информации посетите страницу руководства lsof и прочтите обо всех других мощных возможностях этого инструмента.

Выводы

Мы показали вам несколько команд, которые вы можете использовать, чтобы проверить, какие порты используются в вашей системе, и как узнать, какой процесс прослушивает определенный порт.

Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.

Источник

centos 7 какие порты открыты

Главное меню » Операционная система Linux » 3 способа, чтобы проверить открытые порты в Linux с соответствующим сервисом-процессом

Как проверить открытые порты в Linux с соответствующим сервисом-процессом?

Существуют различные способы, с помощью которых можно определить открытые порты прослушивания на Linux.

1. Проверка открытых портов в Linux с помощью команды NETSTAT

В основной форме команда NetStat выводит на экран или печатает информацию о сетевых подключениях и таблицу маршрутизации и т.д. Однако та же команда вместе с параметром ниже может быть использована для проверки открытых портов в Linux.

Команда:

Вывод:

Вот команда выше отображает все выходные TCP, а также порты UDP. В случае, если вы хотите отфильтровать его дальше, допустим, вы хотите узнать, процесс или услугу, используемую по порту 80, следуют использовать команду ниже.

В приведенной выше командной порт используется HTTPd службы с PID 1086.

2. Проверка открытых портов в Linux с помощью утилиты lsof

Утилита lsof в основном отображает список открытых файлов. Однако с некоторыми настройками параметров мы можем в состоянии также проверить открытые порты в Linux. По умолчанию она не установлена в системе, пожалуйста, следуйте ниже набором команд для установки в соответствии с дистрибутивом Linux.

Как открыть порт в CentOS

Как открыть порт в CentOS

Всем привет, давайте рассмотрим ситуацию, что вы поставили нужную вам службу например Apache пытаетесь зайти по ip адресу в браузере а он не открывается, дело в том, что в CentOS по умолчанию все порты закрыты на iptable. Давайте этому научимся. НАм нужно открыть порты 443 и 80.

iptables -I INPUT -p tcp —dport 80 -m state —state NEW -j ACCEPT

iptables -I INPUT -p tcp —dport 443 -m state —state NEW -j ACCEPT

сохраняем это все дело

service iptables save

и перезапускаем iptable

/etc/init.d/iptables restart

Популярные Похожие записи:

9 Responses to Как открыть порт в CentOS

Иван, спасибо вам за сайт. Нашла тут хорошую инструкцию по установке Centos, но вот беда — доступа в инет с него не было. Пролистала ваши статьи и… «В CentOS по умолчанию все порты закрыты на iptables…». Приплыли. Открыла порты и всё в ажуре! Спасибо.

Добрый день, сайт и задумывался как помощь многочисленным людям, по своему опыту сталкивался со многими вещами, и всегда не хватало в интернете сайтов с подробными инструкциями, что я и пытаюсь исправить)) правда если бы у меня еще были коллеги авторы было бы еще быстрее:)

Оказалось, кривизна моих рук оставляет ждать лучшего. Эти команды вносят указанные правила в конфиг iptables, но указанные порты остаются закрытым по результатам проверки netstat -tlnd.
Открыты 22, 8000 и всё.

Бьюсь второй день, не помогает правка самого конфига (/etc/sysconfig/iptables) c последующим сохранением (service iptables save). После перезапуска службы /etc/init.d/iptables конфиг прежний. Подскажите, куда смотреть?

Читайте также:  Setup windows and configmgr

Добрый день а какая у вас версия Centos? Если 7 то там по умолчанию используется FirewallD а не iptable, если хотите его вернуть нужно выполнить
systemctl stop firewalld
systemctl disable firewalld

Устанавливаем его
yum install iptables-services
systemctl start iptables
systemctl enable iptables

можете еще добавить графический вариант
yum install system-config-firewall-tui
перезагрузка

а если настраивать FirewallD то там вот такой синтаксис firewall-cmd —permanent —add-port=№порта/протокол

Добрый день, отличный у вас сайт, такого крупного блога, который ведет один человек я не встречал. Спасибо.

Иван, у меня версия Centos 6.7. Может в этом проблема?

Ирина, добрый день попробуйте поставить утилиту yum install system-config-firewall-tui и открыть из графического режима. В 6 версии описанный в статье метод на моей практике работал всегда. А вы все делаете из под рутовой учетки?

Иван, сайт отличный, порты открылись, интернет потёк

Добрый день! нужна помощь, есть vps сервер, centos 7.3 к нему нужен доступ через браузер, к примеру 81.213.233.21:20025 или 81.213.233.21:10223 , открытый 22 и 10223 порт, это прокси сервер, пытаюсь открыть порт командой sudo firewall-cmd —zone=public —permanent —add-port=20025/tcp, sudo firewall-cmd —zone=public —permanent —add-port=20025/udp, пишет что он есть в зоне public, но доступа к нему нет, что уже только не пробовал, может нужно как-то пробросить порты? но как? уже не знаю что делать

Если порт открыт это означает, что какая либо программа (например сервис) использует его для связи с другой программой через интернет или в локальной системе. Чтобы посмотреть какие порты открыты в вашей системе Linux можно использовать команду netstat. В выводе будут показаны все сервисы и прослушиваемые ими порты и ip адреса.

Способ 1. netstat

sudo netstat -ntulp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2392/smbd
tcp 0 0 0.0.0.0:9518 0.0.0.0:* LISTEN 2894/skype
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2896/vlc
tcp 0 0 127.0.0.1:3493 0.0.0.0:* LISTEN 2467/upsd
.

  • -l или —listening — посмотреть только прослушиваемые порты
  • -p или —program — показать имя программы и ее P >Способ 2 lsof

Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию i.

dhcpcd 2136 root 6u IPv4 4986 0t0 UDP *:bootpc
ntpd 2213 root 27u IPv6 5598 0t0 UDP [fe80::7879:19ff:fe51:f833]:ntp
hamachid 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:

sudo lsof -i | grep 80

ntpd 2213 root 23u IPv6 5422 0t0 UDP [fe80::beae:c5ff:febe:8bb7]:ntp
ntpd 2213 root 27u IPv6 5598 0t0 UDP [fe80::7879:19ff:fe51:f833]:ntp
skype 2894 serigy 87u IPv4 7080 0t0 TCP *:9518 (LISTEN)
chrome 3114 sergiy 122u IPv4 31904 0t0 TCP 192.168.1.2:47804->srv118-131-240-87.vk.com:https (ESTABLISHED)

Способ 3. nmap

Nmap — мощный сетевой сканер, разработанный для сканирования и пентестинга удаленных узлов, но ничего не мешает направить его на локальный компьютер:

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

Детальнее об опциях сканирования в Nmap можно узнать в статье как просканировать сеть в Nmap.

Если вы хотите посмотреть какие порты на компьютере доступны снаружи, здесь тоже пригодится Nmap. Если компьютер — общедоступный сервер, то результат скорее всего не будет отличатся от локального сканирования, но на домашнем компьютере все немного по другому. Первый вариант — используется роутер и в сеть будут видны только порты роутера, еще одним порогом защиты может стать NAT сервер провайдера. Технология NAT позволяет нескольким пользователям использовать один внешний IP адрес. И так для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:

wget -O — -q icanhazip.com

Дальше запускаем сканирование:

В результате мы можем получить открытый порт 80 веб сервера, или даже 21 — файлового сервера, которых мы не устанавливали, эти порты открыты роутером, 80 — для веб-интерфейса, а 21 для может использоваться для обновления прошивки. А еще можно вообще не получить результатов, это будет означать что все порты закрыты, или на сервере установлена система защиты от вторжений IDS.

Источник

4 способа узнать, какие порты слушают в Linux

Состояние порта либо открыто, фильтрованный, закрыто, или нефильтрованный. Порт считается открытым, если приложение на целевой машине прослушивает соединения / пакеты на этом порту.В этой статье мы об

Содержание:

Состояние порта либо открыто, фильтрованный, закрыто, или нефильтрованный. Порт считается открытым, если приложение на целевой машине прослушивает соединения / пакеты на этом порту.

В этой статье мы объясним четыре способа проверки открытых портов, а также покажем вам, как определить, какое приложение прослушивает какой порт в Linux.

1. Использование команды Netstat

Netstat — это широко используемый инструмент для запроса информации о сетевой подсистеме Linux. Вы можете использовать его для печати всех открытых портов следующим образом:

$ sudo netstat -ltup

Флаг -l сообщает netstat о необходимости распечатать все прослушивающие сокеты, -t показывает все TCP-соединения, -u отображает все UDP-соединения, а -p включает печать имени приложения / программы, прослушивающего порт.

Чтобы печатать числовые значения, а не имена служб, добавьте флаг -n.

$ sudo netstat -lntup

Вы также можете использовать команду grep, например, чтобы узнать, какое приложение прослушивает определенный порт.

$ sudo netstat -lntup | grep «nginx»

Кроме того, вы можете указать порт и найти привязанное к нему приложение, как показано.

$ sudo netstat -lntup | grep «: 80»

2. Использование команды ss

Команда ss — еще один полезный инструмент для отображения информации о сокетах. Результат похож на результат netstat. Следующая команда покажет все порты прослушивания для TCP а также UDP соединения в числовом значении.

3. Использование команды Nmap

Nmap — это мощный и популярный инструмент для исследования сети и сканер портов. Чтобы установить nmap в вашей системе, используйте менеджер пакетов по умолчанию, как показано.

$ sudo apt install nmap [в Debian / Ubuntu] $ sudo yum install nmap [в CentOS / RHEL] $ sudo dnf install nmap [в Fedora 22+]

Чтобы просканировать все открытые / прослушивающие порты в вашей системе Linux, выполните следующую команду (выполнение которой займет много времени).

$ sudo nmap -n -PN -sT -sU -p- локальный хост

4. Использование команды lsof

Последний инструмент, который мы рассмотрим для запроса открытых портов, — это команда lsof, которая используется для вывода списка открытых файлов в Linux. Поскольку в Unix / Linux все является файлом, открытый файл может быть потоком или сетевым файлом.

Чтобы перечислить все файлы Интернета и сети, используйте параметр -i. Обратите внимание, что эта команда показывает сочетание имен служб и числовых портов.

Чтобы узнать, какое приложение прослушивает определенный порт, запустите lsof в таком виде.

Вот и все! В этой статье мы объяснили четыре способа проверки открытых портов в Linux. Мы также показали, как проверить, какие процессы привязаны к определенным портам. Вы можете поделиться своими мыслями или задать любые вопросы через форму обратной связи ниже.

Источник

Читайте также:  Темы amd для windows 10
Оцените статью