Подтвердить что ты не робот

Назначение портов TCP/IP для внутреннего использования приложений

Я написал службу WCF, размещенную службой Windows, и ей необходимо прослушивать известный порт TCP/IP. Из какого диапазона я могу безопасно выделить порт для использования в моей организации? Этот порт будет встроен в конфигурационные файлы для службы и клиентов, которые потребляют эту услугу.

4b9b3361

Ответ 1

Выберите номер порта с 49152 по 65535.

IANA публикует список назначенных портов.

http://www.iana.org/assignments/port-numbers

Динамические и/или частные порты - это от 49152 до 65535. Это диапазон, от которого вы ДОЛЖНЫ выбрать порт для своих внутренних приложений. Конечно, можно использовать любой порт, принадлежащий одному из непризнанных диапазонов в опубликованном списке. Но имейте в виду, что, выбирая номер порта из этих неназначенных диапазонов, нет никакой гарантии, что выбранный вами порт не будет зарезервированным портом в будущем.

НОМЕРА НЕПРЕРЫВНОГО ПОРТА НЕ ДОЛЖНЫ БЫТЬ ИСПОЛЬЗУЕМЫЙ. ИАНА НАПРАВЛЯЕТ НОМЕР ДЛЯ ПОРТА ПОСЛЕ ВАШЕГО ПРИМЕНЕНИЯ БЫЛО УТВЕРЖДЕНО.

И убедитесь, что номер порта, который вы выбираете, настраивается, как вы заявили:

Этот порт будет встроен в конфигурационные файлы для службы и клиенты, которые потребляют обслуживание.

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

Ответ 2

Порты 0-1023 - это хорошо известные порты и назначаются IANA. Они должны использоваться только для назначенных протоколов в общедоступных сетях.

Порты 1024-65535 обычно назывались номерами зарегистрированных портов (см. rfc1700), но теперь они разделены в две области (см. rfc6335).

Порты 1024-49151 являются пользовательскими портами и используются для собственных протоколов.

Порты 49152-65535 являются динамическими портами и не должны быть предписаны протоколу.

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

Не используйте номер порта в динамическом диапазоне. Эти порты назначаются операционной системой динамически и несколько случайным образом. Если вы откроете клиентское соединение (используя bind() с портом = 0), вам будет назначен неиспользуемый порт из динамического диапазона. Невозможно гарантировать, что порт в этом диапазоне всегда будет бесплатным для вашего протокола.

Ответ 3

Краткий ответ: избегайте всего, вплоть до 1023 или более 49152, и проверьте выбранный порт на услуги в своей сети.

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

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

В качестве примечания не забудьте проверить этот порт netstat/a/n, чтобы узнать, используется ли его другим приложением или нет. Я выяснил, что Vista использовала 49152.... для некоторой причины уровня приложения. В основном, поскольку большинство слушателей системного уровня не реализуют совместное использование портов, очень безопасно использовать те порты, которые не используются вообще.

Хороший день программирования АМИРА