Какой лучший порт для программы?

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

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


person David Kumu    schedule 20.11.2009    source источник
comment
Есть ли причина, по которой вы бы не использовали HTTP через порт 80?   -  person Jim Lamb    schedule 21.11.2009
comment
Порт 42, определенно порт 42....   -  person Amir Afghani    schedule 21.11.2009
comment
@Amir Ответ на главный вопрос жизни, Вселенной и всего остального?   -  person Pascal Thivent    schedule 21.11.2009


Ответы (3)


Все эти порты используются известными службами, и вам не следует использовать ни один из них (если ваш продукт не является веб-сервером или DNS-сервером). Общеизвестные порты DCCP НЕ ДОЛЖНЫ использоваться без регистрации в IANA. Если ваша услуга является коммерчески жизнеспособной или имеет преимущества для сети в целом, рассмотрите возможность ее регистрации для более низкого номера порта: процедура регистрации определена в RFC4340, раздел 19.9.

Для экспериментального использования используйте порт в диапазоне от 1024 до 49151. Помните, что даже эти порты должны быть зарегистрированы в IANA, как только ваша служба будет запущена.

Что касается брандмауэров: вы не можете предсказать, будет ли ваш сервис вообще доступен для какой-либо сети. Даже если вы используете порт 80, вы, вероятно, столкнетесь с брандмауэрами, которые проверяют содержимое.

person ty812    schedule 20.11.2009
comment
Я опубликовал ответ, в котором говорилось то же самое, но удалил его до того, как увидел ваш ответ. Вы изложили его настолько лучше, что я не стал воскрешать свой. - person ChrisF; 21.11.2009
comment
Как бы я ни ценил это мнение, я должен понизить это мнение, потому что оно отвечает на неправильный вопрос. Вопрос был о выборе порта для максимальной доступности услуги в общедоступном Интернете. Это факт, что многие хосты в частных сетях имеют ограниченный доступ к общедоступным интернет-сервисам. Многие имеют доступ только к tcp/80 и tcp/443 с прокси-серверами прикладного уровня, которые сильно мешают tcp/80. - person james woodyatt; 22.11.2009

Не порт 53. Выбор между 80 и 443. Если ваш протокол достаточно похож на HTTPS, чтобы прокси-сервер пересылал его таким же образом, то, возможно, 443 — ваш лучший выбор.

person james woodyatt    schedule 20.11.2009
comment
спасибо, порт 53 не может пройти через прокси, у которых есть внутренний DNS, https порт 443, вероятно, лучший, так как прозрачные прокси не могут его изменить (без генерации ошибок в браузерах для пользователей https за брандмауэром), в отличие от порта 80, где они могут попытаться кеширование и изменение заголовков http и т. д. и т. д. испортят мои данные - person David Kumu; 21.11.2009

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

person Brian Agnew    schedule 20.11.2009
comment
Я согласен с вами, что это опасная игра, но иногда это необходимо, чтобы сделать ваш сервис доступным из очень ограниченной сети. IIRC, AIM попытается использовать несколько разных портов, чтобы выйти, если его обычные порты заблокированы. Я видел, как он устанавливается как на порт 80, так и на порт 23. Ряд приложений для обмена файлами также используют этот метод. - person rmeador; 21.11.2009
comment
Если это сеть с ограниченным доступом, попытка обойти ее может привести к плохим последствиям. Например, высылка, увольнение и/или гражданское или уголовное наказание. Не пытайтесь обойти политику с помощью технологий. Был там, сделал это, получил футболку. - person Randal Schwartz; 21.11.2009