Назад | Перейти на главную страницу

Какой максимальный номер порта?

Я хотел бы настроить некоторые службы Linux на нестандартные порты - какой самый высокий допустимый номер порта?

(2 ^ 16) -1 или 0-65 535 (-1 означает, что порт 0 зарезервирован и недоступен). (отредактировано, потому что o_O Tync напомнил мне, что мы не можем использовать порт 0, а Стив Фолли напомнил мне, что вы запрашивали самый высокий порт, а не количество портов)

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

1-65535 доступны, а порты в диапазоне 1-1023 являются привилегированный единицы: приложение должно быть запущено от имени пользователя root, чтобы прослушивать эти порты.

Хотя 1-65535 являются допустимыми портами TCP, и правда, что 1-1023 предназначены для хорошо известных служб портов. Вы можете столкнуться со случайными проблемами с вашими собственными службами, если они запускаются после установки временного порта. Для тех, кто может не знать, эфемерные порты - это те, которые подключены локально для удаленных конечных точек (или что-то в этом роде). Итак, если вы напишете службу TCP, которая прослушивает порт 20001. У вас может быть все хорошо сегодня ... и завтра. Но однажды ваша служба может запуститься и попытаться привязаться к 20001, и она потерпит неудачу, потому что она была взята как временный порт. Выход есть. Вы должны попросить своего администратора или себя изменить системную политику временного диапазона портов на вашем сервере. В системах Linux это делается в два этапа:

  • Динамически
  • Постоянно

Необходимо выполнить оба шага, если вы не планируете перезагрузку (в этом случае шаг Dynamic не нужен). Чтобы установить диапазон от 40000 до 65535, сделайте следующее:

Динамический

echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range

или

sysctl -w net.ipv4.ip_local_port_range="40000 65535"

Постоянный

Добавьте в /etc/sysctl.conf следующее:

net.ipv4.ip_local_port_range = 40000 65535

Чтобы прочитать текущую настройку или подтвердить изменение:

/sbin/sysctl net.ipv4.ip_local_port_range

Результат будет примерно таким:

net.ipv4.ip_local_port_range = 9000 65500

Убедитесь, что вы понимаете цель своего сервера. Слишком большое сокращение диапазона может привести к другим проблемам.

Удачного кодирования! (или что ты делаешь)