Сколько сетевых портов у компьютера

Порт (англ. port ) — натуральное число, записываемое в заголовках протоколов транспортного уровня модели OSI (TCP, UDP, SCTP, DCCP). Используется для определения процесса-получателя пакета в пределах одного хоста.

Содержание

Описание [ править | править код ]

Обычно на хосте под управлением ОС в пространстве пользователя исполняется несколько процессов, в каждом из которых выполняется какая-либо программа. В случае если несколько программ используют компьютерную сеть, то ОС периодически получает по сети IP-пакет, предназначенный для одной из программ.

Процесс программы, желающей обмениваться данными по сети, может (например, при создании socket):

  • запросить у ОС в своё распоряжение порт с определённым номером. ОС может либо предоставить порт с этим номером, либо отказать программе (например, в случае, когда порт с этим номером уже отдан в распоряжение другому процессу);
  • запросить у ОС в своё распоряжение свободный порт с любым номером. ОС в этом случае сама выберет свободный порт, ещё не занятый никаким процессом, и предоставит его в распоряжение запрашивающей программе.

Обмен данными по сети ведётся между двумя процессами по определённому протоколу. Для установки соединения необходимы:

  • номер протокола;
  • два IP-адреса (адрес хоста-отправителя и адрес хоста-получателя для построения маршрута между ними);
  • два номера порта (порт процесса-отправителя и порт получателя).

Порт процесса-отправителя (источника) может быть постоянным (статическим) или назначаться динамически для каждого нового сеанса связи.

При соединении по протоколу TCP порт процесса-отправителя используется:

  • операционной системой хоста-получателя для отправки пакета-подтверждения о получении данных;
  • процессом-получателем для отправки пакета-ответа.

При соединении по протоколу UDP допустимо вместо порта процесса-отправителя указывать число ноль, означающее «порт не указан».

При соединении по протоколу SCTP в рамках ассоциации может использоваться:

  • несколько портов процесса-отправителя (источника)
  • несколько портов процесса-получателя.

Так как IP-адрес хоста-отправителя и номер порта процесса-отправителя являются аналогом обратного адреса, записываемого на почтовых конвертах (позволяют получателю отправить ответ отправителю), номер порта процесса-отправителя иногда называют «обратным» портом.

Если на хосте какой‑либо процесс постоянно использует один номер порта (например, процесс программы, реализующей web-сервер, может использовать порт 80 для приёма и передачи данных), говорят, что порт является «открытым».

Термины «открытый порт» и «закрытый порт» (заблокированный) также используются, когда речь идёт о фильтрации сетевого трафика.

Если процесс получил номер порта у ОС («открыл порт») и «держит его открытым» для приёма и передачи данных, говорят, что процесс «прослушивает» (разг. слушает, от англ. listen ) порт.

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

Если хост получит пакет, порт процесса-отправителя называется «удалённым» (англ. remote ) портом или "открытым на другом хосте", а порт процесса получателя — «локальным» портом, то есть открытым на текущем хосте. Если хост отправил пакет, порт процесса-отправителя называется «локальным» портом (открытым на текущем хосте), а порт процесса-получателя — «удалённым» портом (открытым на другом хосте).

Номера портов для протоколов прикладного уровня модели TCP/IP (HTTP, SSH и др.) обычно назначаются организацией IANA (англ. internet assigned numbers authority ). Однако на практике в целях безопасности номера портов могут выбираться произвольно.

Читайте также  Представьте десятичные числа в беззнаковом 8 разрядном

Термин «порт» чаще всего применяется по отношению к протоколам TCP и UDP ввиду популярности этих протоколов. В протоколах SCTP и DCCP используются номера, соответствующие понятию «номер порта» для протоколов TCP и UDP.

В заголовках протоколов TCP и UDP для хранения номеров портов выделены поля размером 16 бит . Для протокола TCP порт с номером 0 зарезервирован и не может использоваться. Для протокола UDP указание порта процесса-отправителя («обратного» порта) не является обязательным, и порт с номером 0 означает отсутствие порта. Таким образом, номер порта — число в диапазоне от 1 до 2 16 -1=65 535 .

Примеры использования портов [ править | править код ]

На сервере запущены процессы программ, реализующих следующие протоколы:

Процесс программы, реализующей протокол SMTP, обычно «слушает» порт TCP с номером 25 (кратко: «tcp/25»).

Процесс программы, реализующей протокол POP, обычно «слушает» порт TCP с номером 110 (кратко: «tcp/110»).

Процессы могут быть запущены на одном хосте (компьютере). Определение конкретного процесса осуществляется по номеру порта.

Процесс программы-клиента, желающей подключиться к серверу для отправки (SMTP) или получения (POP или IMAP) почты, как правило, получает номер порта динамически.

В некоторых случаях использование заранее известных номеров портов является обязательным.

Например, для получения IP-адреса по протоколу DHCP процесс программы-клиента по протоколу UDP отправляет датаграмму с порта 68 (порт процесса-отправителя) на порт 67 (порт процесса-получателя).

Использование в URL-адресах [ править | править код ]

Номера портов могут указываться в адресах веб-сайтов (URL) или в идентификаторах других ресурсов, доступных в компьютерных сетях (URI). По умолчанию в протоколе HTTP используется порт 80, а в протоколе HTTPS — порт 443. URL вида http://www.example.com:8080/path/ указывает, что веб-ресурс обслуживается веб-сервером на порту 8080.

Состояния порта [ править | править код ]

Узнать номера активных (выданных процессам операционной системой) портов для протоколов транспортного уровня во многих операционных системах (Windows, Unix-подобных) можно с помощью утилит netstat и nmap (в ОС UNIX и ОС Linux).

Состояния порта, показываемые утилитами netstat и nmap , приведены в таблице.

Состояние порта [1] Описание
Открыт или прослушивается (англ. open или listen ) Программа-сервер готова принимать подключения программ-клиентов («слушает» порт)
Фильтруется (англ. filtered ) Не удаётся определить, открыт порт или закрыт, возможно, из-за работы файрвола или по иной причине
Закрыт (англ. closed ) ОС ещё не выдала номер порта никакому процессу, но в любой момент может это сделать

Номера портов [ править | править код ]

Порты TCP не пересекаются с портами UDP: порт 1234 протокола TCP не будет мешать обмену данными по протоколу UDP через порт 1234.

В большинстве UNIX-подобных ОС прослушивание портов с номерами 0—1023 требует особых привилегий (root). Другие номера портов выдаются операционной системой первым запросившим их процессам.

Некоторые популярные программы-анализаторы трафика (например, Wireshark) и сетевые брандмауэры используют общепринятые обозначения номеров портов для определения протокола передачи данных, что не всегда корректно. В некоторых случаях сетевые службы используют нестандартные номера портов или используют номера портов не по заявленному назначению. Например, известны случаи запуска интернет-провайдерами SMTP-серверов на портах 2525 (вместо 25) в целях обеспечения безопасности своих пользователей. Специализированные сайты, например, административные веб-интерфейсы, нередко работают на портах, отличных от стандартных 80 и 443.

По умолчанию порты в эфемерном диапазоне портов не могут быть зарегистрированы. Эти порты используются временными (короткоживущими) соединениями клиент-сервер в определенных частных случаях. Например, ядра и дистрибутивы Linux многих версий используют следующую опцию для задания диапазона используемых портов от 32768 до 61000. В следующем системном файле: /proc/sys/net/ipv4/ip_local_port_range указывается диапазон портов для использования.

Читайте также  При печати неверный дескриптор

Про сетевые порты компьютера.

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

Сетевые порты компьютера: что это такое?

Как только компьютеры собираются обменяться информацией по сети, они сразу открывают информационные порталы для обмена. В архитектуре сети общение между двумя ЛЮБЫМИ системами зиждется на пяти непреложных принципах. Так, чтобы данные “перелетели” из точки А в точку Б, должны быть известны:

  • IP адрес источника информации
  • IP адрес получателя
  • протокол, по которому устройства будут общаться
  • порт передачи источника
  • и порт назначения, используемый транспортным протоколом RFC793

Порт – это некое виртуальное расширение, дополнение к сетевому адресу (как дополнение в цифрах к названию улицы или дому в адресе, по которому вы проживаете). Почтальон придёт на вашу улицу, но письмо не доставит – он не знает кому, ибо номер квартиры ему не известен. Так и информация дойдёт до вашего компьютера по IP , но без надлежащего номера порта информация в компьютер не попадёт. Компьютер просто не поймёт, как обработать её, с помощью какого приложения. Сетевые порты компьютера – это тропинки между сервисами и службами, которые запущены в установленной на компьютере операционной системе и материнскимисестринскими процессами на компьютерах-хостах, которые находятся порой за тысячи километров от вас.

Кстати, у материнской платы тоже есть порт. Это физические разъёмы, которые, в отличие от описываемых, можно потрогать. Но функцию они выполняют, в сущности, ту же: все порты призваны принимать информацию с других устройств.

Транспортные протоколы (а самые распространённые и используемые это TCP и UDP) лезут на компьютер, используя в сообщении в том числе и номера из общего количества портов. Когда какое-то приложение захочет поговорить с другим устройством, оно напрямую просит локальную ОС открыть канал для передачи. Приложения, которые могут общаться по обоим протоколам (UDP и TCP) могут использовать для этого один и тот же порт, однако это условие необязательно.

Что такое порты компьютера: а сколько их?

В компьютере точное количество портов – 65 535. И ух них есть своя градация. Так, порты с номерами до 1023 Линукс и Unix-подобными ОС считаются за “критически важные” для сетевой деятельности системы, так что для доступа к ним и службам, с ними связанными часто требуются root права. Windows также их считает системными и пристально следит за ними.

Порты от 1024 до 49151 имеют гриф “готовые к регистрации”. Это означает, что данные порты зарезервированы или могут быть зарезервированы за определёнными службами. К счастью или сожалению, они за этими сервисами не закреплены прочными правилами, однако могут дать ключ для распознавания запущенной программы на стороне хоста. Остальные (начиная с 49152) порты не зарегистрированы и используются по усмотрению пользователей ОС и имеют название “динамические” порты. Так что запоминать, какой порт под какую службу “заточен”, часто просто бесполезно (по крайней мере, сегодня; однако ситуация может измениться). Но существует список портов, которые уже “испокон веков” используются конкретными сервисами:

Читайте также  Приемники веб sdr ессентуки

20: FTP данные
21: FTP контроль
22: SSH
23: Telnet Что такое порты компьютера . Хотите полюбоваться на них?

Со списком распространённых портов вы знакомы, однако некоторые сервисы вполне могут использовать порт, по умолчанию назначенный не для них. Или же, что не редкость, открытые порты применяются в качестве лазейки для злоумышленника. Так что, если вы решили самостоятельно менять настройки портов, нужно убедиться, что законопослушные клиент и сервер найдут друг друга. В противном случае стоит позволить Windows заблокировать порт, настроить блокировку в роутере или понадеяться на провайдера, который частенько порты блокирует ещё на излёте, особо клиентуру о том не спрашивая.

Вы можете прямо сейчас посмотреть на своём компьютере, какие порты чем занимаются. Наберите в терминале:

и крутите мышкой до конца. Вот они во всей красе.

В Кали Линукс полезная во всех смыслах nmap тоже может отобразить их список:

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

Однако более развёрнуто работающие в Windows порты вам откроет небольшая программка с названием Process and port analyzer, которую можно легко скачать в сети. Она просто и доходчиво объяснит, какие порты сейчас открыты и какие программы эти порты слушают. Вот одна из вкладок утилиты:

С помощью программы легко можно проверить местонахождение этого процесса в системе и определиться, насколько он безопасен.

Компьютерные порты и сетевая безопасность

Программы, и службы, которые здесь описаны, позволяют вам увидеть порты, открытые именно в вашей ОС (Windows и Linux) для каких-то уже работающих на компьютере программ. Однако помните, что в системе передачи информации между вашим компьютером и далёким веб-сервером где-то в Голландии, стоит ещё немало устройств, которые фильтруют трафик более серьёзно, в том числе контролируя порты (кстати, в том числе и находящийся в вашей же комнате роутер). Не ваши, конечно. Но именно этим серверам решать, попадут ли какие-то данные в вашу Windows. Прикладывает к этому руку и ваш провайдер, которому вы платите деньги за выход в сеть, блокируя порты в целях безопасности или для недопущения излишней сетевой активности (а вдруг вы захотите настроить у себя дома собственный веб-сервер? – не получится).

Зачем это делается? Позвольте продолжить аналогию с домами и улицами. Представьте, что вы решили купить гараж для авто ( компьютера ) в близлежащем кооперативе. Первое, что нужно сделать – защитить и усилить невозможность в помещение проникнуть: поставить хорошие двери и установить надёжные замки ( закрыть порты ). Но что ещё можно сделать? Кто-то ставит сигнализацию ( специальные сетевые сканеры для проверки состояния портов ). Накопить денег и установить дополнительный забор с воротами ( роутер со встроенным фаерволлом ), чтобы внутри можно было парковать и мотоцикл ( планшет ) . А чтобы газоны не испоганили грузовики, со своей стороны правление ( провайдер ) установило автоматический шлагбаум ( сетевые анти- DDOS фильтры ): всё вроде бы открыто, но чужой не проедет. И так далее…

Однако, если вы всё-таки собираетесь узнать, как виден ваш компьютер из глобальной сети (например, злоумышленникам, пытающимся проверить вас на прочность), описанные здесь способы совершенно не подходят. Разовьём эту тему в следующих статьях.

Ссылка на основную публикацию
Adblock detector