Что такое порты linux

win-linux

linux порты — это специальные процессы, которые обслуживают сетевые соединения на заданном адресе. После того, как ваш компьютер подключается к интернету ему назначается уникальный ip-адрес, по которому его можно идентифицировать. Если на вашем компьютере открыты специальные порты, то программы использующие их смогут обмениваться информацией между собой. Но если ваш компьютер не защищен, то любая программа сможет открыть необходимый ей порт и с помощью него передавать конфиденциальную информацию на чужой компьютер.

Поэтому очень важно знать, какие именно порты в linux открыты на вашем компьютере. Чтобы это узнать есть несколько инструментов, которые мы рассмотрим ниже.
1. netstat — это консольная утилита позволяющая просмотреть сетевые соединения, таблицы маршрутизации и другие параметры сетевых интерфейсов.

Ключи:
-a выводит список всех портов
-l показывает только прослушиваемые порты
-p показывает имя программы и ее PID
-t показывает tcp порты
-u показывает udp порты
-n показывает ip адреса в числовом виде
-s выводит статистику по всем открытым портам

Пример использования:
netstat -a

Виды состояния:

ESTABLISHED — соединение установлено
SYN_SENT — сокет пытается установить соединение
SYN_RECV — начальная синхронизация соединения
FIN_WAIT1 — сокет закрыт, ожидание отключения соединения
FIN_WAIT2 — ожидание отключения удаленной стороны
TIME_WAIT — ожидание после закрытия повторной передачи отключения удаленной стороны
CLOSED — соединение закрыто, сокет не используется
CLOSE_WAIT — удаленный узел отключился, сокет скоро будет закрыт
LAST_ACK — сначала отключилась удаленная сторона, а затем сокет будет закрыт
LISTEN — сокет ожидает входящих соединений
CLOSING — закрытие сокета, точнее сокет закрыт, а затем отключился удаленный узел
UNKNOWN — состояние сокета неизвестно.

2. lsof — утилита, которая предназначена для вывода информации о том, какие файлы используются теми или иными процессами.

Ключи:
-l Идентификатор пользователя(userID) вместо имени пользователя на выходе.
-h Вывести помощь (help).
-t Получить ID процесса (ов).
-U Получить адрес сокета UNIX.
-i Показывает все открытые соединения.

Пример использования:
lsof -i

Узнаем какие процессы работают с портом 80:
lsof -i | grep 80

3. Nmap — мощный сетевой сканер, разработанный для сканирования и пентестинга удаленных узлов.

Как открыть порт в linux:
iptables -I INPUT -p tcp -m tcp —dport PORT_NUMBER -j ACCEPT
где PORT_NUMBER — это номер порта, который вы собираетесь открыть.

Как закрыть порт в linux:
iptables -A INPUT -p tcp —dport PORT_NUMBER -j DROP
где PORT_NUMBER — это номер порта, который вы собираетесь закрыть.

Можно закрыть порт для определенного интерфейса, например, eth1:
sudo iptables -A INPUT -i eth1 -p tcp —dport PORT_NUMBER -j DROP

Источник

BSD vs Linux. Что такое «Порт»?

Теперь, после базовой системы, вторая категория: те программы, которые являются пакетами дополнений. В мире BSD это обычно называется «системой портов». Это имя выбрано не случайно.Традиционно, чтобы запустить программу в системе, первое, что вы должны были сделать, — это скомпилировать её. И часто перед компиляцией приходилось её допиливать. Ваша система могла требовать другие заголовочные файлы. Иногда отличались объявленные константы. Некоторые части иной раз переписывались с нуля из-за их несоответствия вашей системе.Другими словами, вам надо было «портировать» программу для своей ОС и/или для вашей конкретной системы. Основная цель системы портов — это сделать всю работу по портированию за вас. То, что она также автоматизирует сборку и инсталляцию и обеспечивает такими сервисами, как ‘uninstall’, в её имени, правда, не отражено.Но как это бывает со многими вещами, со временем система портов переросла своё имя и превратилась в того зверя, которого мы видим сегодня. Коллекция портов FreeBSD содержит более 10 000 пакетов. Самая очевидная особенность портов в том, что программы собираются из исходников, а не просто инсталлируются заранее собранные бинарники. Это ещё одно явное отличие, которое сбивает с толку людей, оценивающих BSD с точки зрения Linux. Но, то, что они собираются из исходников — это не первичная цель, сторонний эффект. Бинарные пакеты также доступны — фактически они собираются из дерева портов!Действительно, большинство пользователей Linux устанавливают бинарные пакеты, а пользователи BSD — собирают из исходников. Отчасти, причина этому — инструментарий. Система портов спроектирована вокруг концепции сборки из исходников, с отведенной на второй план возможностью собирать и устанавливать бинарные пакеты. В то время, как пакетная система Linux, например RPM или dpkg, в свою очередь, спроектирована вокруг концепции сборки и установки бинарников, сборка из исходников — в уме. Исторически сложилось, что бинарные пакеты не были доминантными в Unix-системах, как я уже говорил выше. Поэтому, пакеты сами по себе, — это более поздняя вещь. Традиционно, с деинсталляцией надо было разбираться вручную.Gentoo — это набирающий известность дистрибутив Linux. Одно из его преимуществ заключается в системе портежей, которая часто сравнивается с портами BSD. Пожалуй, самое заметное сходство заключается в сборке из исходников. Это исключает множество проблем бинарных пакетов. Сам я её никогда не использовал, но впечатления от информации о ней и знакомых, которые использовали её, позволяют говорить, что система взяла хорошие идеи отовсюду и соединила их вместе. Будет интересно понаблюдать за её развитием в ближайшие годы. Тем не менее, Gentoo всё же Linux, а не BSD, но претендует на то, чтобы быть ближе всех к стилю BSD из ведущих дистрибутивов Linux.Теперь, что касается преимуществ бинарных пакетов: это время (очень много времени) и обычно меньше требуемого места для установки пакетов, чем в случае с исходниками. В сборке из исходников есть свои преимущества, например, избежание чехарды с версиями библиотек (то, что меня расстраивает в бинарных пакетах). В Linux или BSD вы можете устанавливать пакеты, а можете собирать их из исходников. Но пользователи, кажется, настроены по-разному, потому что системы настроены по-разному, потому что пользователи настроены по-разному… вот такое соответствие.Я полагаю, здесь важно понять, что разница между портами и RPM состоит не только в том, что порты компилируются, а пакеты просто инсталлируются. Порты созданы для того, чтобы покрыть весь диапазон битов и составных частей процесса инсталляции: кодирование, трекинг и зависимости, пакеты, инсталляция и деинсталляция, локальные изменения, необходимые для инсталляции на вашей системе, конфигурационные «фишки» и прочее. RPM — это просто бинарный пакет. Если вы хотите автоматически подцепить все зависимости, вам потребуется инструмент более высокого уровня, например urpmi или apt-get. А так как это бинарник, вам всё равно придётся иметь дело с конфликтами версий библиотек, или пропущенными опциями компилятора, или любыми другими ограничениями, с которыми вы столкнётесь, НЕ собирая его на своей системе.Далее, порты, как и остальная часть в системах BSD, централизованы. «Дерево портов» — это огромный структурированный каталог, с кучей папок по категориям, содержащих Makefile с объявленными переменными, checksum, packing list, и другие подобные вещи. Каждая из этих папок представляет собой отдельную программу, которая описывается этими файлами. Куча чёрной магии творится за сценой, когда вы вводите make : она находит и скачивает дистрибутив, где бы он ни был, проделывает все необходимые изменения, рекурсивно находит и устанавливает все зависимости, вызывает GNU configure или imake или любую другую подготовительную программу с нужными опциями, начинает компиляцию с нужными параметрами, и т.д.Но всеми файлами в этом большом каталоге управляет сам проект FreeBSD. Например, когда кто-то написал KDE, она не появилась магическим образом в дереве портов. Кто-то должен был написать необходимый «клей» для создания её порта, затем залить файлы на репозиторий FreeBSD CVS для того, чтобы она появилась в коллекции портов. Опять же, существует определенный уровень уверенности, что она работает со всеми остальными вещами в коллекции портов. Все существующие зависимости будут там, потому что она не может объявлять зависимости вне портов.Вещи ломаются, конечно. Может быть, у какой-либо зависимости исчезнет сайт, так что никто не сможет скачать исходник. Может быть, новая версия какой-то третьей программы сломает вашу программу, что приведет к сбою в работе зависящих от неё вещей. Конечно, всех проблем не решить. Но инцидентов с «я хочу А, которая требует Б, которую я не могу найти» намного меньше, чем с децентрализованными системами, подобными RPM.Для более детальной информации читайте раздел в хэндбуке.

Читайте также:  Dropbox linux что это

Источник

14. Введение в порты Linux

Введение в порты Linux

В среде Linux каждому периферийному физическому устройству или порту подключения сопоставляется один или несколько файлов в специальном каталоге / dev. Это относится к жестким дискам, устройствам CD-ROM, параллельным и последовательным портам.

Основной принцип достаточно прост. Рассмотрим для примера жесткий диск.

В Linux каждому жесткому диску IDE присваивается имя hdx, где х принимает значения «а» (для первого диска на первичной шине IDE), «b» (для второго диска на первичной шине ШЕ), «с» (для первого диска на вторичной шине IDE) и т.д. Таким образом, имя главного вторичного диска — /dev/hdc.

Жесткие SCSI-диски и SCSI-диски CD-ROM аналогичным образом обозначаются sdx.

В каталоге / dev имеется составляющая для каждого дискового раздела. Например, второму разделу первичного подчиненного диска присваивается имя /dev/hdb2, первому разделу вторичного главного- /dev/hdcl.

Параллельные порты в Linux

Рассмотрим параллельные порты. В DOS и Windows параллельным портам присваиваются имена LPT1:, LPT2 :, LPT3 : и т.д. Как правило, в ПК один параллельный порт с именем LPT1:.

В Linux параллельным портам сопоставляются файлы устройств 1рх, где х — номер порта. Это основное отличие от DOS и Windows: нумерация портов начинается не с единицы, а с нуля, так что LPT1: в Linux соответствует /dev/lp0, a LPT2 : — /dev/ lpl. В DOS возможна ситуация, когда единственный параллельный порт компьютера имеет имя, отличное от LPT1:; в Linux этому порту будет присвоено имя /dev/lpO, как первому доступному порту.

Теперь перейдем к последовательным портам, понимание принципов рабств которых важно для правильной установки модема.

Последовательные порты в Linux

В Linux каждому последовательному порту сопоставляется два файла устройств — для исходящих и входящих соединений. Файлы исходящих соединений называются ttySx, где х- номер, начинающийся с нуля. Таким образом, порту СОМ1: из DOS в Linux соответствует /dev/ttyS0, COМ2 : — /dev/ ttySl. В ранних версиях Linux последовательному порту сопоставлялся еще один файл устройства. Это файл сиах, где х — номер, начинающийся с нуля. Таким образом, в этих версиях СОМ1: соответствовали файлы /dev/ ttyS0 и /dev/cua0, COM4: — /dev/ttyS3 и dev/сuаЗ. Адреса портов сведены в таблицу 18.2.

Читайте также:  Kms tools portable активатор windows 10

Табл. 18.2. Последовательные порты в DOS и Linux

Источник

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

How to Check for Listening Ports in Linux (Ports in use)

В этой статье объясняется , как узнать, какие услуги прослушивает порты с помощью 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 .
Читайте также:  Linux посмотреть загрузку оперативной памяти

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

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

  • 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 это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.

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

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

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

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

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

  • COMMAND , PID , USER — имя, ИДП и пользователь , запустив программу , связанную с портом.
  • NAME — номер порта.

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

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

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

Вывод

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

Источник

Оцените статью