Я собираюсь написать tcp-сервер для проекта, над которым работает моя компания. Сервер будет использовать несколько портов для разных задач. Во время разработки мы используем только понравившийся нам номер порта: 1400, 1500, 1600-1650
.
Можем ли мы использовать эти порты на нашем производственном сервере? Или нам нужно подумать о некоторых проблемах безопасности и / или совместимости?
Как упоминал Пол, порты <1024 обычно зарезервированы для «основных» служб. (Кроме того, многие операционные системы требуют, чтобы службы, привязанные к портам <1024, запускались от имени пользователя root).
Однако есть и другие, которые обычно используются. В Список номеров портов IANA обычно хорошее место для поиска; вам следует стараться избегать использования любого порта, который уже зарезервирован. Хотя на практике это имеет значение только в том случае, если вы собираетесь использовать службу, у которой есть зарезервированный порт в вашей сети / на ваших серверах, проверка этого списка - хорошая привычка, к которой нужно обращаться всякий раз, когда вы разрабатываете новое сетевое приложение. .
Не создавайте свое программное обеспечение для использования портов ниже 49152 по умолчанию, поскольку они зарезервированы IANA (даже те, которые не назначены). Пользователь может настроить порт вручную во время настройки. Если вам необходимо поставлять программное обеспечение с предварительно настроенным портом по умолчанию, используйте какой-либо порт из диапазона от 49152 до 65535.
Все, что больше 1024, должно подойти, если оно не используется чем-либо еще на ваших производственных серверах.
Однако почему бы не сделать его настраиваемым? Определите порты в файле конфигурации / или каталоге или чем-то еще, тогда, если у вас есть конфликт, это просто быстрое редактирование, чтобы изменить его на что-то другое.
Кроме того, этот метод позволяет запускать несколько экземпляров на одном компьютере (если в файле конфигурации указано все, что требуется более чем одному приложению / процессу - это может включать идентификаторы очереди сообщений, имена каталогов и т. Д.). В нашем текущем продукте этого нет, и это известная боль.
У меня были проблемы с использованием порта 2000 для некоторых вещей. Проблема заключалась в вирусе, который использовал этот порт давным-давно, и некоторые маршрутизаторы / брандмауэры и т. Д. С подозрением относятся к данным на порту. Я начал устанавливать номера портов по умолчанию выше 30 000.
Просто любой номер порта от 1025 до 65535. Порты ниже 1024 зарезервированы для различных вещей в основном для задач, ориентированных на ОС. Пример 25 для SMTP, 23 для Telnet, 80 для HTTP, 443 для HTTPS аналогично.
Вы должны быть осторожны, чтобы получить порт, который не используется другой службой или программой.