Какой самый большой номер сетевого порта TCP / IP допустим для IPv4? - PullRequest
366 голосов
/ 22 сентября 2008

Какой самый большой номер порта можно использовать?

Ответы [ 8 ]

515 голосов
/ 22 сентября 2008

Номер порта - 16-разрядное целое число без знака, поэтому 65535.

135 голосов
/ 22 сентября 2008

Самый большой номер порта - беззнаковый короткий 2 ^ 16-1: 65535

Зарегистрированный порт - это порт, назначенный Интернет-корпорацией по присвоению имен и номеров (ICANN) для определенного использования. Каждый зарегистрированный порт находится в диапазоне 1024–49151.

С 21 марта 2001 года регистрационным агентством является ICANN; до этого времени это была IANA.

Порты с номерами ниже номеров зарегистрированных портов называются хорошо известными портами; порт с номерами, превышающими номера зарегистрированных портов, называются динамическими и / или частными портами.

Википедия: Зарегистрированные порты

64 голосов
/ 22 сентября 2008

Насколько я понимаю, вы должны использовать только до 49151, так как от 49152 до 65535 зарезервировано для эфемерных портов

36 голосов
/ 22 сентября 2008

Просто продолжение ответа smashery . Эфемерный диапазон портов (по крайней мере в Linux, и я подозреваю, что и другие Unices) не является фиксированным. Это можно контролировать, написав /proc/sys/net/ipv4/ip_local_port_range

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

12 голосов
/ 06 апреля 2017

Согласно RFC 793, порт является 16-битным беззнаковым целым.

Это означает, что диапазон составляет 0 - 65535.

Однако в этом диапазоне порты 0–1023 обычно зарезервированы для определенных целей. Я говорю вообще, потому что, кроме порта 0, обычно нет применения резервирования 0-1023. Реализации TCP / UDP обычно не обеспечивают резервирование, кроме 0. Вы можете, если хотите, запустить порт TLS веб-сервера на порту 80, или 25, или 65535 вместо стандартного 443. Аналогично, даже если SMTP-серверы прослушивают порт 25 по стандарту, вы можете запустить его на 80, 443 или других.

Большинство реализаций резервируют 0 для конкретной цели - случайного назначения порта. Поэтому в большинстве реализаций выражение «прослушивать порт 0» фактически означает «мне все равно, какой порт я использую, просто дайте мне какой-нибудь случайный неназначенный порт для прослушивания».

Таким образом, любое ограничение на использование порта в диапазоне 0-65535, включая 0, диапазон временного резервирования и т. Д., зависит от реализации (т.е. ОС / драйвер) , однако все, включая 0, являются действительными портами в RFC 793.

11 голосов
/ 22 сентября 2008

Это зависит от того, о каком диапазоне вы говорите, но динамический диапазон увеличивается до 65535 или 2 ^ 16-1 (16 бит).

http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

7 голосов
/ 22 сентября 2008

должно быть 65535.

6 голосов
/ 08 октября 2018

Допустимые значения для портов: от 0 до 2 ^ 16-1 = от 0 до 65535
Это связано с тем, что номер порта имеет длину 16 бит.

Однако порты делятся на:
Известные порты : от 0 до 1023 (используются для системных служб, например, HTTP, FTP, SSH, DHCP ...)
Зарегистрированные / пользовательские порты : от 1024 до 49151 (вы можете использовать его для своего сервера, но будьте осторожны с некоторыми известными приложениями: такими как сервер системы управления базами данных Microsoft SQL Server или сервер Apache Derby Network Server уже принимают этот диапазон, т.е. не рекомендуется назначать порт MSSQL вашему серверу, в противном случае, если MSSQL работает, ваш сервер, скорее всего, не будет работать из-за конфликта портов)
Динамические / частные порты : от 49152 до 65535. (не используется для серверов, а не для клиентов, например, в службе NATing)

В программировании вы можете использовать любые числа от 0 до 65535 для вашего сервера, однако вам следует придерживаться диапазонов, упомянутых выше, в противном случае некоторые системные службы или некоторые приложения не будут работать из-за конфликта портов.
Проверьте список большинства портов здесь: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

...