Динамический диапазон портов по умолчанию для tcp/ip изменился с windows vista и windows server 2008

IP адрес 0.0.0.0

Кстати, IP адрес 0.0.0.0 довольно интересный, так как используется в разных случаях.

Например, некоторые службы в качестве адреса привязки (bind) позволяют установить 0.0.0.0. Это означает, что служба будет прослушивать порт на всех сетевых интерфейсах данного компьютера, то есть на всех IP адресах. В некоторых службах (например, веб-сервер Apache), просто не нужно указывать никакой определённый IP адрес (в том числе 0.0.0.0) и по умолчанию они будут прослушивать входящие соединения на всех сетевых интерфейсах.

Важно понимать, что 0.0.0.0 и 127.0.0.1 это совершенно разные вещи. Хотя если в Linux пинговать 0.0.0.0, то пинги будут отправляться именно к 127.0.0.1. В Windows попытка пинга 0.0.0.0 вызовет сообщение о сбое передачи данных, то есть о недоступности адреса

Адрес 0.0.0.0 означает «любой IP данного компьютера» и включает в себя в том числе 127.0.0.1.

В Windows попытка пинга 0.0.0.0 вызовет сообщение о сбое передачи данных, то есть о недоступности адреса. Адрес 0.0.0.0 означает «любой IP данного компьютера» и включает в себя в том числе 127.0.0.1.

Адрес 0.0.0.0 обычно означает, что IP адрес ещё не настроен или не присвоен. Такой адрес указывает хост, который обращается к DHCP для получения IP адреса.

Если 0.0.0.0 указан в качестве адреса получателя, то он должен расцениваться как широковещательный адрес 255.255.255.255.

Адрес 0.0.0.0 с маской 0.0.0.0, то есть 0.0.0.0/0 используется для обозначения маршрута по умолчанию (default route).

Этот адрес не является валидным адресом для назначения сетевому интерфейсу, точно также как и вся подсеть 0.0.0.0/8 (то есть любой адрес, начинающийся с 0.).

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

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

Какая польза от открытия портов роутера?

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

  • Настройте FTP-сервер для удаленного доступа к вашим файлам.
  • Настройте VPN-сервер для безопасного доступа к локальной сети.
  • Настройте SSH-сервер на своем компьютере, чтобы управлять им удаленно.
  • Настройте почтовый сервер или веб-сервер.
  • Если вы собираетесь использовать частное облако Nextcloud для синхронизации файлов или папок.
  • Если вы собираетесь играть онлайн, в играх необходимо сделать переадресацию портов, потому что мы сами выступаем в роли сервера.
  • Если вы собираетесь загружать через eMule, необходимо открыть порты, чтобы другие узлы могли подключиться к вам.
  • Если вы собираетесь загружать через BitTorrent, необходимо открыть один или несколько портов, чтобы другие узлы могли соединиться с вами, чтобы вы могли быстрее загружать и выгружать.
  • Любое другое использование, которое требует подключения из Интернета к вашей внутренней локальной сети (ПК, сервер, консоль и т. Д.).

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

Все домашние маршрутизаторы используют NAT для одновременного выхода в Интернет с несколькими устройствами, используя один и тот же общедоступный IP-адрес. Когда компьютер в локальной сети (внутренней сети) пытается получить доступ к Интернету, NAT отвечает за перевод адресов и использование портов TCP / UDP без каких-либо действий, это полностью автоматически и прозрачно для пользователя.

Однако, если связь начинается через Интернет (WAN, внешняя сеть) с локальной сетью, необходимо открыть порт, чтобы правильно перенаправить пакеты к месту назначения. Как вы могли заметить, компьютеры локальной сети используют частную адресацию, которая не маршрутизируется через Интернет. Чтобы сделать их доступными извне, нам нужно будет «открыть порт» в NAT, чтобы все пакеты, которые достигают общедоступного IP-адреса и определенного порта, были правильно перенаправлены их получателю.

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

Зачем сравнивать TCP или что с ним не так

  • packet loss — примерно 0,6% пакетов, которые мы отправляем, теряются по пути;
  • reordering — перестановка пакетов местами, в реальной жизни довольно редкое явление, но случается в 0,2% случаев;
  • jitter — когда пакеты отправляются равномерно, а приходят очередями с задержкой примерно в 50 мс.

Как вычислить RTT

RIPE Atlasбеспроводные сети популярны и нестабильны

  • Более 80% пользователей используют беспроводной интернет;
  • Параметры беспроводных сетей динамично меняются в зависимости, например, от того, что пользователь повернул за угол;
  • Беспроводные сети имеют высокие показатели packet loss, jitter, reordering;
  • Фиксированный ассиметричный канал, смена IP-адреса.

TCP в нестабильных сетях

меньше половины канала

  • Беспроводные мобильные сети победили и нестабильны.
  • TCP не до конца утилизирует канал в нестабильных сетях.
  • Потребление контента зависит от скорости интернета: чем выше скорость интернета, тем больше пользователи смотрят, а мы очень любим наших пользователей и хотим, чтобы они смотрели больше.

Какие порты обычно открыты по умолчанию?

Есть много портов. Номер порта может быть любым от 0 до 65535! Это не означает, что любое приложение может просто выбрать любой порт. Существуют установленные стандарты и диапазоны, которые помогают нам разобраться с шумом.

Порты 0-1023 связаны с некоторыми из наиболее важных и основных сетевых служб. Это имеет смысл, поскольку порты с меньшими номерами были назначены первыми. Например, протокол SMTP для электронной почты используется исключительно портом 25.

Порты 1024-49151 известны как «зарегистрированные порты» и назначаются важным общим службам, таким как OpenVPN на порт 1194 или Microsoft SQL на портах 1433 и 1434.

Остальные номера портов известны как «динамические» или «частные» порты. Эти порты не зарезервированы, и любой может использовать их в сети для поддержки определенного сервиса. Единственная проблема возникает, когда две или более службы в одной сети используют один и тот же порт.

Хотя невозможно перечислить все важные порты, эти общие порты полезно знать наизусть:

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

Почему важно знать, какие порты открыты на компьютере?

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

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

Ещё один пример, когда нужно определить, какая именно служба прослушивает порт: вы пытаетесь установить сетевую службу (веб-сервер Apache или СУБД MySQL), а они не запускаются, так как какая-то другая служба уже заняла их порт, который они используют по умолчанию. В этом случае нужно найти эту службу и отключить её или настроить на работу с другим портом.

Но, как и во многих IT задачах (да и вообще во многих профессиональных сферах), получить данные это только самое начало. Главное — это правильно их истолковать и понять.

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

Параметры брандмауэра по умолчанию

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

Примечание

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

Общие сведения о профилях брандмауэра

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

Брандмауэр Windows в режиме повышенной безопасности делит сети на три типа.

  • Домен. Windows может выполнить проверку подлинности доступа к контроллеру домена, в который включен компьютер.
  • Общедоступные. В эту категорию первоначально попадают все сети, не входящие в домены. Сети, которые представляют прямые соединения с Интернетом, являются открытыми (аэропорты, кафе и другие места открытого доступа).
  • Частные. Сеть, определенная пользователем или приложением как личная. Только доверенные сети могут быть определены как частные. Обычно в качестве частной сети определяется сеть малого предприятия, домашняя сеть и т. п.

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

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

Просмотреть и настроить профили брандмауэра можно с помощью оснастки «Брандмауэр Windows в режиме повышенной безопасности». Элемент Брандмауэр Windows на панели управления позволяет настраивать только текущий профиль.

Как открыть порты на вашем роутере

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

Самый первый шаг к открытию портов на маршрутизаторе – это присвоение устройству статического IP-адреса и запись вашего общедоступного IP-адреса.
Примечание. Статический или фиксированный IP-адрес – это IP-адрес, который настраивается вручную для определенного устройства вместо адреса, назначенного DHCP-сервером

Он известен как статический, потому что он не меняется по сравнению с динамическими адресами.

Определите, с каким IP-адресом работает ваше устройство.
Запустить Windows PowerShell.
Введите команду: и нажмите кнопку Enter.
Обратите внимание на следующее: IPv4-адрес, Маска подсети, Основной шлюз и DNS-серверы.

Используя вышеупомянутые данные, вы можете легко настроить статический IP-адрес.
На этом этапе запустите приложение «Выполнить» (Win + R), введите и нажмите кнопку Ввод, чтобы открыть «Сетевые подключения».
В следующем окне найдите и щелкните правой кнопкой мыши соединение, название которого совпадает с названием, отображаемым в PowerShell (например, Ethernet1)
Перейдите к его свойствам (через контекстное меню, вызываемое щелчком правой кнопки мыши), найдите и выделите IP версии 4 (TCP/IPv4) и нажмите кнопку Свойства.

Активируйте раздел «Использовать следующий IP-адрес».
На этом этапе вам нужно аккуратно вставить все детали, которые вы скопировали из окна PowerShell.

Нажмите кнопку ОК, чтобы сохранить изменения!

Весь процесс переадресации портов зависит от марки маршрутизатора, который вы используете. Но шаги включают определение IP-адреса вашего маршрутизатора.
Как узнать IP-адрес маршрутизатора?
В Windows:
Запустить командную строку или PowerShell.
Выполнить команду

Найдите запись Основной шлюз

Здесь вы можете найти IP-адрес вашего маршрутизатора.
На Mac:
Откройте Системные настройки.
Нажмите Сеть и перейдите в Расширенные.
Перейдите на вкладку TCP/IP и найдите Маршрутизатор. Здесь вы можете найти IP-адрес вашего маршрутизатора.

Перейдите к настройкам маршрутизатора.
Как только вы войдёте, просто найдите вкладку «Переадресация портов» и откройте нужный порт. Например: на странице «Переадресация портов» вам нужно ввести имя вашего устройства, а затем ввести порт, который необходимо переадресовать, в поле порта.

Теперь выберите вариант TCP/UDP или Оба в разделе «Протокол», если вы не уверены, какой протокол используете. На этом этапе введите внутренний IP-адрес устройства, на которое выполняется переадресация порта, и нажмите кнопку «Применить» или «Сохранить», чтобы применить изменения.

Надеюсь, вы легко сможете открыть порты на своём роутере. Если вы знаете какой-либо другой способ переадресации портов, пожалуйста, расскажите о нём в разделе комментариев ниже!

Недостатки UDP

По сравнению с TCP UDP имеет следующие недостатки:

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

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

  • Использование сессий. Ориентированность TCP на соединения поддерживается сеансами между хостами. TCP использует идентификатор сеанса, позволяющий отслеживать соединения между двумя хостами. UDP не имеет поддержки сеансов из-за своей природы, не ориентированной на соединения.

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

  • Безопасность. TCP более защищен, чем UDP. Во многих организациях брандмауэры и маршрутизаторы не пропускают пакеты UDP. Это связано с тем, что хакеры могут воспользоваться портами UDP, не устанавливая явных соединений.

  • Управление потоком. В UDP управление потоком отсутствует, в результате плохо спроектированное UDP-приложение может захватить значительную часть пропускной способности сети.

Сокеты

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

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

Например, для SSH netstat будет показывать примерно следующие данные (1/init вместо sshd):

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::22                   :::*                    LISTEN      1/init 

А ss будет показывать примерно так:

Netid       State        Recv-Q       Send-Q        Local Address:Port        Peer Address:Port
tcp         LISTEN       0            128           *:22                      *:*                    users:(("systemd",pid=1,fd=44))

Использование NirSoft CurrPorts

Если вы не любите командную строку или предпочли бы использовать простую утилиту, чтобы сделать всё это за один шаг, мы рекомендуем отличный бесплатный CurrPorts. Загрузите инструмент. Только убедитесь, что вы получили правильную версию (обычная версия для 32-разрядной версии Windows, а версия x64 – для 64-разрядной Windows). Это портативное приложение, поэтому вам не нужно его устанавливать. Просто распакуйте папку загрузки и запустите исполняемый файл.

В окне CurrPorts отсортируйте по столбцу «Локальный порт», найдите порт, который вы исследуете, и вы можете увидеть всё: имя процесса, ID, порт, полный путь к процессу и т.д.

Чтобы сделать это ещё проще, дважды щелкните любой процесс, чтобы увидеть каждую деталь в одном окне.

Когда вы определите, какое приложение или служба связаны с порт, – Вы сможете решить, как его использовать. Если это приложение, то можно указать другой номер порта. Если это сервис или у вас нет возможности указать другой номер порта – вероятно, Вам придётся остановить службу или удалить приложение.

UDP порты

Так как на одном и том же компьютере могут быть запущены несколько программ, то для доставки UDP-пакета конкретной программе, используется уникальный идентификатор каждой программы или номер порта.

Номер порта — это условное 16-битное число от 1 до 65535, указывающее, какой программе предназначается пакет.

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

Все номера портов UDP, которые меньше чем 1024 — зарезервированы и зарегистрированы в Internet Assigned Numbers Authority (IANA).
Номера портов UDP и TCP не пересекаются.

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

Детали

Протоколы передачи данных – Transmission Control Protocol (TCP) и User Datagram Protocol (UDP) — применяются для того, чтобы указать номер порта назначения и источник в своих заголовках сегментов. Номер порта представляет собой 16-разрядное целое число без знака. Таким образом, он может быть в диапазоне от 0 до 65535.

Тем не менее TCP-порты не могут использовать номер 0. Порт источника для UDP не обязателен, и значение, равное нулю, означает его отсутствие.

Процесс связывает свои входные или выходные каналы через интернет-сокет (тип дескриптора файла) посредством транспортного протокола, номера порта и IP-адреса. Этот процесс известен как связывание, и он дает возможность передачи и приема данных через сеть.

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

Пример анализа открытых портов

Я начну с анализа открытых портов на Linux. Просто потому, что мне так проще, а затем мы постепенно перейдём изучить открытые порты на Windows.

Пример информации об открытых портах, полученных командой:

sudo ss -lntup

Пример прослушиваемых портов на Linux:

Netid State   Recv-Q   Send-Q         Local Address:Port     Peer Address:Port                                                                                  
udp   UNCONN  0        0           10.0.2.15%enp0s3:68            0.0.0.0:*      users:(("NetworkManager",pid=318,fd=17))                                       
udp   UNCONN  0        0                  127.0.0.1:5300          0.0.0.0:*      users:(("tor",pid=359,fd=7))                                                   
tcp   LISTEN  0        128                127.0.0.1:9040          0.0.0.0:*      users:(("tor",pid=359,fd=8))                                                   
tcp   LISTEN  0        128                127.0.0.1:8118          0.0.0.0:*      users:(("privoxy",pid=362,fd=3))                                               
tcp   LISTEN  0        128                127.0.0.1:9050          0.0.0.0:*      users:(("tor",pid=359,fd=6))                                                   
tcp   LISTEN  0        128                127.0.0.1:9475          0.0.0.0:*      users:(("httpd",pid=553,fd=5),("httpd",pid=552,fd=5),("httpd",pid=551,fd=5),("httpd",pid=550,fd=5),("httpd",pid=549,fd=5),("httpd",pid=360,fd=5))
tcp   LISTEN  0        128                        *:80                  *:*      users:(("httpd",pid=553,fd=4),("httpd",pid=552,fd=4),("httpd",pid=551,fd=4),("httpd",pid=550,fd=4),("httpd",pid=549,fd=4),("httpd",pid=360,fd=4))
tcp   LISTEN  0        128                        *:22                  *:*      users:(("systemd",pid=1,fd=55))                                                
tcp   LISTEN  0        128                        *:443                 *:*      users:(("httpd",pid=553,fd=7),("httpd",pid=552,fd=7),("httpd",pid=551,fd=7),("httpd",pid=550,fd=7),("httpd",pid=549,fd=7),("httpd",pid=360,fd=7))
tcp   LISTEN  0        80                         *:3306                *:*      users:(("mysqld",pid=427,fd=21))            

В выводимых данных имеются следующие поля:

  • Netid — протокол udp или tcp
  • State — состояние, для протоколов TCP здесь будет LISTEN (поскольку мы явно указали в опциях показать только прослушиваемые порты), а для протоколов UDP здесь будет UNCONN, то есть состояние неизвестно, но, на самом деле, это тоже прослушиваемые порты, которые позволяют подключаться из вне
  • Recv-Q — получено
  • Send-Q — отправлено
  • Local Address:Port — локальный адрес и порт, к которому привязана служба, то есть IP адрес и порт, которые прослушиваются
  • Peer Address:Port — удалённый адрес и порт, к которым выполнено соединение.

Допустим запись 127.0.0.1:9050 для локального адреса и порта означает, что прослушивается порт 9050. Причём он прослушивается только для IP адреса 127.0.0.1. Адрес 127.0.0.1 относится к так называемым Loopback, то есть это замыкающийся на себя, закольцованный адрес. Сетевой интерфейс с этим адресом называется петлевым. Пакеты, которые отправляются с компьютера на этот адрес, приходят на этот же самый компьютер (точнее говоря, они никуда даже не уходят). Доступ к этому адресу может иметь только служба, работающая на этом же самом компьютере

Отсюда важное следствие: хотя порт 9050 прослушивается, никто другой не может к нему подключиться из любой сети. Это же относится и к адресам из диапазона ::1/128 — это такие же адреса, но уже для IPv6, тамошний аналог 127.0.0.1 это ::1 (тоже часто можно видеть в выводимой информации).

Если прослушиваются какие-либо адреса из локальных

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
  • 127.0.0.0/8

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

Особые замечания относительно порта 135

При использовании RPC с транспортным протоколом TCP/IP или UDP/IP входящие порты динамически назначаются системным службам по мере надобности. Используются порты TCP/IP и UDP/IP с номерами выше 1024. Эти порты называются «случайными RPC-портами». В этом случае RPC-клиент определяет порт, назначенный серверу, через модуль конечной точки RPC. Для некоторых служб, работающих через протокол RPC, можно настроить использование определенного фиксированного порта. Можно также ограничить диапазон портов, динамически назначаемых RPC и не зависящих от службы. Поскольку порт 135 используется для многих служб, он часто подвергается атакам злоумышленников. В случае открытия порта 135 рекомендуется ограничить область действия правила брандмауэра.

Дополнительные сведения о порте 135 см. в следующих ресурсах.

  • Общие сведения о службе и требования к сетевым портам в системе Windows Server
  • Устранение неполадок модуля сопоставления конечной точки RPC при помощи средств поддержки, устанавливаемых с компакт-диска Windows Server 2003
  • Удаленный вызов процедур (RPC)
  • Настройка динамического выделения портов RPC для работы с брандмауэром

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

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

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

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

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

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

История

Концепция номеров портов была создана первыми разработчиками ARPANET в неформальном сотрудничестве авторов программного обеспечения и системных администраторов. Термин номер порта в то время еще не использовался. Этому предшествовало использование термина « номер сокета» на ранних этапах развития сети. Номер сокета для удаленного хоста был 40-битным. Первые 32 бита были похожи на сегодняшний адрес IPv4, но в то время наиболее значимые 8 бит были номером хоста. Наименее значимая часть номера сокета (биты с 33 по 40) представляла собой объект, называемый другим восьмибитным числом , сокращенно AEN. Сегодня сетевой сокет относится к родственной, но отличной концепции, а именно к внутреннему адресу конечной точки, используемому только внутри узла.

26 марта 1972 года Винт Серф и Джон Постел призвали к документированию текущих обычаев и созданию каталога номеров сокетов в RFC 322. Сетевых администраторов попросили отправить записку или позвонить по телефону с описанием функций и номеров сокетов. программ сетевого обслуживания на каждом ХОСТЕ ». Этот каталог был впоследствии опубликован как RFC 433 в декабре 1972 года и включал список хостов и их номера портов, а также соответствующие функции, используемые на каждом хосте в сети. Эта первая функция реестра служила в первую очередь для документирования использования и указывала, что использование номера порта конфликтует между некоторыми хостами для « полезных общедоступных служб ». Документ обещал разрешение конфликтов на основе стандарта , который Постел опубликовавшие в мае 1972 года в RFC 349, в котором он впервые предложил официальные поручения номеров портов , сетевые службы и предложил специальную административную функцию, которую он назвал царь , чтобы вести реестр.

256 значений AEN были разделены на следующие диапазоны:

Диапазоны AEN
Диапазон номеров портов Назначение
От 0 до 63 общесетевые стандартные функции
С 64 по 127 специфичные для хоста функции
128–239 зарезервировано для использования в будущем
240–255 любая экспериментальная функция

Служба Telnet получила первое официальное присвоение значения 1. В деталях, первый набор назначений был следующим:

Назначение портов в RFC  
Номер порта Назначение
1 Telnet
3 Передача файлов
5 Удаленный ввод вакансий
7 Эхо
9 Отказаться

В ранней ARPANET AEN также назывался именем сокета и использовался с протоколом начального соединения (ICP), компонентом программы управления сетью (NCP). NCP был предшественником современных интернет-протоколов. Сегодня название терминологической службы по-прежнему тесно связано с номерами портов, первые из которых представляют собой текстовые строки, используемые в некоторых сетевых функциях для представления числового номера порта.

Как это работает?

Если программа использует обмен данными через сеть, этот процесс может происходить следующим образом:

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

Как открыть порт (8080, 80 и так далее)? Внутри сети обмен информацией происходит согласно определенному протоколу (между двумя процессами). Чтобы соединение было установлено, требуется следующее:

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

Если соединение происходит по протоколу TCP, то порт отправителя применяется как ОС получателя для передачи подтверждения о полученных данных, так и процессом получателем для передачи ответа.

Заголовок TCP

  • Порядковый номер выполняет две задачи:
    • Если установлен флаг SYN, то это начальное значение номера последовательности — ISN (Initial Sequence Number), и первый байт данных, которые будут переданы в следующем пакете, будет иметь номер последовательности, равный ISN + 1.
    • В противном случае, если SYN не установлен, первый байт данных, передаваемый в данном пакете, имеет этот номер последовательности.
  • Номер подтверждения — если установлен флаг ACK, то это поле содержит номер последовательности, ожидаемый получателем в следующий раз. Помечает этот сегмент как подтверждение получения.
  • Длина заголовка — задается словами по 32бита.
  • Размер окна — количество байт, которые готов принять получатель без подтверждения.
  • Контрольная сумма — включает псевдо заголовок, заголовок и данные.
  • Указатель срочности — указывает последний байт срочных данных, на которые надо немедленно реагировать.
  • URG — флаг срочности, включает поле «Указатель срочности», если =0 то поле игнорируется.
  • ACK — флаг подтверждение, включает поле «Номер подтверждения, если =0 то поле игнорируется.
  • PSH — флаг требует выполнения операции push, модуль TCP должен срочно передать пакет программе.
  • RST — флаг прерывания соединения, используется для отказа в соединении
  • SYN — флаг синхронизация порядковых номеров, используется при установлении соединения.
  • FIN — флаг окончание передачи со стороны отправителя

Рассмотрим структуру  заголовка TCP с помощью сетевого анализатора Wireshark:

TCP порты

Так как на одном и том же компьютере могут быть запущены несколько программ, то для доставки TCP-пакета конкретной программе, используется уникальный идентификатор каждой программы или номер порта.

Номер порта — это условное 16-битное число от 1 до 65535, указывающее, какой программе предназначается пакет.

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

Каждый отдельный порт сервера TCP может предложить общий доступ к нескольким соединениям, потому что все TCP соединения идентифицируются двумя значениями: IP-адресом и TCP портом (сокет).

Все номера портов TCP, которые меньше чем 1024 — зарезервированы и зарегистрированы в Internet Assigned Numbers Authority (IANA).

Номера портов UDP и TCP не пересекаются.

TCP программы используют зарезервированные или хорошо известные номера портов, как показано на следующем рисунке.

Установка совместного использования портов

Служба совместного использования портов net. TCP доступна во всех операционных системах, поддерживающих WinFX, но служба не включена по умолчанию. Из соображений безопасности администратор должен вручную включить службу совместного использования Net.TCP перед первым использованием. Служба совместного использования портов Net.TCP предоставляет параметры конфигурации, которые позволяют манипулировать некоторыми характеристиками сетевых сокетов, принадлежащих службе совместного использования портов. Дополнительные сведения см. в разделе инструкции. Включение службы совместного использования портов net. TCP.

Подводим итоги вышесказанному

В этой статье мы постарались дать вам ответ на вопрос: «как открыть порты на Windows 7 и 10?». Для этого нами было выбрано и описано самые востребованные способы решения данной проблемы с примерами.

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

Стандартные инструменты Windows оказались не самыми удобными в управлении, однако, предоставляют достаточный объем информации о процессах и занятых ими портах. Работа с Брандмауэром и консолью довольно проста и после нашего примера вы сможете самостоятельно повторить все это на своем компьютере.

CurrPorts выводит максимум данных о портах и процессах, позволяет удалять (освобождать) их, но не дает возможности открыть новые. На наш взгляд, софт отлично подойдет для отслеживания потенциальных угроз из Сети и их устранения.

Несмотря на отсутствие русскоязычного интерфейса, UPnP Wizard очень практична и может как создавать, так и освобождать порты. Единственным ограничением является требование к поддержке роутером UPnP интерфейса. Мы считаем, что этот вариант самый удобный для повсеместного использования.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector