Как нужно выбрать порт TCP/IP по умолчанию для новой службы?

При разработке приложения, которое будет прослушивать порт TCP/IP, как следует выбирать порт по умолчанию? Предположим, что это приложение будет установлено на многих компьютерах, и желательно избежать конфликтов портов.

Ответ 1

Перейдите здесь и выберите порт с описанием Unassigned

Ответ 2

Первый шаг: посмотрите список IANA:

Там вы увидите в хвосте списка

"Динамические и/или частные порты - это от 49152 до 65535"

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

Ответ 3

Самый полный список официальных номеров портов IANA и неофициальных номеров портов, которые я знаю, nmap-services.

Ответ 4

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

Ответ 5

Вы, вероятно, хотите избежать использования каких-либо портов из этот список (Wikipedia).

Я бы просто выбрал один, и как только приложение будет использоваться массами, номер порта станет узнаваться и включаться в такие списки.

Ответ 6

Как упоминают другие, проверьте IANA.

Затем проверьте локальные системы /etc/services, чтобы узнать, есть ли уже используемые пользовательские порты.

И, пожалуйста, не жёсткий код. Удостоверьтесь, что он настраивается, каким-то образом, каким-то образом - если только по какой-то причине вы не захотите иметь несколько разработчиков, использующих свои собственные локализованные сборки в одно и то же время.

Ответ 7

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

Ответ 8

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

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

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

Ответ 9

Используйте список iana. Загрузите файл csv из:

https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv

и используйте эту оболочку script для поиска нерегистрируемых портов:

for port in {N..M}; do if ! grep -q $port service-names-port-numbers.csv; then echo $port;fi; done;

и поместите 2 числа вместо N и M.

Ответ 10

Ну, вы можете ссылаться на некоторые часто используемые номера портов здесь и стараться не использовать чужие.

Если "открыто для широкой публики" означает, что вы открываете порты в своих системах, я бы побеседул с вашими системными администраторами о том, какие порты им удобны в этом.

Ответ 11

Выберите номер, который не является очень common

Ответ 12

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